Ios iPhone-通过UIWebView播放Youtube视频

Ios iPhone-通过UIWebView播放Youtube视频,ios,iframe,uiwebview,embed,mpmovieplayercontroller,Ios,Iframe,Uiwebview,Embed,Mpmovieplayercontroller,更新 我已经上传到github,链接是 要求是: 应用程序(基于tabviewcontroller)不会旋转 嵌入的youtube视频应以纵向模式进入全屏 全屏视频可以旋转(纵向和横向) 大家好,我有两个代码块将youtube视频嵌入uiwebview,我注意到效果不同。他们不都是MPMoviePlayerController吗?为什么会有差异 代码1:视频在纵向全屏模式下开始,旋转受到viewcontroller的限制(如果viewcontroller无法执行此操作,则无法重新录制视频) -

更新

我已经上传到github,链接是

要求是:

  • 应用程序(基于tabviewcontroller)不会旋转
  • 嵌入的youtube视频应以纵向模式进入全屏
  • 全屏视频可以旋转(纵向和横向)

  • 大家好,我有两个代码块将youtube视频嵌入uiwebview,我注意到效果不同。他们不都是MPMoviePlayerController吗?为什么会有差异

    代码1:视频在纵向全屏模式下开始,旋转受到viewcontroller的限制(如果viewcontroller无法执行此操作,则无法重新录制视频)

    -(void)addYouTubeVideoWebView:(NSString*)url框架:(CGRect)框架
    {
    //iframe
    url=@“http://www.youtube.com/embed/IQGhq0IlVok";
    NSString*embedHTML=@”\
    \
    \
    //这里是rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
    \
    \
    \
    ";
    NSString*html=[NSString stringWithFormat:embedHTML,url,frame.size.width,frame.size.height];
    UIWebView*webView=[[UIWebView alloc]initWithFrame:frame];
    [webView loadHTMLString:html baseURL:nil];
    [self.view addSubview:webView];
    }
    
    代码2:从横向全屏开始,可自行旋转到任何方向

    - (void)addYouTubeVideoWebView:(NSString*)url frame:(CGRect)frame 
    {
        // embed
        url = @"http://www.youtube.com/watch?v=IQGhq0IlVok";
        NSString* embedHTML = @"\
        <html>\
            <body style=\"margin:0\">\
                // HERERRRRRRRRRRRRRRRRRRRRRRRRRR
                <embed type=\"application/x-shockwave-flash\" src=\"%@\" width=\"%0.0f\" height=\"%0.0f\"></embed>\
            </body>\
        </html>\
        ";
    
        NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];
    
        UIWebView * webView = [[UIWebView alloc] initWithFrame:frame];  
        [webView loadHTMLString:html baseURL:nil];
        [self.view addSubview:webView];
    }
    
    -(void)addYouTubeVideoWebView:(NSString*)url框架:(CGRect)框架
    {
    //嵌入
    url=@“http://www.youtube.com/watch?v=IQGhq0IlVok";
    NSString*embedHTML=@”\
    \
    \
    //这里是rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
    \
    \
    \
    ";
    NSString*html=[NSString stringWithFormat:embedHTML,url,frame.size.width,frame.size.height];
    UIWebView*webView=[[UIWebView alloc]initWithFrame:frame];
    [webView loadHTMLString:html baseURL:nil];
    [self.view addSubview:webView];
    }
    
    使用iframe将HTML文档嵌入到HTML文档中。但由于您的iframe不包含有效的HTML文档(仅包含URL),我猜测浏览器没有足够的iframe信息,无法决定是否可以在横向播放(为什么会这样,我不知道,这只是猜测)

    • 尝试为iframe或设置宽度和高度
    • 尝试在iframe版本中使用嵌入版本的完整HTML代码:

      <html>\
        <body style='margin:0'>\
          <iframe width'%0.0f' height='%0.0f' frameborder='0'>
            <html>\
              <body style='margin:0'>\
                <embed type='application/x-shockwave-flash' src='%@' width='%0.0f' height='%0.0f'></embed>\
              </body>\
            </html>\
          </iframe>\
        </body>\
      </html>\";
      
      \
      \
      \
      \
      \
      \
      \
      \
      \
      \";
      

    感谢@Teriehina提供建议和代码,但上述代码无法工作,youtube拇指无法显示。好吧,我的错,提交之前应该进行测试。如果您为iframe提供宽度和高度,会发生什么情况?(我在上下班途中,我到办公室后会对此进行深入了解)非常感谢,我已经把它上传到github并更新了问题。请看一看
    <html>\
      <body style='margin:0'>\
        <iframe width'%0.0f' height='%0.0f' frameborder='0'>
          <html>\
            <body style='margin:0'>\
              <embed type='application/x-shockwave-flash' src='%@' width='%0.0f' height='%0.0f'></embed>\
            </body>\
          </html>\
        </iframe>\
      </body>\
    </html>\";