iPhone旋转和全屏视频

时间:2012-04-13 16:10:06

标签: iphone video rotation fullscreen

我遇到了一个奇怪的问题,我需要帮助解决。我的应用程序始终以纵向模式运行 - 我明确希望它是这样的。在应用程序的一个地方我有一个UIWebView,按预期工作正常。此Web视图不会一直显示,但会动态添加到主视图中并根据用户操作删除(即只有在需要时才会显示)。

现在,有时候在这个视图中我可能会有一个YouTube视频。 WebView只包含youtube嵌入的<iframe>。当用户点击webview中的视频预览框时,会启动全屏视频查看器来播放视频 - 这很好。

但是,如果在播放期间用户旋转手机,则旋转全屏视频播放器并以横向模式播放视频。现在视频停止并且用户按下“完成”按钮而不将手机旋转回纵向模式,视频播放器关闭,用户返回我的应用程序 - 但现在我的布局也旋转了!不只是视频视图,而是整个布局 - 包括工具栏,导航控制器等。

我不想要任何轮换!我只是希望我的应用程序中的所有内容都保持纵向模式!此外,现在即使手机旋转回纵向,应用程序也会保持横向模式。

请注意,到目前为止,我只在模拟器中对此进行了测试,因为我目前没有要测试的物理手机。我创建了一个简单(质量差!)的视频(只是在我的屏幕上用旧的手机摄像头拍摄了模拟器)来演示问题 - 视频在这里:http://shchuka.com/hosting/rotation_problem.mp4

我能做些什么呢?

2 个答案:

答案 0 :(得分:0)

将其添加或更改:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    return (UIInterfaceOrientation == UIInterfaceOrientationPortrait);

}

这将阻止所有旋转,应用程序仅在纵向模式下工作。您可以将return语句放在IF语句中,以便在某些情况下允许轮换。

答案 1 :(得分:0)

我有时会在appDelegate窗口中添加视图,因为我希望它们高于其他所有窗口,而且我必须明确调用自己的旋转代码,因为没有VC可以处理它。从好的方面来说,这可能意味着它可能是您需求的理想选择 -

[[[[UIApplication sharedApplication] delegate] window] addSubview:myWebView];

...在您首先加载视图之前,取决于应用的方向等,您可能需要在显示之前旋转webView。