Objective c MPMoviePlayerViewController后台处理。从后台返回前台后如何继续播放?
我正在开发视频流应用程序。它是为iOS5使用ARC构建的。 要显示视图,我使用MPMoviePlayerViewController的方式如下: h 关于演示代码的几句话: 解析视频url后,我将创建用于视频播放的MPMoviePlayerViewController对象。播放开始。然后,当应用程序使用home按钮进入后台时,MPMoviePlayerViewController会自动暂停播放并从屏幕上消失(对我来说,这是一种奇怪的行为)。这就是为什么我必须在应用程序进入后台时节省播放时间,并在应用程序返回前台时再次显示现有的MPMoviePlayerViewController,恢复播放时间。 当用户按下home按钮,然后返回应用程序时,它可以正常工作 但当用户锁定设备时,它不起作用。WillEnterBackground通知在 applicationWillEnterForeground被调用,因此对于锁定事件也被调用。 但在用户锁定设备的情况下,MPMoviePlayerViewController并没有像用户按下home按钮那样被正确地解除。它在屏幕上是隐藏的,但是调用代码Objective c MPMoviePlayerViewController后台处理。从后台返回前台后如何继续播放?,objective-c,ios,mpmovieplayercontroller,Objective C,Ios,Mpmovieplayercontroller,我正在开发视频流应用程序。它是为iOS5使用ARC构建的。 要显示视图,我使用MPMoviePlayerViewController的方式如下: h 关于演示代码的几句话: 解析视频url后,我将创建用于视频播放的MPMoviePlayerViewController对象。播放开始。然后,当应用程序使用home按钮进入后台时,MPMoviePlayerViewController会自动暂停播放并从屏幕上消失(对我来说,这是一种奇怪的行为)。这就是为什么我必须在应用程序进入后台时节省播放时间,并在
[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];