首页 文章

在iframe中使用YouTube嵌入播放器在iOS6中不起作用

提问于
浏览
5

我真的需要你的帮助 . 在iOS应用上工作 . 我想玩youtube . 我从阅读许多博客和帖子中了解到,我们需要使用iframe来播放YouTube视频 .

但是,在某些视频中,我得到:“ This video contains content from XYZ. It is restricted from playback on certain sites. Watch on 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>

有人能帮我理解吗?我检查嵌入标志是否为真,它们都是允许在移动设备上播放的剪辑 .

适用于设备的视频示例:

设备上 don't work 的视频示例并显示错误消息:

2 回答

  • 6

    你可以使用webview作为youtube播放器

    Try Below Code 它对我有用

    在.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 frame ,也可以更改 videoUrl .

  • 4

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

    当您执行search->list时,可以将videoEmbeddablevideoSyndicated设置为true .

    或者,如果您正在浏览视频,则对于每个视频,您可以使用视频ID进行video->list呼叫,并在响应中检查status.embeddable .

    这是关于此主题的blog post,即使示例在v2中,信息仍然相关 .

相关问题