MPMoviePlayer已完成按钮发出

问题描述

我正在使用MPMoviePlayer来显示视频。我进入全屏模式,当单击“完成”按钮时,我希望它从我的视图中删除整个电影播放器​​。目前,它仅退出全屏模式。您如何跟踪被单击的doneButton或如何解决此问题?     

解决方法

您可以通过在“ 0”上添加一个通知处理程序来完成此操作,因为一旦用户点击“完成”按钮,该通知就会被发送。 初始化程序中的某处
    [[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];
}
    ,据我所知,单击“完成”按钮时不会通知您。但是,当单击“完成”按钮后电影播放器​​退出全屏显示时,您会收到通知。为此,请使用MPMoviePlayerDidExitFullscreenNotification 要观察此通知并采取措施,您需要在包含IBAction的类文件中粘贴以下代码(将其放入
viewDidLoad
方法中):
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(exitedFullScreen) name:@\"MPMoviePlayerDidExitFullscreenNotification\" object:nil];
现在,您需要在同一类中创建
exitedFullScreen
方法:
-(void) exitedFullScreen
{
     //Do whatever you want here
}
最后,在
viewDidUnload
方法中,粘贴以下行:
[[NSNotificationCenter defaultCenter] removeObserver:self name:@\"MPMoviePlayerDidExitFullscreenNotification\" object:nil];
要说明发生了什么: viewDidLoad中的\“ addObserver \”行代码可确保负责处理moviePlayer的viewController正在侦听MPMoviePlayerDidExitFullScreen通知。 该行使之能够在通知到时触发exitedFullScreen方法,您可以在其中将要运行的代码放入单击“完成”按钮的位置。 在viewDidUnload中,viewController将被卸载,因此您要停止侦听通知,因此要停止监听removeObserver部分。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...