delphi4arab منتديات دلفي للعرب
Audio Processing Class: Record, Play, and Manipulate PCM Data with Ease - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : متتديات باسكال Pascal (https://delphi4arab.net/forum/forumdisplay.php?fid=7)
+--- قسم : تطوير تطبيقات الجوال Mobile Application Development (https://delphi4arab.net/forum/forumdisplay.php?fid=37)
+--- الموضوع : Audio Processing Class: Record, Play, and Manipulate PCM Data with Ease (/showthread.php?tid=12479)



Audio Processing Class: Record, Play, and Manipulate PCM Data with Ease - haniid - 19-12-2023

السلام عليكم 

قمت بتحويل اخر مثال هنا الى 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;