我有一个使用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。
答案 0 :(得分:2)
通过共享多个AVPlayer
实例,我的代码中出现了问题,导致音频系统有时崩溃。删除第二个播放器修复此错误。 /叹息
答案 1 :(得分:2)
我有同样的问题,尽管我只需要使用2个AVPlayers因为我不得不做一个交叉淡入淡出。 在监测仪器中的分配后,结果发现AVPlayers没有正确发布(它们仍然是“活着的”)。 我发布不当。在我修复它并且它们被正确释放后,问题就消失了。