在iphone应用程序中嵌入youtube视频



我是IOS应用程序开发的新手。我已经添加了通过使用UIWebview在我的应用程序中嵌入Youtube视频的代码和来自Youtube的嵌入代码。但是当我在模拟器中运行应用程序时,网络视图只是一片空白。我没有看到任何视频缩略图或其他内容。我听说youtube视频不会在IPhone模拟器上运行,但这个链接("http://www.youtube.com/embed/36db4r3MsgU")显示视频在模拟器中完美播放。请查看此链接并向我建议解决方案。

NSString *code = @"<iframe width="640" height="360" src="http://www.youtube.com/embed/36db4r3MsgU?feature=player_detailpage" frameborder="0" allowfullscreen></iframe>";
[[self video]loadHTMLString:code baseURL:nil];

谢谢,Abilash.G

无需使用嵌入代码。针对youtube网址的标准UIWebView应该可以正常工作。。。

// URL from safari address bar. 
NSURL *url = [NSURL URLWithString:@"http://www.youtube.com/watch?v=fDXWW5vX-64"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];

@danh answer确实有效,但它将youtube的移动网页嵌入了youtube播放器,这占用了大量空间,而且看起来很糟糕。最好的选择是按照Youtube Api博客中的说明进行操作:

更新:由于youtube现在使用其api的v3,这里有一个带有官方说明的新链接:https://developers.google.com/youtube/v3/guides/ios_youtube_helper

在iOS 8中,它开始以不同的方式工作,并在WebView中添加填充。我发布了这个问题的答案,这适用于iOS 9和Xcode 7。填充物(-8px)可能需要根据您的需要进行调整,但总的来说,它的效果令人惊讶。

你所需要做的就是给它任何YouTube视频的代码(任何YouTube视频URL中的最后一个字符)

请参阅此处的帖子。

这是代码:

    CGFloat width = self.webView.frame.size.width;
    CGFloat height = self.webView.frame.size.height;
    NSString *youTubeVideoCode = @"dQw4w9WgXcQ";
    NSString *embedHTML = @"<iframe width="%f" height="%f" src="http://www.youtube.com/embed/%@" frameborder="0" style="margin:-8px;padding:0;" allowfullscreen></iframe>";
    NSString *html = [NSString stringWithFormat:embedHTML, width, height, youTubeVideoCode];
    self.webView.scrollView.bounces = NO;
    [self.webView loadHTMLString:html baseURL:[NSURL URLWithString:@"http://www.youtube.com"]];

我在我的应用程序中使用过这个。这不使用任何webview

https://www.cocoacontrols.com/controls/hcyoutubeparser

NSURL *urlOfYouTube = [NSURL URLWithString:@"http://www.youtube.com..."];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:urlOfYouTube];
[self.webView loadRequest:requestObj];

Google提供了一个助手,用于在iOS应用程序中嵌入和控制youtube视频。请查看此处的文档:https://developers.google.com/youtube/v3/guides/ios_youtube_helper

//MY UIWebview在下面的示例中被命名为"videoYoutube"//UIWeb视图大小=320x180//下面将设置导轨的宽度。。。或接近它,并根据设备大小进行缩放。

    let bounds = UIScreen.mainScreen().bounds
    let width = bounds.size.width - 18
    let height = bounds.size.width / 1.8
    let frame = 0
    let youtubeVideolink = "https://www.youtube.com/embed/Rg6GLVUnnpM"
    let Code:NSString = "<iframe width=(width) height=(height) src=(youtubeVideolink) frameborder=(frame) allowfullscreen></iframe>"
    self.videoYoutube.loadHTMLString(Code as String, baseURL: nil)

在swift 4中太容易了

let url = URL(string: "http://www.youtube.com/watch?v=fDXWW5vX-64")

let request = URLRequest(url: url!)

webView?.load(request)

对于第一个建议的答案,我遇到了一些问题,比如整个youtube页面已经加载以修复我使用了一些额外的代码,这些代码是

NSString *baseUrl = [NSString stringWithFormat:@"%@%@",@"http://www.youtube.com/watch?v=",embedCode];
    NSURL *url = [NSURL URLWithString:baseUrl];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    videoWebView = [[UIWebView alloc] initWithFrame:imageview.frame];
    [videoWebView loadRequest:request];
    [videoWebView setNeedsLayout];
    [videoWebView setAllowsInlineMediaPlayback:YES];
    videoWebView.mediaPlaybackRequiresUserAction = YES;
    videoWebView.scrollView.scrollEnabled = NO;
    videoWebView.scrollView.bounces = NO;
    [self.contentView addSubview:videoWebView];

相关内容

  • 没有找到相关文章

最新更新