Составители:
MessageBox( hWnd, szErrStr, szCaption, MB_ICONEXCLAMATION |
MB_OK );
return;
}
3. Рассмотреть модуль ММIO.
Если бы программа ShowWave только
записывала и воспроизводила звуки, модуль ММIO не использовался бы. Но
нам необходимо также манипулировать данными непосредственно в
аудиофайлах. В частности, для графического отображения звукового сигнала
необходимо читать выборки из WAV-файла. Кроме того, поскольку
пользователь имеет возможность модифицировать звукозаписи, находящиеся в
памяти, иногда программа ShowWave должна сохранять данные в виде нового
файла. Модуль ММIO содержит одну функцию для чтения данных, одну - для
записи и одну - для обработки ошибок, связанных с файлами.
Чтение WAV-файла. Функция ReadWaveData загружает все данные из
WAV-файла в память. Она выполняет следующие операции:
• открытие файла;
• поиск WAVE-блока;
• поиск вложенного fmt-блока и проверка того, в подходящем ли формате
записан звук;
• поиск вложенного data-блока и загрузка его в память;
• закрытие файла.
/*---------------------------------------------------
READ WAVE DATA Чтение звукозаписи из RIFF-файла в память.
Возвращает TRUE при успешном заполнении буфера;
в противном случае возвращается FALSE.
Если функция возвращает TRUE, значит, в последних
трех параметрах содержится информация о новом буфере.
----------------------------------------------------------------*/
BOOL ReadWaveData( HWND hWnd,
LPSTR lpszFileName,
LPSTR *lplpWaveData, // указатель на буфер
DWORD *lpdwWaveDataSize, // размер буфера
DWORD *lpdwSamplesPerSec ) // частота оцифровки
{
HMMIO hmmio; // дескриптор файла
MMCKINFO mmckinfoWave; // описание блока WAVE
MMCKINFO mmckinfoFrnt; // описание блока fmt
MMCKINFO mmckinfoData; // описание блока data
PCMWAVEFORMAT pcmWaveFormat; // содержимое блока fmt
LONG lFmtSize; // размер блока fmt
LONG lDataSize; // размер блока data
LPSTR lpData; // указатель на буфер данных
77
MessageBox( hWnd, szErrStr, szCaption, MB_ICONEXCLAMATION | MB_OK ); return; } 3. Рассмотреть модуль ММIO. Если бы программа ShowWave только записывала и воспроизводила звуки, модуль ММIO не использовался бы. Но нам необходимо также манипулировать данными непосредственно в аудиофайлах. В частности, для графического отображения звукового сигнала необходимо читать выборки из WAV-файла. Кроме того, поскольку пользователь имеет возможность модифицировать звукозаписи, находящиеся в памяти, иногда программа ShowWave должна сохранять данные в виде нового файла. Модуль ММIO содержит одну функцию для чтения данных, одну - для записи и одну - для обработки ошибок, связанных с файлами. Чтение WAV-файла. Функция ReadWaveData загружает все данные из WAV-файла в память. Она выполняет следующие операции: • открытие файла; • поиск WAVE-блока; • поиск вложенного fmt-блока и проверка того, в подходящем ли формате записан звук; • поиск вложенного data-блока и загрузка его в память; • закрытие файла. /*--------------------------------------------------- READ WAVE DATA Чтение звукозаписи из RIFF-файла в память. Возвращает TRUE при успешном заполнении буфера; в противном случае возвращается FALSE. Если функция возвращает TRUE, значит, в последних трех параметрах содержится информация о новом буфере. ----------------------------------------------------------------*/ BOOL ReadWaveData( HWND hWnd, LPSTR lpszFileName, LPSTR *lplpWaveData, // указатель на буфер DWORD *lpdwWaveDataSize, // размер буфера DWORD *lpdwSamplesPerSec ) // частота оцифровки { HMMIO hmmio; // дескриптор файла MMCKINFO mmckinfoWave; // описание блока WAVE MMCKINFO mmckinfoFrnt; // описание блока fmt MMCKINFO mmckinfoData; // описание блока data PCMWAVEFORMAT pcmWaveFormat; // содержимое блока fmt LONG lFmtSize; // размер блока fmt LONG lDataSize; // размер блока data LPSTR lpData; // указатель на буфер данных 77
Страницы
- « первая
- ‹ предыдущая
- …
- 75
- 76
- 77
- 78
- 79
- …
- следующая ›
- последняя »