2013-10-12 50 views
5

我真的需要你的幫助。在iOS應用上工作。我想玩YouTube。我通過閱讀許多博客和文章瞭解到,我們需要使用iframe才能播放YouTube視頻。嵌入iframe的播放器在iOS6中不起作用

然而,對某些影片我得到:「 這部影片含有XYZ的內容,禁止在特定網站上播放在YouTube上觀看

我讀了這個問題:Youtube in iOS5 - done button Tapped這給鏈接youtube api:https://developers.google.com/youtube/player_parameters 他們建議使用iframe。
對YouTube網站的例子是:

<iframe id="ytplayer" type="text/html" width="640" height="390" 
    src="http://www.youtube.com/embed/M7lc1UVf-VE?autoplay=1&origin=http://example.com" 
    frameborder="0"/> 

的代碼我使用:

<!DOCTYPE html> 
<html> 
<head> 
<style> 
* { 
    border:0; 
    margin:0; 
    } 
</style> 
</head> 
<body> 
    <iframe webkit-playsinline id="player" type="text/html" width="320" height="180" src="http://www.youtube.com/embed/rEevIL1Wpcg?enablejsapi=1&playsinline=1&autoplay=1" frameborder="0"> 
    </iframe> 
</body> 
</html> 

有人可以幫我明白了嗎?我檢查嵌入式標誌是否爲真,它們都是允許在移動設備上播放的剪輯。

示例視頻的設備上工作:

舉例影片不要在設備上工作並彈出錯誤信息:

+0

看到很高的投票答案在[此鏈接](http://stackoverflow.com/questions/6666423/overcoming-display-forbidden-by-x-frame-options),如果你在模擬器上運行?然後可以在Safari上進行調試。 –

回答

6

你可以使用web視圖作爲YouTube播放器

試試下面的代碼它在.h文件中

@property (strong, nonatomic) UIWebView *webView; 

,併爲我工作

您.m文件

NSString *videoURL = @"http://www.youtube.com/embed/M7lc1UVf-VE?autoplay=1&origin=http://example.com"; 

// if your url is not in embed format or it is dynamic then you have to convert it in embed format. 

    videoURL = [videoURL stringByReplacingOccurrencesOfString:@"watch?v=" withString:@"embed/"]; 

    NSRange range = [videoURLString rangeOfString:@"&"]; 
    @try { 
     videoURLString = [videoURLString substringToIndex:range.location]; 
    } 
    @catch (NSException *exception) { 

    } 

    // here your link is converted in embed format. 

    NSString* embedHTML = [NSString stringWithFormat:@"\ 
    <html><head>\ 
    <style type=\"text/css\">\ 
    iframe {position:absolute; top:50%%; margin-top:-130px;}\ 
    body {\ 
     background-color: transparent;\ 
    color: white;\ 
    }\ 
    </style>\ 
    </head><body style=\"margin:0\">\ 
    <iframe width=\"100%%\" height=\"240px\" src=\"%@\" frameborder=\"0\" allowfullscreen></iframe>\ 
    </body></html>",videoURL]; 

    self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; 
    [self.view addSubview:self.webView]; 
    [self.webView loadHTMLString:embedHTML baseURL:nil]; 

在這裏,你可以改變的WebView框架,只要你想,也可以改變videoUrl

+0

雖然它沒有解決我的問題。你是獲得賞金的人。 – Mike

4

有兩個概念,可嵌入和聯合。 iOS設備使用iframe,因此它們基本上嵌入。 使用播放器API的Android設備可以檢查整合。

當您執行search->list時,可以將videoEmbeddablevideoSyndicated設置爲true。

或者,如果您通過視頻迭代,對於每個視頻,您可以通過視頻ID執行video->list調用,並在響應中檢查status.embeddable

這是關於此主題的blog post,儘管示例在v2中,但信息仍然相關。

相關問題