2013-10-18 119 views
1

現在我對這個問題感到困惑,並且無法在堆棧溢出中找到任何有用的東西。UIWebView不會播放YouTube視頻

我正在使用應用程序瀏覽器的應用程序,當用戶單擊鏈接時。現在,它只是UINavigationController中的全尺寸UIWebView。我可以用UIWebView加載網頁,但是當嵌入Youtube時,我無法播放視頻。

我使用這個網址進行測試:http://kottke.org/13/10/the-grand-budapest-hotel

當我使用應用內瀏覽器中Twitterific加載網址時,視頻播放。當我在應用內瀏覽器中加載它時,我會看到一個黑色框,其中包含Youtube上的紅色播放按鈕,但是當您點擊播放按鈕時,它會消失,視頻也不會加載。

_webView = [[UIWebView alloc] init]; 
[_webView setTranslatesAutoresizingMaskIntoConstraints:NO]; 
[_webView setScalesPageToFit:YES]; 
[self.view addSubview:_webView]; 
[self.view addConstraints:constraints]; 
[_webView loadRequest:request]; 

我缺少UIWebView的設置嗎?

+0

我沒有看到你在哪裏設置要加載的網站的URL? – user2277872

+1

更新了代碼以包含它。作爲一次嘗試調試,我已經將loadRequest從init移開。無論哪種方式,網頁加載都很好,只是在我嘗試播放時沒有顯示YouTube視頻的縮略圖或加載。 – hukir

+0

原來Youtube在那個特定時間出現了問題,並且它自行解決了。 – hukir

回答

0

我用這個:

NSString *html = [self getHTML:videoId]; 
[self loadHTMLString:html baseURL:[[NSBundle mainBundle] resourceURL]]; 

- (NSString *) getHTML: (NSString *)videoID 
{ 
    if (videoType == videoTypeYoutube) 
    { 
     NSString *youTubeVideoHTML = @"<html>\ 
     <body style=\"margin:0;\">\ 
     <iframe class=\"youtube-player\" type=\"text/html\" width=\"%0.0f\" height=\"%0.0f\" src=\"http://www.youtube.com/embed/%@\" frameborder=\"0\">\ 
     </iframe>\ 
     </body>\ 
     </html>"; 
     NSString *html = [NSString stringWithFormat:youTubeVideoHTML, self.frame.size.width, self.frame.size.height, videoId]; 
     return html; 
    } 
} 

粗略地說反正(我剪&粘貼東西出來我用一個子類)。

+0

這很好,但問題不是任何自定義HTML。這是一個具有嵌入式視頻的實際網頁。我的測試案例是:http://kottke.org/13/10/the-grand-budapest-hotel – hukir