Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure SaveWAVEFile(WaveContent: TWaveContent; FileName: String);
- var
- WaveHeader: TWaveHeader;
- FStream: TFileStream;
- WaveLength: Integer;
- begin
- try
- FStream := TFileStream.Create(FileName, fmCreate);
- WaveLength := length(WaveContent);
- with WaveHeader do begin
- with RIFF do begin
- ID := 'RIFF';
- Length := 4 + WaveLength * 4 + SizeOf(TFormatHeader) + SizeOf(TDataHeader);
- WaveID := 'WAVE';
- end;
- with Format do begin
- ID := 'fmt ';
- Length := SizeOf(TFormatHeader)-8;
- FormatTag := $0001;
- Channels := 2;
- SamplesPerSec := 44100;
- AvgBytesPerSec := 176400;
- BlockAlign := 4;
- BitsPerSample := 16;
- end;
- with Data do begin
- ID := 'data';
- Length := WaveLength * 4;
- end;
- end;
- FStream.Write(WaveHeader, SizeOf(TWaveHeader));
- FStream.Write(WaveContent, 2048{WaveLength * 4});
- finally
- FStream.Free;
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment