以编程方式记录发送到Mac OS X内置输出的声音

10

我有一个难题:

我需要找到一种方法来捕获在Mac OS X上通过内置输出传输的原始音频数据。核心音频、HAL等。

我可以“监听”内置输出和麦克风,但它们似乎都没有提供正确的数据流 - 正确的流(所有输入源的组合数据)将传输到扬声器/内置输出。

欢迎任何建议并感激不尽。


你自2009年以来找到了完成这个任务的方法吗? - Olwaro
我很想知道您如何从所有输入源获取所有组合数据。 - Charlie
3个回答

2

0

你需要从程序中访问该流,还是只想从中提取音频?在后一种情况下,快速的谷歌搜索可以找到 http://www.ambrosiasw.com/utilities/wiretap/http://www.rogueamoeba.com/audiohijackpro/。但这些都不是开源或免费的。

编辑--糟糕,你想以编程方式访问,这回答了我的问题,抱歉。我认为我会保留我的答案,以防有人偶然发现这个页面想要非编程方式记录音频。


1
Wiretap就像我需要实现的功能一样 - 它可以捕获输出流。我只需要深入了解Wiretap这样的应用程序如何与Core Audio和/或HAL接口交互。 - Demi

0

您需要让您的应用程序安装一个系统扩展。 Soundflower是这种扩展的开源实现。


请进一步解释。我见过Soundflower,并理解它是不同音频设备之间的桥梁。但我不明白它如何适用于这种特定情况... - Demi
如果我理解正确,您想记录混合系统音频。使用Soundflower,您可以完全做到这一点。据我记得,这就是Rogue Amoebas Audio Hijack Pro中的系统音频录制工作方式。如果您选择“系统音频”作为输入源,则会询问是否应安装soundflower系统扩展。当然,我们需要编写实际录制的代码。(正如我们在此回答您的SO问题:https://dev59.com/Q3NA5IYBdhLWcg3wrP2q#874855) - Thomas Zoechling
这里让我感到困扰的是,如果安装了SoundFlower,则需要重新启动。然而,当使用诸如WireTap之类的应用程序时,不需要进行其他安装-您只需将其复制到应用程序目录中即可运行。我需要知道的是,是什么“魔法”使这样的应用程序能够获取混合系统音频而无需进行其他安装。 - Demi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接