Audio Processing Class: Record, Play, and Manipulate PCM Data with Ease
#1
السلام عليكم 

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


الملفات المرفقة
.rar   AudioPCM.rar (الحجم : 18.66 ك ب / التحميلات : 4)
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم