![]() |
|
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; |