使用Overlay视图制作MPMoviePlayer的更好方法

111*_*110 5 iphone mpmovieplayercontroller mpmovieplayer ipad ios4

当我们使用MPMoviePlayer(在自定义UIViewController中)创建应用程序并在电影播放器​​上使用覆盖UIViewController时,有什么更好的方法: - 使用self.view.presentModalView ...或者self.view.addSubView在播放器中加载电影......或者在那里任何其他更好的方式.我现在使用模态视图,一切正常,但我必须实现一些自定义旋转.我正在寻找更明确的方法来做到这一点.

好吧也许更多细节.在iPhone应用程序中,我添加播放器,如模态视图,并添加叠加视图,这是有效的.但这是通用应用程序,它在iPad上的工作方式与在iPhone上的工作方式相同.在ipad splitView中,我的播放器在细节方面(非完全屏幕),当我双击它时它会全屏显示.现在玩家是关键窗口.这是最大的问题.我试图添加叠加视图作为子视图和模态视图,我做了它,但是叠加层不知道设备方向,我必须转换叠加元素,这是我想要避免的.有没有办法检测该视图的旋转?

Til*_*ill 6

简单而优雅的解决方案:

不要使用"真实"全屏模式,而是将MPMoviePlayerController的视图缩放到屏幕填充大小 - MPMoviePlayerController.view.frame = CGRectMake(0.0f, 0.0f, 768.0f, 1024.0f);.保持MPMoviePlayerControllerview定期之上UIViewControllerview,它允许旋转(addSubview).保持您的自定义界面视图在MPMoviePlayerController的视图(addSubview)和presto之上,无论您是否以"全屏"方式运行它,您都将获得正确旋转的视频播放器.


111*_*110 0

我找到了一个解决方案,但我不是很自豪,因为我认为有一些更好的方法,但这种解决方法有效: - 在项目中,我有一个包含一些全局数据的单例类。willAnimateRotationToInterfaceOrientation- 当应用程序启动时,首先调用详细视图 (UISplitView)方法。在这里,我获取当前方向并将其存储在单例类中。- 后来,当我在播放器顶部添加覆盖时,我从单例读取数据并转换覆盖元素。