我正在创建我的 MPMoviePlayerViewController,如下所示:
MPMoviePlayerViewController *playerView = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];
[self presentMoviePlayerViewControllerAnimated:playerView];
它工作正常,直到我按下主页按钮:这样,在我重新打开应用程序后,播放器 View Controller 就消失了,我看到了我最初调用它的 View Controller 。如果我双击主页按钮,打开多任务面板,播放器不会消失,而只是暂停(应该如此)。
那么我该如何防止这种情况发生(关闭并重新打开应用程序应该会让我重新播放视频)?
更新: 我注意到,如果我在“正在加载...”文本出现时关闭并重新打开应用程序,播放器不会消失。在这种情况下,返回应用程序可以让播放器继续加载视频以最终开始播放。然而,之后关闭应用程序(当视频正在播放或暂停时)不可避免地会杀死播放器 View Controller ......
最佳答案
尝试这样:
MPMoviePlayerViewController *playerView = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];
playerView.view.frame = self.view.frame;
[self presentMoviePlayerViewControllerAnimated:playerView];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPMoviePlayerDidExitFullscreen:) name:MPMoviePlayerDidExitFullscreenNotification object:nil];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(playbackStateChanged:)
name:MPMoviePlayerPlaybackStateDidChangeNotification
object:moviePlayerController];
[playerView.moviePlayer play];
之后添加这两个方法:
- (void) movieFinishedCallback:(NSNotification*) aNotification
{
moviePlayerController = [aNotification object];
[moviePlayerController.moviePlayer stop];
[[NSNotificationCenter defaultCenter]
removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
[moviePlayerController autorelease];
NSLog(@"stopped?");
}
- (void)MPMoviePlayerDidExitFullscreen:(NSNotification *)notification
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerDidExitFullscreenNotification
object:nil];
[moviePlayerController.moviePlayer stop];
MPMoviePlayerController *player = [notification object];
[[NSNotificationCenter defaultCenter]
removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
[moviePlayerController dismissMoviePlayerViewControllerAnimated];
}
关于iphone - 按下主页按钮时 MPMoviez PlayerViewController 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12380781/