AVAudioSessionCategoryAudioProcessing:是否缺少中断通知保证?
如果我将AVAudioSession
的类别设置为AVAudioSessionCategoryAudioProcessing
,我不会收到任何中断通知,无论我在做什么。 (锁定设备,在另一个应用程序中播放音频等)我明白为什么 - AVAudioSessionCategoryAudioProcessing
用于离线渲染而没有输入或输出 - 但是可以依赖此行为吗?它记录在任何地方吗?处理会话是否会收到中断通知?AVAudioSessionCategoryAudioProcessing:是否缺少中断通知保证?
就像你说的,AVAudioSessionCategoryAudioProcessing
不会造成中断排序是有道理的,但另一方面,离线音频渲染/解码/编码/转码可以使用硬件编解码器(这是件好事),并且音频中断曾经表明硬件不再可用,并且由于您的编解码器状态已被丢弃,希望您喜欢猜测解压缩音频的哪些部分包含秃斑。
因此,在一个健全的世界,无论是AVAudioSessionCategoryAudioProcessing
都会导致您的所有编解码器都是软件不需要知道的中断变种,或者在引擎盖下发生了一些聪明的事情,以确保您使用硬件编解码器如果硬件被拿走,不会造成任何不连续性。
在回答你的问题时,我找不到任何关于行为的文档。您可以尝试听取中断,然后路由更改,然后尝试播放,启动音乐应用程序,插入声卡,取出耳机,播放HDMI,接听电话,报警,播放电影等以查看是否你会受到任何干扰。
但是,行为能够依靠吗?我会说不,因为它看起来像AVAudioSessionCategoryAudioProcessing
has been deprecated in iOS10。我不知道为什么,也不能在asciiwwdc上找到任何提及。