ios - AVAudioSessionCategoryAudioProcessing:是否可以保证没有中断通知?

标签 ios avfoundation core-audio avaudiosession

如果将AVAudioSession的类别设置为AVAudioSessionCategoryAudioProcessing,则无论我在做什么,我都不会收到任何中断通知。 (锁定设备,在其他应用程序中播放音频等),我知道这是为什么-AVAudioSessionCategoryAudioProcessing用于没有输入或输出的脱机渲染,但是可以依靠此行为吗?它记录在任何地方吗?在任何情况下处理 session 都会收到中断通知?

最佳答案

就像您说的那样,AVAudioSessionCategoryAudioProcessing不会引起中断,但从另一方面讲,脱机音频渲染/解码/编码/转码可以使用硬件编解码器(这是一件好事),并且音频中断曾经表明硬件不再存在可用,并且已破坏了编解码器状态,希望您喜欢猜测解压缩音频的哪些部分包含秃点。

因此,在一个理智的世界中,要么AVAudioSessionCategoryAudioProcessing导致您所有的编解码器都属于不需要中断的软件品种,要么在机巧下发生某些事情以确保您对硬件编解码器的使用不会造成任何干扰。硬件应从您手中取走。

在回答您的问题时,我找不到有关此行为的任何文档。您可以尝试监听中断,路由更改,然后尝试播放,播放音乐应用程序,插入音频卡,拔出耳机,播放HDMI,接听电话,警报,播放电影等等,以查看是否您会受到任何干扰。

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

关于ios - AVAudioSessionCategoryAudioProcessing:是否可以保证没有中断通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38237489/

相关文章:

ios - 有没有办法让 Controller 只在 iOS 中呈现(也许在 macOS 中也是如此)?

objective-c - 通过 AVFoundation 在后台仅播放音轨

ios - 获取错误 : Missing com. apple.developer.healthkit 权利

ios - 在无线网络中使用 wireshark 嗅探流量

ios - 在 UISplitView 中跨多个详细 View 维护弹出窗口

iphone - 播放音频和视频内容的正确选择

swift3 - 在 Swift 3 中将类型为 'UnsafeMutableRawPointer' 的变量转换为 UnsafeMutablePointer<>

objective-c - 检查是否播放音乐

ios - AudioKit:如何点击同一输入进行多次使用(AudioKitUI + 语音识别)

cocoa - 使用沙盒时核心音频似乎不起作用