全屏YouTube视频,旋转和状态栏(iOS)

时间:2012-02-10 19:22:54

标签: iphone ios video rotation fullscreen

我在当前的项目中遇到了一个问题,所以我创建了一个简单的应用程序,看看我是否可以隔离问题。在我的app委托中,我隐藏了状态栏。

[application setStatusBarHidden:YES animated:NO];

在我的单视图控制器中,我有以下代码:

- (void)loadVideo
{
    // HTML to embed YouTube video
    NSString *youTubeVideoHTML = @"<html><head>\
    <body style=\"margin:0\">\
    <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
    width=\"%0.0f\" height=\"%0.0f\"></embed>\
    </body></html>";

    // Populate HTML with the URL and requested frame size
    NSString *html = [NSString stringWithFormat:youTubeVideoHTML, @"http://www.youtube.com/watch?v=VDRoBnL1gRg", 500, 500];

    // Load the html into the webview
    [self.webview loadHTMLString:html baseURL:nil];
}

该应用也设置为自动旋转。

现在,问题出现了:当我播放YouTube视频时,进入全屏模式,将设备旋转90度,点击“完成”退出全屏,整个界面保持向下移动20px,好像它正在容纳状态栏。我注意到,当全屏观看视频时,ios会添加一个状态栏,所以我猜这是问题的一部分。我也看到了原生视频播放器出现的问题。

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

我最近在我的应用游戏指南:Black Ops 2中使用了这种YouTube嵌入方法,我遇到了这个问题,同时在点击电影播放器​​的“完成”按钮时显示了rootViewController。检查rootViewController上的“Wants Full Screen”修复了20像素移位,并修复了按下“完成”按钮后显示的rootViewController我将其添加到rootViewController,后者正在添加一个UIViewController(带有tableView)作为正在使用的子节点[presentViewControllerAnimated:(BOOL)completion:nil]显示带有YouTube视频嵌入的ViewController。

现在一切正常运行...如果你想了解它的行为,请查看我的应用中的视频标签。

-(void)viewDidAppear:(BOOL)animated {
    NSLog(@"Main View viewDidAppear...");
    [super viewDidAppear:animated];
    [self dismissViewControllerAnimated:YES completion:nil];

}

答案 1 :(得分:1)

我遇到了类似的问题。

我在故事板中创建了视图。检查视图控制器设置的布局部分中的Wants full Screen为我解决了这个问题。

答案 2 :(得分:0)

如果您使用UITabBarController,则必须将此视图安装为窗口的根目录。与其他视图控制器不同,标签栏界面不应该作为另一个视图控制器的子项安装。

答案 3 :(得分:0)

尝试添加到info.plist下一个键:UIStatusBarHidden(“状态栏最初隐藏”),值为YES。