题 如何使我的应用程序被视为Windows中的通信程序


我正在制作一个使用语音库的程序,当女士说话时,我想让所有其他声音变得柔和或减弱。

我一直在寻找一种手动静音其他应用程序的方法,但我在Windows的通讯选项卡(声音选项内)中看到了一个选项,提到该窗口可以为我管理这个。就像在这张图片中:

enter image description here

基本上,我的应用程序被视为通信应用程序(如Skype)需要什么?


18
2018-01-16 19:21


起源


msdn.microsoft.com/en-us/library/windows/desktop/... 可能是相关的。没有仔细看过它来写一个答案。 - Random832
也许 这个 是你在找什么。从来没有使用它,所以我不能给你一个正确的方法如何注册你的程序作为这样的应用程序。 - dowhilefor


答案:


我相信通信应用正在实现与之相关的东西 IAudioVolumeDuckNotification 接口。 C ++示例还提供了参考 WM_VOLUME_DUCK 和 WM_VOLUME_UNDUCK Windows消息可能就足够了(但似乎没有google-able或记录)。

UPDATE

.NET Core Audio API项目 在CodePlex上似乎提供了一个.NET包装器。

UPDATE

一个示例C ++实现 IAudioVolumeDuckNotification 以及通知的一个例子 ducked 状态可以在MSDN中找到 DuckingMediaPlayer 样品申请。它确实有效(我试过)。 PInvoke的几个方法和界面的.NET包装器的组合应该足以让你顺利进行。


5