BugInTheSYS

Untitled

Feb 19th, 2013
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 0.99 KB | None | 0 0
  1. procedure SaveWAVEFile(WaveContent: TWaveContent; FileName: String);
  2. var
  3.   WaveHeader: TWaveHeader;
  4.   FStream: TFileStream;
  5.   WaveLength: Integer;
  6. begin
  7.   try
  8.     FStream := TFileStream.Create(FileName, fmCreate);
  9.     WaveLength := length(WaveContent);
  10.  
  11.     with WaveHeader do begin
  12.       with RIFF do begin
  13.         ID := 'RIFF';
  14.         Length := 4 + WaveLength * 4 + SizeOf(TFormatHeader) + SizeOf(TDataHeader);
  15.         WaveID := 'WAVE';
  16.       end;
  17.       with Format do begin
  18.         ID := 'fmt ';
  19.         Length := SizeOf(TFormatHeader)-8;
  20.         FormatTag := $0001;
  21.         Channels := 2;
  22.         SamplesPerSec := 44100;
  23.         AvgBytesPerSec := 176400;
  24.         BlockAlign := 4;
  25.         BitsPerSample := 16;
  26.       end;
  27.       with Data do begin
  28.         ID := 'data';
  29.         Length := WaveLength * 4;
  30.       end;
  31.     end;
  32.  
  33.     FStream.Write(WaveHeader, SizeOf(TWaveHeader));
  34.     FStream.Write(WaveContent, 2048{WaveLength * 4});
  35.   finally
  36.     FStream.Free;
  37.   end;
  38. end;
Advertisement
Add Comment
Please, Sign In to add comment