我有一个应用程序,下载mp3文件的网址列表,然后使用MPMoviePlayerController播放它们。
我在应用程序代理中有以下内容:
[[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上它似乎可以工作(我自己做了一些测试,它工作了,但是我仍然要和测试人员核实一下)。
提前感谢!
发布于 2012-01-12 18:02:38
最后,来自iOS 4 background HTTP Live Stream的修复也适用于我。
一旦我将MPMoviePlayerController的属性useApplicationAudioSession设置为NO,它就开始工作了。
https://stackoverflow.com/questions/8822660
复制相似问题