Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июня!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



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

Вот он:


 TWaveHeader = record
 Marker1:        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-битных файлов сделайте соответствующие изменения.




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS