Ios6 在fullsceen模式下输入时,为什么MPMoviePlayerController调用MPMoviePlayerPlaybackDidFinishNotification
我想在全屏模式下显示一个MPMoviePlayerWirewController,但是当按下movieplayercontroller视图的全屏按钮时,首先调用MPMoviePlayerWireleterFullScreenNotification,如expacted所示,但是,MPMoviePlayerPlaybackDidFinishNotification也在发送。作为一个原因,它说MPMovieFinishRasonlayBackend,我不知道我做错了什么。(此外,我使用iOS 6.0和XCode 4.5.1) 我的解释是,只有mpmovieplayerwillenterfullscreen通知被调用 下面是对代码的简短解释: MovieplayerViewController的视图显示在“我的内容”视图中的一个子视图中。当点击全屏按钮时,它首先显示为全屏,但同时调用退出按钮并停止播放(没有崩溃,没有其他) 就这样 当按下resize(或fullscreen)按钮时,也会调用MoviePlayerIDFinishNotification:方法Ios6 在fullsceen模式下输入时,为什么MPMoviePlayerController调用MPMoviePlayerPlaybackDidFinishNotification,ios6,mpmovieplayercontroller,xcode4.5,Ios6,Mpmovieplayercontroller,Xcode4.5,我想在全屏模式下显示一个MPMoviePlayerWirewController,但是当按下movieplayercontroller视图的全屏按钮时,首先调用MPMoviePlayerWireleterFullScreenNotification,如expacted所示,但是,MPMoviePlayerPlaybackDidFinishNotification也在发送。作为一个原因,它说MPMovieFinishRasonlayBackend,我不知道我做错了什么。(此外,我使用iOS 6.0
- (void)moviePlayerDidFinishNotification:(NSNotification*) aNotification {
int reason = [[[aNotification userInfo] valueForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] intValue];
if (reason == MPMovieFinishReasonPlaybackEnded) {
//movie finished playin
//in debug mode, it stops right at the NSLog
NSLog(@"");
}
else if (reason == MPMovieFinishReasonUserExited) {
//user hit the done button
}
else if (reason == MPMovieFinishReasonPlaybackError) {
//error
}
.. }
自从iOS 6.0以来,我是否做错了什么,或者可能有什么变化?好的,似乎是MPMoviePlayerViewController中存在一些问题。帮助我们的是仅使用MPMoviePlayerController。为了将来参考,您的播放器显示在小窗口中的原因是因为您设置了:
[playerViewController.moviePlayer setControlStyle:MPMovieControlStyleEmbedded];
[playerViewController.moviePlayer setScalingMode:MPMovieScalingModeFill];
CGRect rect = videoView.frame;
rect.origin = CGPointZero;
[playerViewController.view setFrame:rect];
[playerViewController.moviePlayer prepareToPlay];
//movie this is my contents subview, where i add the viewcontroller's view as a subbview
[self.videoView addSubview:playerViewController.view];
[self.videoView setHidden:NO];
当您使用MPMoviePlayerViewController时,它会创建自己的视图控制器。这些调用是不必要的,只会产生奇怪的行为。这就是为什么MPMoviePlayerController工作正常的原因,因为它被设计为在另一个视图控制器中工作。我遇到了与您描述的相同的问题。我使用的是ios 6.1和xcode 4.6。我认为这是一个MPMoviePlayerServiceController错误。
[playerViewController.moviePlayer setControlStyle:MPMovieControlStyleEmbedded];
[playerViewController.moviePlayer setScalingMode:MPMovieScalingModeFill];
CGRect rect = videoView.frame;
rect.origin = CGPointZero;
[playerViewController.view setFrame:rect];
[playerViewController.moviePlayer prepareToPlay];
//movie this is my contents subview, where i add the viewcontroller's view as a subbview
[self.videoView addSubview:playerViewController.view];
[self.videoView setHidden:NO];