繁体   English   中英

MPMoviePlayerViewController立即关闭

[英]MPMoviePlayerViewController dismisses immediately

我正在通过以下方式播放电影:

moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:asset.filepath]];

//[[vc moviePlayer] prepareToPlay];
[self presentViewController:moviePlayer animated:YES completion:NULL];

控制器显示出来,但之后立即解散。 我究竟做错了什么? 谢谢!

您必须像这样删除MPMoviePlayerPlaybackDidFinishNotification NSNotificationCenter

moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:asset.filepath]];

//[[vc moviePlayer] prepareToPlay];
[[NSNotificationCenter defaultCenter] removeObserver:moviePlayer  name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer.moviePlayer];
[self presentViewController:moviePlayer animated:YES completion:NULL];

因为MPMoviePlayerViewController在创建后会自动将其注册到NSNotificationCenter 您必须先删除此注册,它会停止自动退出。 希望它对您有帮助

请检查波纹管链接:-

http://josebolanos.wordpress.com/2011/09/28/dismissing-mpmovieplayerviewcontroller-the-right-way/

尝试播放音频时遇到了类似的问题。 尝试将电影播放器​​设置为具有强参考性的属性。

检查您的-(void)viewWillDisappear:(BOOL)animated{方法,如果您要dismissing moviePlayer那么这就是原因。

从文档:

“要以模态方式显示电影播放器​​视图控制器,通常使用presentMoviePlayerViewControllerAnimated:方法。此方法是UIViewController类的类别的一部分,由Media Player框架实现presentMoviePlayerViewControllerAnimated:方法使用以下presentMoviePlayerViewControllerAnimated:呈现电影播放器​​视图控制器:用于呈现视频内容的标准过渡动画。要关闭以模态呈现的电影播放器​​视图控制器,请调用dismissMoviePlayerViewControllerAnimated方法。

您不能使用常规的模态表示方法。 必须使用UIViewContoller类别中的媒体播放器框架提供的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM