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 ) ضيف كريم