我有一个应用程序,它将URL列表下载到mp3文件,然后使用MPMoviePlayerController播放它们。
我在app delegate中有以下内容:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
当我将应用程序放在后台时,它会继续播放当前曲目。然后我在MPMoviePlayerPlaybackDidFinishNotification发生时得到通知,然后,在MPMovieFinishReasonPlaybackEnded(因此成功)的情况下,我试图播放下一个URL。但它不起作用。没有任何事情发生。
但是,如果此时我将应用程序带回前台,则播放将正确恢复。就像MPMoviePlayerController在后台无法启动新网址的播放一样,但是当它回到前台时它会正确恢复它。
这是播放(在回调中)的代码:
self.moviePlayer.contentURL = aUrl;
[self.moviePlayer play];
为什么会发生这种情况?
顺便说一句,它发生在iOS 4.3.3上(我的一些测试人员告诉我它也发生在4.2.8上),但是在iOS 5上看起来它可以工作(我自己做了一些测试但是它有效,但是我仍然需要与测试人员核对)。提前致谢!
答案 0 :(得分:0)
最后,iOS 4 background HTTP Live Stream的修正也适用于我。
将useApplicationAudioSession
的{{1}}属性设置为MPMoviePlayerController
后,它就开始工作了。