在 MPMoviePlayerController 中进入全屏调用 viewWillDisappear 和 viewDidDisappear
Posted
技术标签:
【中文标题】在 MPMoviePlayerController 中进入全屏调用 viewWillDisappear 和 viewDidDisappear【英文标题】:Entering full screen in MPMoviePlayerController calls viewWillDisappear and viewDidDisappear 【发布时间】:2012-09-26 15:07:49 【问题描述】:为了在我的应用中播放视频,我设置了MPMoviePlayerController
并将其添加到子视图中。用户可以使用捏合手势切换到全屏模式。
在这个viewController
(包含电影播放器视图)中,我将viewWillDisappear
设置为nil。
但是,在 ios 6 中,当激活全屏模式时,包含电影播放器视图的视图控制器中的 MPMoviePlayerController
调用方法 viewWillDisappear
和 viewDidDisappear
。
在 iOS5 中,这些方法没有被调用。
【问题讨论】:
看看这个解决方案,看看它是否适用于您的问题。 ***.com/a/15440274/1437106 【参考方案1】:我也遇到过这个问题,这让我很头疼。在修复错误之前,我的临时解决方案是检查玩家在viewWillDisappear:
和/或viewDidDisappear:
中的fullscreen
布尔值。如果它返回YES
,则电影正在进入全屏模式,您应该避免做任何可能打断它的事情。
【讨论】:
viewWillDisappear 方法也被所有超级视图调用。如果您有一个主控制器生成另一个包含 MPMoviePlayerController 的控制器,则当 viewWillDisappear 被调用时,它会一直向上运行。是否也有中断链的解决方法? 我想您可以根据fullscreen
的值是真还是假来尝试跳过对[super viewWillDisappear:]
的调用。但根据您的代码,这可能会导致比修复更多的问题。【参考方案2】:
对于大家已经注意到并对此有疑问,我在社区 Open Radar 中找到了这份报告:http://openradar.appspot.com/12327997
【讨论】:
【参考方案3】:我不确定这是一个问题,但如果有人对本文所述的问题有疑问,即有人使用 viewController(包含电影播放器视图),我找到了解决方案:
我将视图控制器与电影播放器控制器一起使用,然后将此视图控制器呈现为子视图。我刚刚摆脱它并直接使用 MoviePlayer.view 作为子视图,它工作得很好。
iOS 5 不是问题,但现在是。修复它并享受吧!
【讨论】:
以上是关于在 MPMoviePlayerController 中进入全屏调用 viewWillDisappear 和 viewDidDisappear的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MPMoviePlayerController 上处理多个 SRT 文件
在 MPMoviePlayerController 上执行捏合手势时屏幕黑屏
在 UITableViewCell 中嵌入 MPMoviePlayerController
MPMoviePlayerController 在影片结尾更改控件样式