我正在制作一个使用语音库的程序,我想在女士说话时让所有其他声音静音或减少。
我一直在寻找一种手动使其他应用程序静音的方法,但我在 Windows 中的通信选项卡(声音选项内)中看到了一个选项,提到该窗口可以为我管理这个。就像在这张照片中:
所以基本上,我的应用程序需要什么才能被视为通信应用程序(例如 Skype)?
我正在制作一个使用语音库的程序,我想在女士说话时让所有其他声音静音或减少。
我一直在寻找一种手动使其他应用程序静音的方法,但我在 Windows 中的通信选项卡(声音选项内)中看到了一个选项,提到该窗口可以为我管理这个。就像在这张照片中:
所以基本上,我的应用程序需要什么才能被视为通信应用程序(例如 Skype)?
我相信通信应用程序正在实现与IAudioVolumeDuckNotification
接口相关的东西。C++ 示例还提供了可能足够的参考WM_VOLUME_DUCK
和WM_VOLUME_UNDUCK
Windows 消息(但似乎不是 google-able 或文档化的)。
更新
CodePlex 上的.NET Core Audio API 项目似乎提供了一个 .NET 包装器。
更新
可以在 MSDN示例应用程序中找到示例 C++ 实现IAudioVolumeDuckNotification
以及通知状态的示例。它确实有效(我试过了)。PInvoke 的几个方法和接口的 .NET 包装器的组合应该足以让您上路。ducked
DuckingMediaPlayer