如果将AVAudioSession
的类别设置为AVAudioSessionCategoryAudioProcessing
,则无论我在做什么,我都不会收到任何中断通知。 (锁定设备,在其他应用程序中播放音频等),我知道这是为什么-AVAudioSessionCategoryAudioProcessing
用于没有输入或输出的脱机渲染,但是可以依靠此行为吗?它记录在任何地方吗?在任何情况下处理 session 都会收到中断通知?
最佳答案
就像您说的那样,AVAudioSessionCategoryAudioProcessing
不会引起中断,但从另一方面讲,脱机音频渲染/解码/编码/转码可以使用硬件编解码器(这是一件好事),并且音频中断曾经表明硬件不再存在可用,并且已破坏了编解码器状态,希望您喜欢猜测解压缩音频的哪些部分包含秃点。
因此,在一个理智的世界中,要么AVAudioSessionCategoryAudioProcessing
导致您所有的编解码器都属于不需要中断的软件品种,要么在机巧下发生某些事情以确保您对硬件编解码器的使用不会造成任何干扰。硬件应从您手中取走。
在回答您的问题时,我找不到有关此行为的任何文档。您可以尝试监听中断,路由更改,然后尝试播放,播放音乐应用程序,插入音频卡,拔出耳机,播放HDMI,接听电话,警报,播放电影等等,以查看是否您会受到任何干扰。
但是可以依靠这种行为吗?我会说不,因为它看起来像 AVAudioSessionCategoryAudioProcessing
has been deprecated in iOS10。我不知道为什么,在asciiwwdc上也找不到任何引用。
关于ios - AVAudioSessionCategoryAudioProcessing:是否可以保证没有中断通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38237489/