捕获音频输出

Posted

技术标签:

【中文标题】捕获音频输出【英文标题】:Capturing Audio Out 【发布时间】:2011-01-02 14:07:24 【问题描述】:

我想捕获播放给用户的所有音频(所有声音一起)。目前我正在使用 Windows,但如果代码是跨平台的(但不一定)会很好。是否可以使用 OpenAL 来做到这一点?如何?代码示例会很棒。

语言:C++

【问题讨论】:

您可以将虚拟电缆从扬声器连接到麦克风,然后通过任何声音编辑工具轻松录制。对于电缆,请参见例如:vb-audio.pagesperso-orange.fr/Cable/index.htm 【参考方案1】:

我认为唯一的方法是创建一个替代音频设备驱动程序来接收所有音频请求,然后将它们转发给原始设备驱动程序。有许多现有的应用程序以这种方式工作,包括 Freecorder、MP3myMP3 Recorder、SoundTap 和 Wondershare 等等(Google“流式录音机”)。

至于跨平台,我会说没有机会,因为它依赖于操作系统驱动程序模型。

【讨论】:

借助我的 Realtek HD 板载声音,我可以使用标准 Windows 录音机工具直接录制扬声器发出的任何声音。不确定你是否需要一些特别的东西(我不记得做过任何“特别”的事情)。 我刚刚在Win7下启动了SoundRecorder,它说“找不到录音设备”,我也有RealTek HD,控制面板将录音源列为“前置麦克风”、“麦克风”和“线路”在“中”,所有显示为“未插入”,因此“无设备”,没有可录制的扬声器抽头源,因此在此设置中至少无法完成。 YMMV【参考方案2】:

根据系统中的内容,某些(不是全部)声卡提供“立体声混音”功能,可以像任何其他录音设备一样使用。这基本上正是您想要的,因为它实际上是所有正在播放的立体声的混合。

【讨论】:

以上是关于捕获音频输出的主要内容,如果未能解决你的问题,请参考以下文章

捕获音频输出

在 Python 中捕获输出音频频谱

如何在 C++ 中从音频输出中捕获声音

如何在 iOS 中捕获音频输出?

Java Sound API:从目标端口捕获声音输出

如何从WDM流音频源(Realtek HD Audio)捕获