【发布时间】:2009-09-14 17:37:42
【问题描述】:
我需要在 Windows XP 中对来自其他进程的声音进行静音和取消静音。我正在寻找最佳策略。是否可以编写一个内核模式混合器来过滤输出设备的输入?我的另一种方法是为各种 API 设置 Hooks 以拦截它们的 Win32 调用。我更喜欢侵入性较小的方法。
一些注意事项: 涵盖使用 WinMM 和 DirectSound 系统组件的应用程序可能就足够了(即我不需要担心其他音频接口)。
这最终需要在 C# 应用程序中使用。我在互操作方面相当熟练,但没有 Win32 的内部知识来实现这一点。
可以列出所有需要静音的应用程序并分别处理每个应用程序,尽管该列表预计会增加。
附:万一有人担心,这些操作将在用户同意的情况下执行(没有黑幕)。
【问题讨论】:
-
我不认为你会找到任何简单的方法来做到这一点,而不编写一些非常低级的代码。 Windows API 根本不提供那种级别的灵活性。您应该仔细考虑此功能对您的重要性。
-
很遗憾,这不是可选功能。但我也绝对不怕写低级代码。