在后台应用程序/双击主页按钮时音频崩溃

时间:2012-06-26 18:38:09

标签: ios ios5 avfoundation avplayer

我有一个使用AVPlayer播放音频的应用。我已将音频类别设置为AVAudioSessionCategoryPlayback,并在info.plist中将所需的UIBackgroundModes设置添加到audio,从而启用了背景音频。

在iOS 5上,当您按下主页按钮时,应用程序进入后台并且音频仍会播放一段时间,但是当我双击主页按钮时,整个设备会锁定大约10秒左右,最终音频停止。

然而,应用程序仍在运行,因为我可以启动它并看到应用程序的状态就像它一样。不幸的是,音频系统似乎很难被接受,因为任何后续操作通常都会导致崩溃。

当音频停止时,我会在设备的控制台中看到以下内容:

Jun 26 12:39:28 unknown SpringBoard[15] <Warning>: Unable to deliver SBApplicationNotificationStateChanged notification to port com.apple.springboard.appstatechanged: (ipc/send) timed out
Jun 26 12:39:53 unknown mediaserverd[25406] <Error>: <<<< FIGSERVER >>>> FigPlayerRemoteServer_KillAndForceCrashReport: RPCTimeout message received to terminate [25406] with reason 'fig rpc timeout -- FigSharedRemote_VolumeCategoryForAudioCategory'
Jun 26 12:39:53 unknown ReportCrash[25468] <Notice>: Saved crashreport to /Library/Logs/CrashReporter/mediaserverd-2012-06-26-123953.plist using uid: 0 gid: 0, synthetic_euid: 0 egid: 0
Jun 26 12:39:53 unknown mediaserverd[25406] <Error>: <<<< FIGSERVER >>>> FigPlayerRemoteServer_KillAndForceCrashReport: RPCTimeout message received; stackshot generated
Jun 26 12:39:53 unknown mediaserverd[25406] <Error>: <<<< FIGSERVER >>>> FigPlayerRemoteServer_KillAndForceCrashReport: TERMINATING our process [25406]
Jun 26 12:39:53 unknown com.apple.launchd[1] <Notice>: (com.apple.mediaserverd) Exited: Killed: 9
Jun 26 12:39:54 unknown com.apple.mediaserverd[25469] <Notice>: 2012-06-26 12:39:54.083477 PM [AirTunes] HAL plugin started
Jun 26 12:39:54 unknown kernel[0] <Debug>: launchd[25469] Builtin profile: mediaserverd (sandbox)
Jun 26 12:39:54 unknown mediaserverd[25469] <Error>: 12:39:54.317795 com.apple.AVConference: /SourceCache/GameKitServices/GameKitServices-344.21/AVConference.subproj/Sources/AVConferenceServer.m:1867: AVConferenceServerStart

这似乎只影响iOS 5。

2 个答案:

答案 0 :(得分:2)

通过共享多个AVPlayer实例,我的代码中出现了问题,导致音频系统有时崩溃。删除第二个播放器修复此错误。 /叹息

答案 1 :(得分:2)

我有同样的问题,尽管我只需要使用2个AVPlayers因为我不得不做一个交叉淡入淡出。 在监测仪器中的分配后,结果发现AVPlayers没有正确发布(它们仍然是“活着的”)。 我发布不当。在我修复它并且它们被正确释放后,问题就消失了。