[an error occurred while processing this directive]
|
WAV файл - это звуковой файл формата RIFF. Он состоит из трёх заголовков,
за которыми следуют данные самого звукового файла,
т.е. последовательность байт самого звукового сигнала.
Первый - RIFF заголовок.
Он занимает 8 байт с самого начала файла и содержит следующую информацию
riffFmt String 4 буквы "RIFF"
lenOfFileData Long длина файла без этого заголовка
Второй заголовок - WAV заголовок. Вот его структура:
waveFmt String 8 букв - "WAVEfmt"
lenOfThunk Long размер этого куска (16 байт)
format Integer формат WAV файла (обычно всегда 1)
channels Integer кол-во каналов (1 - моно, 2 - стерео)
samplesPerSecond Long разрешение WAV файла, т.е. кол-во Samples'ов в сек (11025,22050,44100 и т.д.)
avgBytesPerSecond Long тоже самое
blockAlign Integer выравнивание блоков данных (обычно 1)
bitsPerSample Integer Кол-во Битов на один сэмпл (4/8/16)
Третий, заголовок данных:
datastr String 4 буквы "data"
lenOfThunk Long кол-во байт, отводящихся под сами WAV данные
Далее идут сами данные звукового файла.
Если файл 2-х канальный, то данные идут по очереди, 1 канал, 2-ой, 1-ый, 2-ой... и т.д.
Необходимо также помнить, что если файл 8 битный, то под каждый сэмпл отводится по одному байту,
если же 16 битный - то по 2 байта.
В конце файла иногда бывает некоторая дополнительная информация о WAV файле (имя Автора и т.д.),
и заголовков в некоторых WAV может быть побольше.