【问题标题】:Problems Recording and Playing Back Audio Simultaneously同时录制和播放音频的问题
【发布时间】:2015-10-30 12:16:05
【问题描述】:

我在使用 iOS 音频框架创建简单应用时遇到了一些问题。我想通过麦克风录制音频并在录制时将其回放给用户。

我已经尝试了每个音频框架层(AVFoundation、Audio Queue API 和 RemoteIO),但只找到了旧文档和损坏的示例。这似乎是 AVFoundation 应该处理的一个简单请求,但我已经探索了以下内容其他 SO 问题,但仍然发现自己盘旋了几个小时才能掌握这个窍门。以下是我的评论:

我还下载并查看了来自 Apple 的 SpeakHereAurioTouch 示例项目。我保证我不会在没有数小时的谷歌搜索和挣扎的情况下发帖。您可以看到"record audio and playback iOS simultaneously" 返回了许多过时且无效的示例。我知道我自己和社区真的可以从音频部分中的一些更新的文档和示例中受益。对于这样一个简单的任务,RemoteIO 似乎太先进了。再次感谢您的帮助和考虑。

【问题讨论】:

    标签: ios avfoundation core-audio avaudioplayer avaudiorecorder


    【解决方案1】:

    执行此操作的适当方法是通过 AudioUnit API,尽管这似乎是一个应该由更高级别的 API 处理的常见场景。

    我使用 AudioUnit 写了一个小的 demo app。您可以免费试用并修改它以适合您的目的。演示应用确实会录制音频并同时播放,但建议使用耳机查看效果。

    【讨论】:

      【解决方案2】:

      RemoteIO 音频单元是以低延迟播放录制内容的唯一方法。 RemoteIO 具有低延迟,因为它在单独的专用实时线程中运行音频回调,这就是它速度快的原因,也是它编码更复杂的原因。所有其他 iOS 音频 API 都建立在 RemoteIO 之上,因此会增加延迟。

      您还需要配置应用的音频会话 API,以请求具有适当音频会话类型的低延迟。大多数情况下,在大多数 iOS 设备上,前台应用程序可以请求和获取低至 5.6 毫秒的音频输入和输出延迟。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-12
        • 2012-04-09
        • 1970-01-01
        • 2017-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多