Как разрезать wav файл?
Материал из DRKB
Для чтения заголовка смотрите раздел:
Код для разрезания файла WAV на две части:
function SplitWave(Source, Dest1, Dest2: TFileName; Pos: Integer): Boolean;
var
f1, f2, f3: TFileStream;
w: TWaveHeader;
p: Integer;
begin
Result := False
if not FileExists(Source) then
Exit;
try
w := GetWaveHeader(Source);
p := Pos - SizeOf(TWaveHeader);
f1 := TFileStream.Create(Source, fmOpenRead);
f2 := TFileStream.Create(Dest1, fmCreate);
f3 := TFileStream.Create(Dest2, fmCreate);
{++++++++++Create file 1 ++++++++++++++++}
w.len := p;
f2.Write(w, SizeOf(w));
f1.Position := SizeOf(w);
f2.CopyFrom(f1, p);
{++++++++++++++++++++++++++++++++++++++++}
{+++++++++++Create file 2 +++++++++++++++}
w.len := f1.Size - Pos;
f3.Write(w, SizeOf(w));
f1.Position := Pos;
f3.CopyFrom(f1, f1.Size - Pos);
{++++++++++++++++++++++++++++++++++++++++}
finally
f1.Free;
f2.Free;
f3.Free;
end;
Result := True;
end;
Source: Взято с Delphi Knowledge Base: http://www.baltsoft.com/
ID: 04300