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

UptoLike

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

- 58 -
вывода, который необходим для выполнения всех операций с устройством.
Функция
waveInOpen может быть использована для определения возмож-
ностей записи звуковых данных в заданном формате (возможно
, нестан-
дартном), в этом случае параметр
lphWaveIn может иметь значение NULL
(дополнительно в параметре
dwFlags следует установить флаг
WAVE_FORMAT_QUERY).
Через параметр
wDeviceID приложение должно передать функции
waveInOpen номер устройства ввода, которое оно собирается открыть или
константу
WAVE_MAPERR (в первом случае номер устройства может
лежать от нуля до полученного с помощью функции
waveInGetNumDevs,
во втором случае функция
waveInOpen пытается самостоятельно выбрать
и открыть подходящее для записи звуковых данных указанного формата
устройство вывода).
При нормальном завершении функция
waveInOpen возвращает нуль,
в противном случае - нижеприведенный код ошибки
Код ошибки Описание ошибки
MMSYSERR_NODRIVER
В системе нет нужного для работы с устройством
ввода драйвера
MMSYSERR_BADDEVICEID
Указан неправильный номер устройства
MMSYSERR_ALLOCATED
Это устройство уже открыто
MMSYSERR_NOMEM
Для выполнения операции недостаточно памяти
MMSYSERR_BADFORMAT
Указанный формат звуковых данных не поддер-
живается драйвером устройства
MMSYSERR_SYNC
Попытка открыть синхронное устройство ввода
без использования флага WAVE_ALLOWSYNC
После открытия устройства необходимо подготовить один или не-
сколько блоков памяти, в которые будет записана введенная звуковая ин-
формация (требования к блокам памяти при этом такие же, как и при вос-
произведении).
Перед передачей блока драйверу его необходимо подготовить функ-
цией
waveInPrepareHeader, входные параметры и коды ошибок которой
практически повторяют таковые функции
waveOutPrepareHeader
UINT
waveInPrepareHeader(HWAVEIN hWaveIn,
LPWAVEHDR lpWaveInHdr,
UINT wSize);
Подготовленный таким образом блок памяти передается драйверу
устройства ввода функцией
waveInAddBuffer
UINT
                                   - 58 -


вывода, который необходим для выполнения всех операций с устройством.
Функция waveInOpen может быть использована для определения возмож-
ностей записи звуковых данных в заданном формате (возможно, нестан-
дартном), в этом случае параметр lphWaveIn может иметь значение NULL
(дополнительно в параметре dwFlags следует установить флаг
WAVE_FORMAT_QUERY).
     Через параметр wDeviceID приложение должно передать функции
waveInOpen номер устройства ввода, которое оно собирается открыть или
константу WAVE_MAPERR (в первом случае номер устройства может
лежать от нуля до полученного с помощью функции waveInGetNumDevs,
во втором случае функция waveInOpen пытается самостоятельно выбрать
и открыть подходящее для записи звуковых данных указанного формата
устройство вывода).
     При нормальном завершении функция waveInOpen возвращает нуль,
в противном случае - нижеприведенный код ошибки

       Код ошибки                           Описание ошибки
MMSYSERR_NODRIVER            В системе нет нужного для работы с устройством
                             ввода драйвера
MMSYSERR_BADDEVICEID         Указан неправильный номер устройства
MMSYSERR_ALLOCATED           Это устройство уже открыто
MMSYSERR_NOMEM               Для выполнения операции недостаточно памяти
MMSYSERR_BADFORMAT           Указанный формат звуковых данных не поддер-
                             живается драйвером устройства
MMSYSERR_SYNC                Попытка открыть синхронное устройство ввода
                             без использования флага WAVE_ALLOWSYNC

    После открытия устройства необходимо подготовить один или не-
сколько блоков памяти, в которые будет записана введенная звуковая ин-
формация (требования к блокам памяти при этом такие же, как и при вос-
произведении).
    Перед передачей блока драйверу его необходимо подготовить функ-
цией waveInPrepareHeader, входные параметры и коды ошибок которой
практически повторяют таковые функции waveOutPrepareHeader

UINT
waveInPrepareHeader(HWAVEIN hWaveIn,
                     LPWAVEHDR lpWaveInHdr,
                     UINT wSize);

    Подготовленный таким образом блок памяти передается драйверу
устройства ввода функцией waveInAddBuffer

UINT