Советы по Delphi


         

Формат Wave-файла


Вот он:

TWaveHeader = recordMarker1: Array[0..3] of Char;BytesFollowing: LongInt;Marker2: Array[0..3] of Char;Marker3: Array[0..3] of Char;Fixed1: LongInt;FormatTag: Word;Channels: Word;SampleRate: LongInt;BytesPerSecond: LongInt;BytesPerSample: Word;BitsPerSample: Word;Marker4: Array[0..3] of Char;DataBytes: LongInt;end;

Для создания собственного WAV-файла сделайте следующее:

DataBytes := Channels;DataBytes := DataBytes * SampleRate;DataBytes := DataBytes * Resolution;DataBytes := DataBytes div 8;DataBytes := DataBytes * Duration;DataBytes := DataBytes div 1000;
WaveHeader.Marker1 := 'RIFF';WaveHeader.BytesFollowing := DataBytes + 36;WaveHeader.Marker2 := 'WAVE';WaveHeader.Marker3 := 'fmt ';WaveHeader.Fixed1 := 16;WaveHeader.FormatTag := 1;WaveHeader.SampleRate := SampleRate;WaveHeader.Channels := Channels;WaveHeader.BytesPerSecond := Channels;WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond * SampleRate;WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond * Resolution;WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond div 8;WaveHeader.BytesPerSample := Channels * Resolution div 8;WaveHeader.BitsPerSample := Resolution;WaveHeader.Marker4 := 'data';WaveHeader.DataBytes := DataBytes;

Остальная часть файлы является звуковыми данными. Порядок следования: верхний уровень для левого канала, верхний уровень для правого канала и так далее. Для моно или 8-битных файлов сделайте соответствующие изменения.

[000246]



Содержание  Назад  Вперед