2012-02-27 50 views
0

更新iPhone - 通過一個UIWebView

我把它上傳到GitHub上播放YouTube視頻,鏈接https://github.com/ThinkChris/YouTubeDemo/blob/master/tabtest/FirstViewController.m

的要求是:

  1. 應用(基於tabviewcontroller)不會被旋轉
  2. 嵌入的youtube視頻應以縱向模式進入全屏
  3. 全屏視頻可以被旋轉(縱向和橫向)

您好人我有碼的兩個塊中嵌入YouTube視頻在一個UIWebView,我注意到,效果是不同的。不是所有的MPMoviePlayerController?爲什麼有差異?

代碼1:視頻肖像全屏啓動時,通過的ViewController受限旋轉(視頻不能如果viewcontroll不能這樣做,retated)

- (void)addYouTubeVideoWebView:(NSString*)url frame:(CGRect)frame 
{ 
    // iframe 
    url = @"http://www.youtube.com/embed/IQGhq0IlVok"; 
    NSString* embedHTML = @"\ 
    <html>\ 
     <body style=\"margin:0\">\ 
      // HERERRRRRRRRRRRRRRRRRRRRRRRRRR 
      <iframe src=\"%@?showinfo=0\" width=\"%0.0f\" height=\"%0.0f\" frameborder=\"0\"></iframe>\ 
     </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]; 
} 

代碼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]; 
} 

回答

1

使用iframe將HTML文檔嵌入到HTML文檔中。但是,由於你的iframe不包含有效的HTML文檔(只有一個URL),我的猜測是瀏覽器沒有足夠的關於你的iframe的信息,並且不能確定它是否可以在橫向播放(爲什麼它會是像這樣,我不知道,這只是一個猜測)。

  • 嘗試設置寬度爲您的iframe的高度或
  • 嘗試使用完整的HTML代碼嵌入版本在iframe版本:

    <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>\"; 
    
+0

感謝@teriiehina,爲建議和代碼,但上面的代碼無法正常工作,youtube拇指沒有顯示。 – ThinkChris 2012-02-28 00:53:01

+1

好吧,我的不好,應該在提交之前測試過。如果你給iframe一個寬度和高度會發生什麼? (我在上班時,當我到達我的辦公室時,我會更深入地看) – teriiehina 2012-02-28 07:07:40

+1

非常感謝,我已經將它上傳到github並更新了問題。請看一看 – ThinkChris 2012-02-28 23:38:45