MPMoviePlayerViewController 覆盖控件在重用后不响应触摸

Posted

技术标签:

【中文标题】MPMoviePlayerViewController 覆盖控件在重用后不响应触摸【英文标题】:MPMoviePlayerViewController overlay controls NOT responding to touches after reuse 【发布时间】:2012-08-22 20:45:39 【问题描述】:

这快把我逼疯了。

很简单,我有一个 MPMoviePlayerViewController 并且想要全屏显示电影。 在 ios 5.0+ 上使用 ARC 我想让这个播放器应用程序范围内可重用。

电影第一次播放就覆盖了整个屏幕,播放效果惊人。覆盖控件正确显示并且对触摸的反应很好。我使用

[theMovie.moviePlayer setContentURL:movieURL];
[theMovie.moviePlayer prepareToPlay];

[self presentViewController:theMovie animated:YES completion:^
    [theMovie.moviePlayer play];
];

播放完毕后,我拦截通知并运行它

[self dismissViewControllerAnimated:YES completion:^
            [theMovie.moviePlayer stop];
            [theMovie.moviePlayer setContentURL:nil];
];

现在,问题是从第二次开始播放电影时,它会显示控件播放器不再响应电影区域中的触摸。我可以使用控件、返回、播放/暂停、搜索、完成等……但不能在非控件区域触摸来切换控件的可见性。如果我让它正常播放它会自动隐藏,但在触摸非控制区域后不会再次出现。

我不知道这里发生了什么。如果你能帮助我,我会很高兴。

谢谢, g.

【问题讨论】:

【参考方案1】:

将 MPMoviePlayerViewController 的声明移动到 .h 文件中,在 m 文件中 viewDidLoad 或者 viewWillAppear 只需分配它并初始化 :)

【讨论】:

以上是关于MPMoviePlayerViewController 覆盖控件在重用后不响应触摸的主要内容,如果未能解决你的问题,请参考以下文章