【问题标题】:Input dropouts on plugging in headphones in iOS在 iOS 中插入耳机时的输入丢失
【发布时间】:2015-04-29 03:46:27
【问题描述】:

在 iOS 8 设备上插入耳机后,我遇到了一些长时间的输入音频丢失。也就是说,AudioUnitRender() 在 I/O 音频单元上照常成功,但会出现几秒钟的间歇性数字静音。这是一种可预测的模式,即三个一秒的静默期,一个较短的静默期,然后再次正常输入音频。

我不确定从这里去哪里,因为没有显示错误。有没有人遇到过这样的问题?

【问题讨论】:

  • 这可能只是硬件切换连接或配置所需的时间。如果硬件尚未准备好,iOS RemoteIO 音频单元可能没有数据要发送给您,因此用零填充缓冲区。
  • 您知道是否有办法确认正在发生的事情吗?不幸的是,在那种情况下它会进进出出。
  • 您可以尝试使用具有 Apple 开发人员支持的 TSI。但他们几乎没有发布有关 iOS 音频硬件或驱动程序内部的公开信息。

标签: ios audio core-audio audiounit headphones


【解决方案1】:

在插入或拔出耳机时,此动作构成Audio Route Change,必须响应并处理以防止掉线。作为参考,“工厂”苹果应用程序将在拔出时暂停,但在插入时继续播放。

为了调试您的问题,我建议:

  • 验证您是 listening to route changes (AVAudioSessionRouteChangeNotification)
  • 实现在路由更改时调用的方法。这将允许您确认路由更改问题是导致丢失的原因,或者至少允许您在路由更改处理程序中暂停执行以检查音频缓冲区列表和 I/O 单元的状态。

【讨论】:

    猜你喜欢
    • 2016-05-20
    • 2010-10-26
    • 2017-04-24
    • 2013-04-17
    • 1970-01-01
    • 2014-09-06
    • 2012-05-27
    • 2012-05-12
    • 2013-05-01
    相关资源
    最近更新 更多