Youtube嵌入rel = 0不能在iphone上运行

时间:2014-09-18 15:17:46

标签: javascript iphone youtube html5-video embed

尝试使用?rel = 0参数嵌入youtube视频,以便在视频播放完成后,它不会在播放器中显示相关视频,如下所示:

<iframe width="560" height="315" src="//www.youtube.com/embed/TRrL5j3MIvo?rel=0" frameborder="0" allowfullscreen></iframe>

这在桌面浏览器上运行良好,但似乎在iOS上,youtube正在删除网址末尾的所有参数。因此,当用户观看整个视频然后在移动YouTube播放器中按“完成”时,相关视频现在会显示在浏览器中。我的第一个想法是尝试在页面加载后用javascript追加?rel = 0 param,但没有运气。

1 个答案:

答案 0 :(得分:0)

您可以将webview用作youtube播放器

尝试使用以下代码,这对我有用

<。>文件中的

@property(强大,非原子)UIWebView * webView; 并在您的.m文件中

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

//如果你的网址不是嵌入格式,或者它是动态的,那么你必须以嵌入格式转换它。

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。

有两个概念,可嵌入和联合。 iOS设备使用iframe,因此它们基本上都嵌入了。使用播放器API的Android设备可以检查联合。

当您执行搜索 - &gt;列表时,您可以将videoEmbeddable和videoSyndicated设置为true。

或者,如果您要浏览视频,对于每个视频,您可以使用视频ID进行视频&gt;列表调用,并在响应中检查status.embeddable。

以下是关于此主题的博文,即使示例在v2中,信息仍然相关。

使用的信息来自&gt; YouTube Embed player in Iframe doesn't work in iOS6