MPMoviePlayer完成button问题

我正在使用MPMoviePlayer来显示video。 我进入全屏,当完成button被点击时,我希望它从我的视图中删除整个电影播放器​​。 目前它只能走出全屏模式。 你如何跟踪被单击的doneButton,或者我该如何解决这个问题?

您可以通过在MPMoviePlayerDidExitFullscreenNotification上添加通知处理程序来完成此操作,因为一旦用户点击完成button,就会发送该通知。

初始化程序中的某处

  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPMoviePlayerDidExitFullscreen:) name:MPMoviePlayerDidExitFullscreenNotification object:nil]; 

现在实现该处理程序:

 - (void)MPMoviePlayerDidExitFullscreen:(NSNotification *)notification { [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerDidExitFullscreenNotification object:nil]; [moviePlayerController stop]; [moviePlayerController.view removeFromSuperview]; } 

就我所知,当单击“完成”button时,不会收到通知。 但是,您可以在完成button被点击后当电影播放器​​退出全屏时得到通知。 为此,您使用MPMoviePlayerDidExitFullscreenNotification

为了观察和处理这个通知,你需要将下面的代码粘贴到包含IBAction的类文件中(放在viewDidLoad方法中):

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(exitedFullScreen) name:@"MPMoviePlayerDidExitFullscreenNotification" object:nil]; 

现在,您需要在同一个类中创buildexitedFullScreen方法:

 -(void) exitedFullScreen { //Do whatever you want here } 

最后,在你的viewDidUnload方法中,粘贴下面一行:

 [[NSNotificationCenter defaultCenter] removeObserver:self name:@"MPMoviePlayerDidExitFullscreenNotification" object:nil]; 

解释发生了什么事情:

viewDidLoad中的“addObserver”代码行确保负责处理moviePlayer的viewController正在监听MPMoviePlayerDidExitFullScreen通知。

这条线使得当通知到来时,exitedFullScreen方法被触发,你可以把你想要运行的代码放在完成button被点击的时候。

在viewDidUnload中,viewController将被卸载,所以你想停止监听通知,因此removeObserver部分。