gpt4 book ai didi

c# - 专门更改当前应用程序的音量

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:16 27 4
gpt4 key购买 nike

从 Windows Vista 开始,waveOutSetVolume 函数 (winmm.dll) 不再对操作系统主卷运行,而是对每个应用程序单独运行。默认情况下,它设置为 100%,这意味着应用程序播放与操作系统相同音量的声音。

现在我想利用这个效果:只改变我当前应用程序的音量而不改变操作系统音量。

我尝试了 http://www.geekpedia.com/tutorial176_Get-and-set-the-wave-sound-volume.html 提供的应用程序.我添加了一个 WindowsMediaPlayer 控件并使用 URL 属性(autostart 设置为 true)将 Webradio 流加载到其中。乍一看,代码并不像它应该的那样:当我滚动 slider 时, radio 继续以相同的音量播放,即使我设置为 0 也等于将其静音。我调试了一下,发现一切正常,waveOutSetVolume返回0,应该可以,还是我记错了?

我打开了 Windows 7 提供的混音器控制台。我看到了以下内容:当我在示例中滚动 slider 时,混音器 View 中相应应用程序的 slider 会发生变化(应该如此)。然而音量没有改变。但是,如果我在混音器控制台中降低应用程序的音量(使用鼠标手动),则网络广播会以较低的声音播放(应该如此)。似乎在我的代码中缺少一些“提交”调用以实际使操作系统相应地调整应用程序的音量。

有什么想法吗?谢谢,大卫

最佳答案

您可以使用 Audio Session API IAudioVolume 和 IAudioSessionNotification 修改当前应用的音量,并使用应用中的音量 slider 跟踪您的音量。

关于c# - 专门更改当前应用程序的音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4508548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com