Основы программирования в Win32API. Марапулец Ю.В. - 147 стр.

UptoLike

Составители: 

Функция mmioDescend() возвращает информацию о блоке в параметре
lpmmcki. Можно также заставить ее выполнять поиск блоков определенного ти-
па. Для инициации такого поиска последний параметр должен содержать значе-
ние MMIO_FINDCHUNK,
MMIO_FINDLIST или MMIO_FINDRIFF. Поиск на-
чинается с текущей позиции в файле и завершается в конце файла. Функция
mmioAscend(), помимо перемещения к концу блока, помогает формировать но-
вые блоки. Она вызывается после записи новых данных, выравнивая блок по
четному байту и записывая объем данных в заголовок блока.
Каждая звукозапись в RIFF-файле должна содержать блок, помеченный
тегом fmt. (Теги, состоящие из символов нижнего регистра, обозначают вло-
женные блоки.) Структура PCMWAVEFORMAT
определяет содержимое этого
блока:
/* универсальный формат файла звукозаписи (информация, общая для всех
форматов) */
typedef struct waveformat_tag
{
WORD wFormatTag, // тип формата
WORD nChannels, // количество каналов (1 = моно; 2 = стерео)
DWORD nSamplesPerSec, // частота оцифровки
DWORD nAvgBytesPerSec, //необходимо для оценки размера буфера
WORD nBlockAlign, // размер блока данных
} WAVEFORMAT;
/* структура формата звукозаписи, специфичная для РСМ-данных */
typedef struct pcmwaveformat_tag
{
WAVEFORMAT wf;
WORD wBitsPerSample;
}
PCMWAVEFORMAT;…
В настоящее время для WAV-файлов определен только один формат
импульсно-кодовая модуляция РСМ, поэтому поле wFormatTag структуры
WAVEFORMAT
должно содержать значение WAVE_FORMAT_PCM.
В структуре PCMWAVEFORMAT
к общему формату WAV-данных добав-
лено поле wBitsPerSample, указывающее разрядность выборки. Это поле опреде-
ляет объем памяти, необходимый для записи каждой выборки. Обычно исполь-
зуются значения 8 и 16 битов. Монофоническая звукозапись длительностью в 1 с,
оцифрованная с частотой 11 кГц и разрядностью 8 битов, содержит 11 000 выбо-
рок,
т. е. занимает объем примерно 11 Кб. При стереофонической звукозаписи проис-
ходит одновременная оцифровка сигналов в двух каналах. Если разрядность выбо-
рок в каждом из них равна 8 битам, то разрядность суммарной выборки состав-
ляет 16 битов. Объем стереофонической звукозаписи длительностью в 1 с,
147
     Функция mmioDescend() возвращает информацию о блоке в параметре
lpmmcki. Можно также заставить ее выполнять поиск блоков определенного ти-
па. Для инициации такого поиска последний параметр должен содержать значе-
ние MMIO_FINDCHUNK, MMIO_FINDLIST или MMIO_FINDRIFF. Поиск на-
чинается с текущей позиции в файле и завершается в конце файла. Функция
mmioAscend(), помимо перемещения к концу блока, помогает формировать но-
вые блоки. Она вызывается после записи новых данных, выравнивая блок по
четному байту и записывая объем данных в заголовок блока.
     Каждая звукозапись в RIFF-файле должна содержать блок, помеченный
тегом fmt. (Теги, состоящие из символов нижнего регистра, обозначают вло-
женные блоки.) Структура PCMWAVEFORMAT определяет содержимое этого
блока:

/* универсальный формат файла звукозаписи (информация, общая для всех
форматов) */
typedef struct waveformat_tag
{
     WORD wFormatTag,           // тип формата
     WORD nChannels,          // количество каналов (1 = моно; 2 = стерео)
     DWORD nSamplesPerSec, // частота оцифровки
     DWORD nAvgBytesPerSec, //необходимо для оценки размера буфера
     WORD nBlockAlign,         // размер блока данных
} WAVEFORMAT;
/* структура формата звукозаписи, специфичная для РСМ-данных */
typedef struct pcmwaveformat_tag
{
     WAVEFORMAT wf;
     WORD wBitsPerSample;
}
PCMWAVEFORMAT;…
      В настоящее время для WAV-файлов определен только один формат –
импульсно-кодовая модуляция РСМ, поэтому поле wFormatTag структуры
WAVEFORMAT должно содержать значение WAVE_FORMAT_PCM.
      В структуре PCMWAVEFORMAT к общему формату WAV-данных добав-
лено поле wBitsPerSample, указывающее разрядность выборки. Это поле опреде-
ляет объем памяти, необходимый для записи каждой выборки. Обычно исполь-
зуются значения 8 и 16 битов. Монофоническая звукозапись длительностью в 1 с,
оцифрованная с частотой 11 кГц и разрядностью 8 битов, содержит 11 000 выбо-
рок,
т. е. занимает объем примерно 11 Кб. При стереофонической звукозаписи проис-
ходит одновременная оцифровка сигналов в двух каналах. Если разрядность выбо-
рок в каждом из них равна 8 битам, то разрядность суммарной выборки состав-
ляет 16 битов. Объем стереофонической звукозаписи длительностью в 1 с,

                                     147