AVAudioEngine 离线渲染:仅在连接耳机时静音输出

Posted

技术标签:

【中文标题】AVAudioEngine 离线渲染:仅在连接耳机时静音输出【英文标题】:AVAudioEngine offline render: Silent output only when headphones connected 【发布时间】:2015-12-07 22:24:54 【问题描述】:

我一直在开发一个应用程序,它通过AVAudioEngine 制作音频管道,然后呈现到文件。

我一直在使用this code example 的方法,适合我自己的需要。问题是如果耳机连接到设备,输出音频文件是无声的。您可以通过连接耳机运行该项目来观察这一点。

我唯一的想法是,也许 iPhone 通常有一个单声道 outputNode,但耳机给它一个立体声格式。我发现这些东西很难调试,所以任何指针都值得赞赏。

我从here 获得了该示例代码,这可能会提供有关该问题的更多上下文。

谢谢

【问题讨论】:

该用户看到了类似的行为,即连接耳机时音频无法正常工作(尽管在他们的情况下它崩溃了)。我已经尝试将格式定义更改为所有inputFormatForBusoutputFormatForBus 可能性,但仍然没有运气***.com/questions/28331461/… 【参考方案1】:

看起来会话已设置为播放。尝试将其设置为 AVAudiosessionCategoryAudioProcessing。

【讨论】:

好的,这听起来很有希望,我今晚会试试,看看我能得到什么。谢谢 恐怕一旦您尝试访问引擎的输入或输出节点,使用AVAudioSessionCategoryAudioProcessing 就会出错。我需要一个输出节点才能访问其音频单元以提取数据。 感谢您查看。文档说“在不播放或录制音频时使用音频硬件编解码器或信号处理器的类别。例如,在执行离线音频格式转换时使用此类别。”我认为这适合你的情况。让我们知道你最终做了什么。 我认为问题在于滥用了 AVAudioEngine,它可能没有被设计成以这种方式工作 那么就没有办法用avaudioengine离线渲染了吗?

以上是关于AVAudioEngine 离线渲染:仅在连接耳机时静音输出的主要内容,如果未能解决你的问题,请参考以下文章

通话过程中拔下耳机时 AVAudioEngine 崩溃

AVAudioEngine 播放多声道音频

如何将 AVAudioEngine 连接到 Lightning Port 音频输入?

AVPlayerLayer 不在 iOS 11 中渲染离线 HLS 视频

连接节点上的 AVAudioEngine 崩溃

PDF文件阅读问题仅在离线模式下快速