在 Windows 上拦截和后处理所有音频流

Posted

技术标签:

【中文标题】在 Windows 上拦截和后处理所有音频流【英文标题】:Intercepting and postprocessing all audio streams on Windows 【发布时间】:2010-12-22 17:55:20 【问题描述】:

我想知道有什么方法可以创建一个应用程序来截取计算机上正在播放的所有音频,这样我就可以处理音频(应用一些效果),然后将其进一步传递给 Windows音频子系统?

我刚刚瞥见了 Vista/7 WASAPI,有这个 sAPO: http://www.microsoft.com/whdc/device/audio/sysfx.mspx 但似乎我无法创建我的 sAPO 并将其安装在我喜欢的任何地方 - 我需要一个 WHQL 驱动程序。

有没有通用的方法来做到这一点? 我有使用 DirectSound 的经验,但我没有看到任何有关截取音频流的有用信息。

【问题讨论】:

【参考方案1】:

如果您正在加载自定义 sAPO,您将在全局范围内影响系统的声音。这将需要签名。 From this article:

音频引擎未加载 未签名的 sAPO 进入音频 处理图。所以当你在 测试您的 sAPO,您必须禁用 Audiodg.exe 的受保护进程。 要禁用受保护的进程,请设置 的价值 DisableProtectedAudioDG 注册表项 到“1”。

【讨论】:

以上是关于在 Windows 上拦截和后处理所有音频流的主要内容,如果未能解决你的问题,请参考以下文章

解决在Filter中读取Request中的流后,后续controller或restful接口中无法获取流的问题

SpringMVC08:拦截器+文件上传下载

SpringMVC学习笔记7:拦截器

用程序拦截器拦截请求

播放流后音频队列无法录制音频

SpringMVC——拦截器异常处理机制