MPMoviePlayerController在后台播放时不播放下一个URL

时间:2012-01-11 16:15:09

标签: ios

我有一个应用程序,它将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上看起来它可以工作(我自己做了一些测试但是它有效,但是我仍然需要与测试人员核对)。

提前致谢!

1 个答案:

答案 0 :(得分:0)

最后,iOS 4 background HTTP Live Stream的修正也适用于我。

useApplicationAudioSession的{​​{1}}属性设置为MPMoviePlayerController后,它就开始工作了。