【问题标题】:How to create a Audio Device driver to capture sound Mac is playing?如何创建音频设备驱动程序来捕获 Mac 正在播放的声音?
【发布时间】:2012-08-08 15:34:33
【问题描述】:

我创建了一些代码来使用 AV Foundation 对 mov 文件进行屏幕捕获,我的下一步是记录 Mac 正在播放的声音,以便以后添加到录制的视频中。我做了一些挖掘,似乎我可能需要实现某种音频驱动程序来捕获音频。关于如何实现这一点的任何指示?

我认为 AudioUnit 和 IOKit 会以某种方式被需要...

提前致谢。

【问题讨论】:

    标签: objective-c macos cocoa audiounit iokit


    【解决方案1】:

    Ole Henry Halvorsen 和 Douglas Clarke 所著的《OS X and iOS Kernel Programming》一书中有一个例子可以做到这一点。您可以从本书的网站下载示例,本书本身当然解释了它是如何工作的。

    披露:我是这本书的技术审稿人之一。 (我不收取版税等)

    【讨论】:

    • 我现在需要弄清楚如何将音频路由到回送设备,以便我可以捕获其输入,希望这可以在不使当前播放声音静音的情况下完成...
    • @Equinox2000 如果我没记错的话,该示例会生成输出和输入设备。您可以从输入(类似麦克风)设备录制并使用普通录音程序将其存储到磁盘,并将输出设备设置为系统的默认输出。如果您还想同时听到音频,您还需要将捕获的音频馈送到您的声卡。您可以在用户空间中执行此操作(编写一个从麦克风捕获音频并将其转发到扬声器和磁盘的小程序),或者如果延迟很关键,则修改内核代码。
    • 为了我的目的,我可能会修改内核代码,如前所述,也可以推送到扬声器。我知道 ScreenFlow / AudioHijack / WireTap 之类的应用程序以类似的方法工作,但奇怪的是您没有看到系统 - 首选项 - 声音中列出的音频设备,logmein 之类的东西如何......
    • @Equinox2000 我只能假设那些在不同位置接入音频流的人。我不是 OSX 音频系统方面的专家,所以除了我已经说过的内容之外,我真的无能为力。
    【解决方案2】:

    您还应该查看 Soundflower 的源代码:

    http://code.google.com/p/soundflower/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-21
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 2010-09-17
      相关资源
      最近更新 更多