Программирование мультимедиа-систем - 52 стр.

UptoLike

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

- 52 -
WAVECAPS_SYNC
Драйвер устройства вывода работает в син-
хронном режиме (во время проигрывания
работа приложения приостанавливается)
В работе [6] приведен полный С-код приложения DRVLIST, служа-
щего для исследования установленных в системе конфигурации драйверов
устройств мультимедиа.
3.6.4.
Воспроизведение звука
Для воспроизведения звуковых файлов на низком уровне после опре-
деления возможностей устройства вывода необходимо открыть устройст-
во, это удобно сделать с помощью функции
waveOutOpen.
UINT
waveOutOpen(LPHWAVEOUT lphWaveOut,
UINT wDeviceID,
LPWAVEFORMAT lpFormat,
DWORD dwCallbackInstance,
DWORD dwFlags);
Здесь lphWaveOut - дальний указатель на переменную типа
HWAVEOUT. В эту переменную будет записан идентификатор устройства
вывода, который необходим для выполнения всех операций с устройством.
Функция
waveOutOpen также может быть использована для определения
возможности воспроизведения звуковых данных заданного формата (в том
числе нестандартного), в этом случае параметр
lphWaveOut может иметь
значение
NULL, дополнительно в параметре dwFlags следует установить
флаг
WAVE_FORMAT_QUERY.
Через параметр
wDeviceID приложение должно передать функции
waveOutOpen номер устройства вывода, которое оно собирается открыть
или константу
WAVE_MAPPER, определенную в файле mmsystem.h. В
первом случае номер устройства может лежать в пределах от нуля до по-
лученного с помощью функции
waveOutGetNumDevs значения. Обычно
используется константа WAVE_MAPPER, при этом функция waveOut-
Open
пытается самостоятельно выбрать и открыть устройство вывода,
подходящее для проигрывания звуковых данных указанного формата.
Через параметр
lpFormat приложение должно передать функции
waveOutOpen адрес заполненной структуры WAVEFORMAT (эта струк-
тура и указатели на нее описаны выше).
Параметр
dwCallback передает функции waveOutOpen адрес функ-
ции обратного вызова. Эту функцию будет вызывать драйвер устройства
вывода при возникновении событий, имеющих отношение к проигрыва-
                                  - 52 -


WAVECAPS_SYNC                    Драйвер устройства вывода работает в син-
                                 хронном режиме (во время проигрывания
                                 работа приложения приостанавливается)

    В работе [6] приведен полный С-код приложения DRVLIST, служа-
щего для исследования установленных в системе конфигурации драйверов
устройств мультимедиа.

  3.6.4. Воспроизведение звука

     Для воспроизведения звуковых файлов на низком уровне после опре-
деления возможностей устройства вывода необходимо открыть устройст-
во, это удобно сделать с помощью функции waveOutOpen.

UINT
waveOutOpen(LPHWAVEOUT lphWaveOut,
            UINT wDeviceID,
            LPWAVEFORMAT lpFormat,
            DWORD dwCallbackInstance,
            DWORD dwFlags);

     Здесь lphWaveOut - дальний указатель на переменную типа
HWAVEOUT. В эту переменную будет записан идентификатор устройства
вывода, который необходим для выполнения всех операций с устройством.
Функция waveOutOpen также может быть использована для определения
возможности воспроизведения звуковых данных заданного формата (в том
числе нестандартного), в этом случае параметр lphWaveOut может иметь
значение NULL, дополнительно в параметре dwFlags следует установить
флаг WAVE_FORMAT_QUERY.
     Через параметр wDeviceID приложение должно передать функции
waveOutOpen номер устройства вывода, которое оно собирается открыть
или константу WAVE_MAPPER, определенную в файле mmsystem.h. В
первом случае номер устройства может лежать в пределах от нуля до по-
лученного с помощью функции waveOutGetNumDevs значения. Обычно
используется константа WAVE_MAPPER, при этом функция waveOut-
Open пытается самостоятельно выбрать и открыть устройство вывода,
подходящее для проигрывания звуковых данных указанного формата.
     Через параметр lpFormat приложение должно передать функции
waveOutOpen адрес заполненной структуры WAVEFORMAT (эта струк-
тура и указатели на нее описаны выше).
     Параметр dwCallback передает функции waveOutOpen адрес функ-
ции обратного вызова. Эту функцию будет вызывать драйвер устройства
вывода при возникновении событий, имеющих отношение к проигрыва-