改变音量win32 c ++

use*_*875 10 c++ audio winapi volume

我将如何改变c ++ win32中的音量?另外,我将如何静音/取消静音?谢谢您的帮助!

Irw*_*win 13

使用waveOutSetVolumeAPI.

这是一个例子:

  DWORD dwVolume;

  if (waveOutGetVolume(NULL, &dwVolume) == MMSYSERR_NOERROR)
    waveOutSetVolume(NULL, 0); // mute volume

  // later point in code, to unmute volume...
  waveOutSetVolume(NULL, dwVolume);
Run Code Online (Sandbox Code Playgroud)

  • 这将音量设置为零,这与静音不同(尽管效果非常相似).它设置了"Wave"音量,而不是"Master Volume".哪个可能是你想要的,也可能不是. (3认同)

Rei*_*man 5

waveOutSetVolume和mixerSetControlDetails仅在Windows Vista及更高版本上更改应用程序的卷.

如果要在Vista及更高版本上更改主卷,请搜索IAudioEndpointVolume接口.

是几年前我写一篇博客文章.


Cla*_*ols 3

两种选择:

  1. SO 上有这个问题的答案(从 C++ 更改主音量,其中还包括 SetMute 等)

  2. 您是否考虑过向用户显示音量控件?如果是这样,我可以为此发布一些代码。(您基本上只需使用音量控制小程序即可。