我的应用程序使用AVAudioPlayer播放背景音频,并从iOS接收远程控制事件。音频播放时一切正常,但如果音频暂停并且我的应用程序移动到后台,则会发生奇怪的事情。如果我使用蓝牙设备在10分钟后恢复/取消暂停音频,iOS将使用以下消息终止我的应用程序:
<MyApp>[633] has active assertions beyond permitted time:
{(
<SBProcessAssertion: 0x25f520> identifier: com.apple.mediaremote.sendremotecommand process: <MyApp>[633] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:58
)}
这有两个非常奇怪的事情。
iOS不会在10分钟后关闭我的应用程序。只有在通过蓝牙接收远程控制命令后才会这样做。
如果我在耳机上使用iOS的遥控器按钮或遥控器,我的应用程序将继续播放音频而不会有任何问题。
我无法弄清楚为什么蓝牙遥控器消息会导致iOS终止我的应用程序。我已经能够确认Pandora应用程序似乎没有类似的问题。
有没有人对此有所了解?
更新:进一步测试可以更清楚地了解错误。在音频暂停10分钟或更长时间并且应用程序遇到内存不足警告后,尝试恢复背景音频时,似乎会发生应用程序强制iOS崩溃。
重现错误需要执行以下步骤:
注意:当从外部设备(如蓝牙设备,扬声器底座或汽车适配器)启动最终远程控制事件时,iOS似乎只会强制崩溃应用程序。使用iOS的内置“遥控”界面或耳机上的遥控器似乎不会导致崩溃。
就像乔治在评论中提到的那样,我已经能够用自己的应用程序,潘多拉和至少一个其他音频播放应用程序重现这一点。我已经向Apple提交了一份错误报告。