我想知道是否可以仅静音一个特定的窗口。例如,我打开了Firefox和另外两个窗口。我想将与Firefox相关的所有声音都关闭,而不是整个电脑的声音。
这种情况可行吗?如果可以,应该怎样做?
我想知道是否可以仅静音一个特定的窗口。例如,我打开了Firefox和另外两个窗口。我想将与Firefox相关的所有声音都关闭,而不是整个电脑的声音。
这种情况可行吗?如果可以,应该怎样做?
看,基本上,窗口句柄和代码中播放的声音之间没有任何关系...音频卡无法知道谁想要播放它。 理论上,在Web浏览器上有一个选项可以实现你想要的功能,但这并不容易,也不是100%可行。具体方法如下: 大多数从浏览器播放的音频都来自已知的对象,如wmp/quick time/vlc/flash等。 当用户选择在Firefox中静音所有音频时,你的应用程序将在Firefox选项卡中搜索这些已知对象,并使用它们的API进行静音/取消静音。 为了做到这一点,你需要编写一个Firefox扩展程序,以便从你的应用程序中访问选项卡内存。
顺便问一下,你用的是什么操作系统? 还有,看看这个:http://www.indev.no/?p=projects#flashmute(FlashMute),我相信它可以做到所说的——只针对Flash。
在Vista/Windows 7上: 我预计会有一些API可以基于进程来改变音量,这是音频管理器使用的。应该相对容易使用。
在XP上:
我认为没有内置功能可以实现你想要的功能。我建议在XP上不要提供该功能。但如果你真的想要,有一些hackish的解决方案:
但正如你所看到的,这两种解决方案都不好。