Objective c MPMoviePlayerViewController后台处理。从后台返回前台后如何继续播放?

Objective c MPMoviePlayerViewController后台处理。从后台返回前台后如何继续播放?,objective-c,ios,mpmovieplayercontroller,Objective C,Ios,Mpmovieplayercontroller,我正在开发视频流应用程序。它是为iOS5使用ARC构建的。 要显示视图,我使用MPMoviePlayerViewController的方式如下: h 关于演示代码的几句话: 解析视频url后,我将创建用于视频播放的MPMoviePlayerViewController对象。播放开始。然后,当应用程序使用home按钮进入后台时,MPMoviePlayerViewController会自动暂停播放并从屏幕上消失(对我来说,这是一种奇怪的行为)。这就是为什么我必须在应用程序进入后台时节省播放时间,并在

我正在开发视频流应用程序。它是为iOS5使用ARC构建的。 要显示视图,我使用MPMoviePlayerViewController的方式如下:

h

关于演示代码的几句话: 解析视频url后,我将创建用于视频播放的MPMoviePlayerViewController对象。播放开始。然后,当应用程序使用home按钮进入后台时,MPMoviePlayerViewController会自动暂停播放并从屏幕上消失(对我来说,这是一种奇怪的行为)。这就是为什么我必须在应用程序进入后台时节省播放时间,并在应用程序返回前台时再次显示现有的MPMoviePlayerViewController,恢复播放时间。 当用户按下home按钮,然后返回应用程序时,它可以正常工作

但当用户锁定设备时,它不起作用。WillEnterBackground通知在 applicationWillEnterForeground被调用,因此对于锁定事件也被调用。 但在用户锁定设备的情况下,MPMoviePlayerViewController并没有像用户按下home按钮那样被正确地解除。它在屏幕上是隐藏的,但是调用代码

[self presentModalViewController:player animated:YES];
抛出异常

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present modally an active controller <EpisodesTableViewController: 0x91b3950>.'
现在它不会抛出异常,但会显示警告

wait_fences: failed to receive reply: 10004003
此外,从不调用完成块

如何正确解决背景/前景问题,继续使用模式显示的MPMoviePlayerViewController播放? 谢谢回复。

我解决了这个问题

方法-willEnterBackground应如下所示:

- (void)willEnterBackground {
    if (player) {
        playbackTime = player.moviePlayer.currentPlaybackTime;
        [self dismissModalViewControllerAnimated:NO];
    }
}
当应用程序进入后台模式时,我们必须手动关闭mpmovieplayervewcontroller。 只注意使用

[self dismissModalViewControllerAnimated:NO];
而不是

[self dismissMoviePlayerViewControllerAnimated];
这是因为mpmovieplayervewcontroller与

[self presentModalViewController:player animated:YES];

将@“WillEnterBackground”更改为UIApplicationIdentinterBackgroundNotification对我有效视图中的嵌入式视频如何?
[self dismissModalViewControllerAnimated:NO];
[self dismissMoviePlayerViewControllerAnimated];
[self presentModalViewController:player animated:YES];