C ++ Winapi waveOutSetVolume ()

Я хочу изменить общую громкость с помощью функции

MMRESULT waveOutSetVolume(
HWAVEOUT hwo,
DWORD dwVolume
);

hwo
Handle to an open waveform-audio output device. This parameter can also be a device identifier.

Как мне создать обработчик для Master Volume?

dwVolume
Specifies a new volume setting. The low-order word contains the left-channel volume setting, and the high-order word contains the right-channel setting. A value of 0xFFFF represents full volume, and a value of 0x0000 is silence.
If a device does not support both left and right volume control, the low-order word of dwVolume specifies the volume level, and the high-order word is ignored.

Как передать громкость (например, 75) в функцию?

Попробуй так: Как программно изменить основной объем? не работает для меня!

1

Решение

В Vista + нет никаких изменений громкости waveOutXxx API. Вместо этого используйте WASAPI:

Если устройство имеет аппаратный регулятор громкости, изменения, внесенные в элемент управления
сквозь IAudioEndpointVolume интерфейс
влияет на уровень громкости
как в режиме совместного использования, так и в эксклюзивном режиме. Если устройству не хватает оборудования
регуляторы громкости и отключения звука, изменения в программном обеспечении громкости и отключения звука
элементы управления через этот интерфейс влияют на уровень громкости в общем
режим, но не в эксклюзивном режиме. В эксклюзивном режиме приложение
и аудиооборудование обменивается аудиоданными напрямую, минуя
программные средства управления.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]