我正在播放电影:
moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:asset.filepath]];
//[[vc moviePlayer] prepareToPlay];
[self presentViewController:moviePlayer animated:YES completion:NULL];
控制器出现,但在此之后立即解散。我究竟做错了什么?谢谢!
答案 0 :(得分:2)
您必须删除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];
Becouse MPMoviePlayerViewController
在创建时自动将自己注册到NSNotificationCenter
。您必须先删除此注册,它将自动停止解雇。希望它可以帮助你
请查看Bellow Link: -
http://josebolanos.wordpress.com/2011/09/28/dismissing-mpmovieplayerviewcontroller-the-right-way/
答案 1 :(得分:1)
尝试播放音频时遇到类似问题。尝试将您的电影播放器设置为具有强大参考的属性。
答案 2 :(得分:0)
检查您的-(void)viewWillDisappear:(BOOL)animated{
方法,如果您是dismissing
moviePlayer
,那么这就是原因。
答案 3 :(得分:0)
来自文档:
“要以模态方式呈现电影播放器视图控制器,通常使用presentMoviePlayerViewControllerAnimated:
方法。此方法是UIViewController
类的类别的一部分,由Media Player框架实现。{ {1}}方法使用标准过渡动画呈现电影播放器视图控制器以呈现视频内容。要关闭模态呈现的电影播放器视图控制器,请调用presentMoviePlayerViewControllerAnimated:
方法“。
您无法使用普通的模态演示方法。必须使用dismissMoviePlayerViewControllerAnimated
类别中媒体播放器框架提供的方法。