السلام عليكم
قمت بتحويل اخر مثال هنا الى class .. اكثر تنضيما و سهولة فى الاستعمال .
قمت بتحويل اخر مثال هنا الى class .. اكثر تنضيما و سهولة فى الاستعمال .
كود :
public
// Constructor and Destructor
constructor Create(ASampleRate, AInChannel, AOutChannel, AFormat: Integer);
destructor Destroy; override;
// Public methods
procedure StopRecording;
procedure StartRecording;
function PlayPartialBuffer(StartPos, EndPos: DWORD): Integer; overload;
function PlayPartialBuffer(Buffer: TBytes): Integer; overload;
function GetHtmlBase64PCM(StartPos, EndPos: DWORD): string;
function GetBase64PCM(StartPos, EndPos: DWORD; AddWavHeader, Compress: Boolean): string;
function GetPartialBuffer(StartPos, EndPos: DWORD; Compress: Boolean = False): TArray<Byte>;
function ClearBuffer: Boolean;
function DecompressBuffer(const Input: TBytes): TBytes;
function CalculateDuration(ARecordedDataLength: Integer): Double;
function LoadFromFile(const FileName: string): TBytes;
procedure SaveToFile(const FileName: string; StartPos, EndPos: DWORD; AddWavHeader: Boolean = True);
function TrimSilence8BitFormat(const AudioData: TBytes): TBytes;
procedure PausePlaying;
procedure ResumePlaying;
// Properties
property IsInitialized: Boolean read FIsInitialized;
property RecordedData: TArray<Byte> read GetRecordedData write SetRecordedData;
property RecordingState: Boolean read GetRecordingState;
property PlayingState: Boolean read GetPlayingSate;
property Duration: Double read GetDuration;
property Volume: Single read GetVolume write SetVolume;
property OnRecordingProgress: TOnRecordingProgress read FOnRecordingProgress write SetOnRecordingProgress;
