Поделиться через


функция mixerOpen (mmeapi.h)

Функция mixerOpen открывает указанное устройство микшера и гарантирует, что устройство не будет удалено, пока приложение не закроет дескриптор.

Синтаксис

MMRESULT mixerOpen(
  LPHMIXER  phmx,
  UINT      uMxId,
  DWORD_PTR dwCallback,
  DWORD_PTR dwInstance,
  DWORD     fdwOpen
);

Параметры

phmx

Указатель на переменную, которая получит дескриптор, определяющий открытое устройство микшера. Используйте этот дескриптор для идентификации устройства при вызове других функций аудиомиксера. Этот параметр не может иметь значение NULL.

uMxId

Идентификатор открываемого микшерного устройства. Используйте допустимый идентификатор устройства или любой HMIXEROBJ (описание дескрипторов объектов микшера см. в разделе Функция mixerGetID ). "Средство сопоставления" для аудио-микшерных устройств в настоящее время не существует, поэтому идентификатор устройства микшера с значением -1 недопустим.

dwCallback

Обработка окна, вызываемого при изменении состояния звуковой строки и (или) элемента управления, связанного с открываемым устройством. Укажите значение NULL для этого параметра, если не требуется использовать механизм обратного вызова.

dwInstance

Зарезервировано. Должен равняться нулю.

fdwOpen

Флаги для открытия устройства. Определены следующие значения.

Значение Значение
CALLBACK_WINDOW Параметр dwCallback считается дескриптором окна (HWND).
MIXER_OBJECTF_AUX Параметр uMxId — это вспомогательный идентификатор устройства в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией auxGetNumDevs .
MIXER_OBJECTF_HMIDIIN Параметр uMxId — это дескриптор устройства ввода MIDI. Этот дескриптор должен быть возвращен функцией midiInOpen .
MIXER_OBJECTF_HMIDIOUT Параметр uMxId — это дескриптор устройства вывода MIDI. Этот дескриптор должен быть возвращен функцией midiOutOpen .
MIXER_OBJECTF_HMIXER Параметр uMxId — это дескриптор устройства микшера, возвращаемый функцией mixerOpen . Этот флаг является необязательным.
MIXER_OBJECTF_HWAVEIN Параметр uMxId — это дескриптор входных данных waveform-audio, возвращаемый функцией waveInOpen .
MIXER_OBJECTF_HWAVEOUT Параметр uMxId — это дескриптор вывода waveform-audio, возвращаемый функцией waveOutOpen .
MIXER_OBJECTF_MIDIIN Параметр uMxId — это идентификатор устройства ввода MIDI. Этот идентификатор должен находиться в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией midiInGetNumDevs .
MIXER_OBJECTF_MIDIOUT Параметр uMxId — это идентификатор устройства вывода MIDI. Этот идентификатор должен находиться в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией midiOutGetNumDevs .
MIXER_OBJECTF_MIXER Параметр uMxId — это идентификатор устройства микшера в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией mixerGetNumDevs . Этот флаг является необязательным.
MIXER_OBJECTF_WAVEIN Параметр uMxId — это идентификатор устройства ввода waveform-audio в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией waveInGetNumDevs .
MIXER_OBJECTF_WAVEOUT Параметр uMxId — это идентификатор устройства вывода waveform-audio в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией waveOutGetNumDevs .

Возвращаемое значение

Возвращает MMSYSERR_NOERROR в случае успешного выполнения или ошибки в противном случае. Возможные значения ошибок:

Код возврата Описание
MMSYSERR_ALLOCATED
Указанный ресурс уже выделен максимально возможным количеством клиентов.
MMSYSERR_BADDEVICEID
Параметр uMxId указывает недопустимый идентификатор устройства.
MMSYSERR_INVALFLAG
Один или несколько флагов недопустимы.
MMSYSERR_INVALHANDLE
Параметр uMxId указывает недопустимый дескриптор.
MMSYSERR_INVALPARAM
Один или несколько параметров недопустимы.
MMSYSERR_NODRIVER
Для объекта, указанного uMxId, устройство микшера недоступно. Обратите внимание, что расположение, на которое ссылается uMxId, также будет содержать значение –1.
MMSYSERR_NOMEM
Не удается выделить ресурсы.

Комментарии

Используйте функцию mixerGetNumDevs , чтобы определить количество устройств аудиомиксера, присутствующих в системе. Идентификатор устройства, указанный с помощью uMxId , варьируется от нуля до единицы меньше числа присутствующих устройств.

Если окно выбрано для получения сведений о обратном вызове, MM_MIXM_LINE_CHANGE и MM_MIXM_CONTROL_CHANGE сообщения отправляются в функцию процедуры окна, чтобы указать, когда изменяется состояние звуковой строки или элемента управления. Для обоих сообщений параметр wParam является дескриптором устройства микшера. Параметр lParam — это идентификатор строки для MM_MIXM_LINE_CHANGE или идентификатор элемента управления для MM_MIXM_CONTROL_CHANGE , изменивших состояние.

Чтобы запросить поддержку аудиомиксера или мультимедийное устройство, используйте функцию mixerGetID .

В 64-разрядных системах эта функция может не работать должным образом в ситуациях, когда вы передаете 64-разрядный указатель LPHWAVEOUT в параметр uMxId , так как параметр uMxId усекается до 32 бит.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header mmeapi.h (включая Windows.h)
Библиотека Winmm.lib
DLL Winmm.dll

См. также раздел

Функции аудио микшера

Аудио микшеры