2011-09-13 71 views
5

OS X有两个应用程序,允许您在音频被硬件播放之前预放大音频:音频劫持(预放大特定应用程序的输出)和Boom(预放大所有系统音频)。这些应用程序通过在预先存在的音频流上进行均衡处理(具有较高的前置放大器设置),然后将它们发送到声卡。预放大音频操作系统X

我的问题是:如何劫持系统音频流,然后将其发送到声卡。这是在API的某个地方,还是需要改变一个系统库?

+2

查看许多类似的问题,例如http://stackoverflow.com/questions/965045/osx-audio-hijack-style-audio-recording-from-other-applications-cocoa –

回答

5

1)创建出现在音频系统首选项中的标准音响设备。这必须采用内核扩展(kext)的形式。通过阅读苹果文档很难创建 - 尝试查看名为Soundflower的应用程序。

2)加载kext并获得新的音频设备后,请在首选项中将其选为系统音频的默认输出设备。

3)现在您需要改变音频并将其转换为真实的系统输出。这可以在附带的应用程序中完成,该应用程序将回调“IOProc”功能添加到a)新设备和b)计算机的内置输出设备。然后,您可以将音频缓冲区从一个设备复制到另一个设备,以将音频传输到扬声器。要增加音量,请将缓冲区中的所有字节乘以某个因子。看到Soundflower的随行应用程序。

+0

- 感谢保罗的指针。这是我学到的东西。 – Colin