Iframe 中的 YouTube 嵌入播放器在 iOS6 中不起作用



我真的需要你的帮助。在 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 中,信息仍然相关。

相关内容

  • 没有找到相关文章

最新更新