AVAudioSessionCategoryAudioProcessing:是否保证缺少中断通知?

时间:2016-07-07 04:20:09

标签: ios avfoundation core-audio avaudiosession

如果我将AVAudioSession的类别设置为AVAudioSessionCategoryAudioProcessing,则无论我做了什么,我都不会收到任何中断通知。 (锁定设备,在另一个应用程序中播放音频等)我理解为什么这是 - AVAudioSessionCategoryAudioProcessing用于没有输入或输出的离线渲染 - 但是可以依赖这种行为吗?是否记录在任何地方?是否存在处理会话将收到中断通知的情况?

1 个答案:

答案 0 :(得分:2)

就像你说的那样,AVAudioSessionCategoryAudioProcessing不会导致中断有意义,但另一方面,离线音频渲染/解码/编码/转码可以使用硬件编解码器(这是一件好事),以及音频中断一旦表明硬件不再可用,并且你的编解码器状态已被删除,希望你喜欢猜测你的解压缩音频的哪些部分包含光点。

因此,在一个理智的世界中,AVAudioSessionCategoryAudioProcessing要么使您的所有编解码器都成为软件中不需要知道的中断变化,要么会发生一些聪明的事情以确保您的使用如果硬件被带走,硬件编解码器不会导致任何不连续性。

在回答您的问题时,我无法找到有关该行为的任何文档。您可以尝试收听中断,路由更改然后尝试播放,启动音乐应用程序,插入声卡,翻录耳机,播放hdmi,接听电话,闹钟,播放电影等等,看看是否你得到任何打扰。

但这种行为可以依赖吗?我会说不,因为它看起来像AVAudioSessionCategoryAudioProcessing has been deprecated in iOS10。我不明白为什么,也无法在asciiwwdc上找到任何引用。