获取扬声器音频信号,然后将其流式输出
-
12-09-2019 - |
题
我正在尝试构建一个我认为是基本的应用程序。嗯,有两个应用程序,一个用于 Windows,一个用于 OS X。我想捕获正在播放的音频信号(即,如果用户正在用他/她的扬声器播放音乐)。然后获取该信号并将其输出,以便另一台计算机可以“监听”。另一台计算机是 Windows 或 OS X。
- 关于如何获取音频信号有什么想法吗?
- 在没有第三方插件的情况下,最有效的音频流传输方式是什么?如果有开源解决方案,我会很感兴趣。
谢谢!
克里斯
解决方案
在 Windows XP 上,这根本不是小事,因为如果不编写音频过滤器驱动程序,就无法拦截输出信号(这不适合胆小的人)。
在 Windows Vista 及更高版本上,您可以使用 WASAPI API(内置于 Windows 中,因此免费)捕获音频引擎的输出,并使用 AUDCLNT_STREAMFLAGS_LOOPBACK 标志初始化音频客户端。这将为您提供一个连接到音频引擎输出的捕获流。
然后,您可以打包该音频并将其发送到另一台计算机,并使用您想要的任何音频渲染 API 进行渲染。
我不知道如何在 OSX 上做同样的事情:(。
不隶属于 StackOverflow