远程控制事件导致iOS终止后台应用程序

时间:2010-09-17 20:57:26

标签: iphone ios ios4 bluetooth multitasking

我的应用程序使用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
)}

这有两个非常奇怪的事情。

  1. iOS不会在10分钟后关闭我的应用程序。只有在通过蓝牙接收远程控制命令后才会这样做。

  2. 如果我在耳机上使用iOS的遥控器按钮或遥控器,我的应用程序将继续播放音频而不会有任何问题。

  3. 我无法弄清楚为什么蓝牙遥控器消息会导致iOS终止我的应用程序。我已经能够确认Pandora应用程序似乎没有类似的问题。

    有没有人对此有所了解?

    更新:进一步测试可以更清楚地了解错误。在音频暂停10分钟或更长时间并且应用程序遇到内存不足警告后,尝试恢复背景音频时,似乎会发生应用程序强制iOS崩溃。

    重现错误需要执行以下步骤:

    1. 暂停应用程序的音频然后将其发送到后台(点击主页按钮或切换到另一个应用程序)或暂停应用程序在后台的音频
    2. 导致应用程序遇到内存不足警告(模拟或真实)
    3. 使用从蓝牙设备或扬声器底座等设备触发的遥控事件尝试播放音频10分钟后
    4. 注意:当从外部设备(如蓝牙设备,扬声器底座或汽车适配器)启动最终远程控制事件时,iOS似乎只会强制崩溃应用程序。使用iOS的内置“遥控”界面或耳机上的遥控器似乎不会导致崩溃。

      就像乔治在评论中提到的那样,我已经能够用自己的应用程序,潘多拉和至少一个其他音频播放应用程序重现这一点。我已经向Apple提交了一份错误报告。

0 个答案:

没有答案