Мультимедиа для Windows

         

Управление громкостью



Управление громкостью

Ваше приложение может управлять громкостью сигнала при его воспроизведении. Для установки громкости следует использовать функцию waveOutSetVolume : Функция waveOutSetVolume UINT waveOutSetVolume( UINT wDeviceID, // номер устройства вывода DWORD dwVolume); // громкость

Параметры функции: wDeviceID

Параметр wDeviceID служит для выбора устройства. Заметим, что для функции waveOutSetVolume нужно указывать не идентификатор открытого устройства, а номер устройства, который может изменяться от 0 и до значения, определенного с помощью функции waveOutGetNumDevs. Если известен только идентификатор открытого устройства, номер этого устройства можно получить, вызвав функцию waveOutGetID, рассмотренную нами ранее dwVolume

Младшее слово параметра dwVolume задает громкость для левого канала (или единственного монофонического канала), старшее - для правого. Максимальной громкости соответствует значение 0xffff, минимальной - 0x0000. Промежуточные значения интерпретируются в логарифмическом масштабе



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

При нормальном завершении возвращается нулевое значение. В противном случае возвращается код ошибки: MMSYSERR_INVALHANDLE

Указан неправильный идентификатор устройства MMSYSERR_NOTSUPPORTED

Функция не поддерживается драйвером MMSYSERR_NODRIVER

В системе нет нужного драйвера

Как правило, вместе со звуковым адаптером проставляется приложение, выполняющее функции единой управляющей панели, с помощью которой можно регулировать громкость и тембр звука для разных каналов и устройств. Если ваше приложение изменяет громкость, перед завершением своей работы оно должно восстановить первоначальный уровень громкости (если от него не требуется обратного). Это можно сделать, если перед изменением определить текущий уровень громкости с помощью функции waveOutGetVolume : Функция waveOutGetVolume UINT waveOutGetVolume( UINT wDeviceID, // номер устройства вывода LPDWORD lpdwVolume); // текущая громкость

Параметры функции: wDeviceID

Параметр wDeviceID содержит номер устройства, который может изменяться от 0 и до значения, определенного с помощью функции waveOutGetNumDevs lpdwVolume

Указатель на переменную размером в двойное слово, в которую будет записано значение, соответствующее текущей громкости для левого и правого каналов. Младшее слово переменной будет содержать громкость для левого канала (или монофонического канала), старшее - для правого. Максимальной громкости соответствует значение 0xffff, минимальной - 0x0000. Промежуточные значения интерпретируются в логарифмическом масштабе

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

При нормальном завершении возвращается нулевое значение. В противном случае возвращается код ошибки: MMSYSERR_INVALHANDLE

Указан неправильный идентификатор устройства MMSYSERR_NOTSUPPORTED

Функция не поддерживается драйвером MMSYSERR_NODRIVER

В системе нет нужного драйвера



Содержание    Назад    Вперед