MPMoviePlayerViewController立即解散

时间:2013-05-27 08:19:31

标签: iphone ios objective-c cocoa-touch

我正在播放电影:

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

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

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

4 个答案:

答案 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类别中媒体播放器框架提供的方法。