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 获得了该示例代码,这可能会提供有关该问题的更多上下文。
谢谢
【问题讨论】:
该用户看到了类似的行为,即连接耳机时音频无法正常工作(尽管在他们的情况下它崩溃了)。我已经尝试将格式定义更改为所有inputFormatForBus
和outputFormatForBus
可能性,但仍然没有运气***.com/questions/28331461/…
【参考方案1】:
看起来会话已设置为播放。尝试将其设置为 AVAudiosessionCategoryAudioProcessing。
【讨论】:
好的,这听起来很有希望,我今晚会试试,看看我能得到什么。谢谢 恐怕一旦您尝试访问引擎的输入或输出节点,使用AVAudioSessionCategoryAudioProcessing
就会出错。我需要一个输出节点才能访问其音频单元以提取数据。
感谢您查看。文档说“在不播放或录制音频时使用音频硬件编解码器或信号处理器的类别。例如,在执行离线音频格式转换时使用此类别。”我认为这适合你的情况。让我们知道你最终做了什么。
我认为问题在于滥用了 AVAudioEngine,它可能没有被设计成以这种方式工作
那么就没有办法用avaudioengine离线渲染了吗?以上是关于AVAudioEngine 离线渲染:仅在连接耳机时静音输出的主要内容,如果未能解决你的问题,请参考以下文章
如何将 AVAudioEngine 连接到 Lightning Port 音频输入?