Составители:
LPMMCKINFO lpnunckiParent, // необязательная структура
// родительского блока
UINT uSearch ); // флаги поиска
MMRESULT mmioAscend( HMMIO hmmio, // дескриптор RIFF-файла
LPMMCKINFO lpmmcki, // место для записи
// информации о блоке
UINT uReserved ); // зарезервирован;
// должен содержать 0
Функция 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 битов, содержит 11000 выборок, т.е. занимает объем при-
мерно 11 Кб. При стереофонической звукозаписи происходит одновременная оцифровка
сигналов в двух каналах. Если разрядность выборок в каждом из них равна 8 битам, то
разрядность суммарной выборки составляет 16 битов. Объем стереофонической звуко-
233
LPMMCKINFO lpnunckiParent, // необязательная структура // родительского блока UINT uSearch ); // флаги поиска MMRESULT mmioAscend( HMMIO hmmio, // дескриптор RIFF-файла LPMMCKINFO lpmmcki, // место для записи // информации о блоке UINT uReserved ); // зарезервирован; // должен содержать 0 Функция 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 битов, содержит 11000 выборок, т.е. занимает объем при- мерно 11 Кб. При стереофонической звукозаписи происходит одновременная оцифровка сигналов в двух каналах. Если разрядность выборок в каждом из них равна 8 битам, то разрядность суммарной выборки составляет 16 битов. Объем стереофонической звуко- 233
Страницы
- « первая
- ‹ предыдущая
- …
- 229
- 230
- 231
- 232
- 233
- …
- следующая ›
- последняя »