首页 文章

在YouTube应用程序中嵌入YouTube视频

提问于
浏览
5

我是IOS应用程序开发的新手 . 我've added the code for embedding Youtube video in my app by using UIWebview and the embed code from the youtube. But when I run the application in my simulator, the webview is simply blank. I don'看到任何视频缩略图或其他任何内容 . 我听说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

8 回答

  • 1

    It is too much easy in swift 4

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

    let request = URLRequest(url: url!)

    webView?.load(request)

  • 2

    无需使用嵌入代码 . 针对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];
    
  • 7

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

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

  • 10

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

    您需要做的就是从任何YouTube视频中获取代码(任何YouTube视频网址中的最后一个字符)

    See post here.

    以下是代码:

    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"]];
    
  • 2

    我在我的应用程序中使用了这个 . 这不使用任何webview

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

    OR

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

    Google提供了一个帮助,可以在iOS应用中嵌入和控制YouTube视频 . 看看这里的文档:https://developers.google.com/youtube/v3/guides/ios_youtube_helper

  • 1

    //我的UIWebview在下面的例子中被命名为“videoYoutube”// UIWebview size = 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)
    
  • 0

    对于第一个建议的答案我面临一些问题,如整个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];
    

相关问题