ВУЗ:
Составители:
Рубрика:
- 54 -
флага WAVE_ALLOWSYNC
Обычно при проигрывании WAV-файлов приложение вызывает функ-
цию
waveOutOpen дважды. Первый раз она вызывается для проверки воз-
можности проигрывания звуковых данных заданного формата
if (waveOutOpen(NULL, WAVE_MAPPER,
(WAVEFORMAT FAR *) lpwiocb->lpFmt,
NULL, 0L,
WAVE_FORMAT_QUERY | WAVE_ALLOWSYNC))
{
// сообщение о том, что воспроизведение невозможно
}
Если указанный формат поддерживается драйвером, приложение мо-
жет открыть устройство вывода, например, следующим образом
rc=waveOutOpen(&hWaveOut, WAVE_MAPERR,
(WAVEFORMAT FAR *) lpwiocb->lpFmt,
(UINT) hwnd, 0L,
CALLBACK_WINDOW | WAVE_ALLOWSYNC);
Указанная методика позволяет определить возможность работы с не-
стандартными форматами.
После открытия устройства можно приступать собственно к проигры-
ванию WAV-файла или звуковых данных; для чего необходимо подгото-
вить и передать драйверу устройства вывода блоки данных, содержащие
звуковую информацию (формат этих данных должен соответствовать ука-
занному при открытии устройства).
Блоки данных, передаваемые
драйверу, должны быть заказаны у сис-
темы как глобальные с флагами
GMEM_MOVEABLE и GMEM_SHARE.
Перед передачей блока драйверу необходимо его подготовить при по-
мощи функции
waveOutPrepareHeader
UINT
waveOutPrepareHeader(HWAVEOUT hWaveOut,
LPWAVEHDR lpWaveOutHdr,
UINT wSize);
Здесь
hWaveOut - полученный ранее от функции waveOutOpen иден-
тификатор устройства вывода,
lpWaveOutHdr - адрес описывающей пере-
даваемый блок данных заполненной структуры
WAVEHDR; описание
данной структуры приведено ниже
- 54 -
флага WAVE_ALLOWSYNC
Обычно при проигрывании WAV-файлов приложение вызывает функ-
цию waveOutOpen дважды. Первый раз она вызывается для проверки воз-
можности проигрывания звуковых данных заданного формата
if (waveOutOpen(NULL, WAVE_MAPPER,
(WAVEFORMAT FAR *) lpwiocb->lpFmt,
NULL, 0L,
WAVE_FORMAT_QUERY | WAVE_ALLOWSYNC))
{
// сообщение о том, что воспроизведение невозможно
}
Если указанный формат поддерживается драйвером, приложение мо-
жет открыть устройство вывода, например, следующим образом
rc=waveOutOpen(&hWaveOut, WAVE_MAPERR,
(WAVEFORMAT FAR *) lpwiocb->lpFmt,
(UINT) hwnd, 0L,
CALLBACK_WINDOW | WAVE_ALLOWSYNC);
Указанная методика позволяет определить возможность работы с не-
стандартными форматами.
После открытия устройства можно приступать собственно к проигры-
ванию WAV-файла или звуковых данных; для чего необходимо подгото-
вить и передать драйверу устройства вывода блоки данных, содержащие
звуковую информацию (формат этих данных должен соответствовать ука-
занному при открытии устройства).
Блоки данных, передаваемые драйверу, должны быть заказаны у сис-
темы как глобальные с флагами GMEM_MOVEABLE и GMEM_SHARE.
Перед передачей блока драйверу необходимо его подготовить при по-
мощи функции waveOutPrepareHeader
UINT
waveOutPrepareHeader(HWAVEOUT hWaveOut,
LPWAVEHDR lpWaveOutHdr,
UINT wSize);
Здесь hWaveOut - полученный ранее от функции waveOutOpen иден-
тификатор устройства вывода, lpWaveOutHdr - адрес описывающей пере-
даваемый блок данных заполненной структуры WAVEHDR; описание
данной структуры приведено ниже
Страницы
- « первая
- ‹ предыдущая
- …
- 52
- 53
- 54
- 55
- 56
- …
- следующая ›
- последняя »
