我真的需要你的帮助。在 iOS 应用程序上工作。我想玩YouTube。我从阅读许多博客和帖子中了解到,我们需要使用iframe才能播放YouTube视频。
但是,在某些视频中,我得到:">此视频包含来自XYZ的内容。它被限制在某些网站上播放。在优酷上观看">
我读到这个问题:iOS5中的Youtube - 完成按钮点击,它提供了指向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>
有人可以帮助我理解它吗?我检查嵌入的标志是否为真,它们都是允许在移动设备上播放的剪辑。
在设备上播放的视频示例:
- http://www.youtube.com/watch?v=rEevIL1Wpcg&feature=youtube_gdata
- http://www.youtube.com/watch?v=KzGe7pbGUiM
设备上无法正常工作并显示错误消息的视频示例:
- http://www.youtube.com/watch?v=1vhFnTjia_I&feature=youtube_gdata
- http://www.youtube.com/watch?v=sxkiA0IjBZ0&feature=youtube_gdata
您可以使用WebView作为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];
在这里,您可以根据需要更改Web视图框架,也可以更改视频URL。
有两个概念,可嵌入和联合。iOS设备使用iframe,因此它们基本上是嵌入的。使用播放器 API 的安卓设备可以检查联合。
执行搜索>列表时,可以将 videoEmbeddable 和 videoSyndicated 设置为 true。
或者,如果您正在循环访问视频,则对于每个视频,您可以使用视频 ID 执行视频>列表调用,并在响应中检查 status.embeddable。
这是一篇关于此主题的博客文章,即使示例在 v2 中,信息仍然相关。