embeddedyoutubevideo在iPhone应用程序

我是IOS应用程序开发的新手。 我已经通过使用UIWebview和来自YouTube的embedded代码添加了embeddedYoutubevideo的代码。 但是当我在模拟器中运行应用程序时,webview只是简单的空白。 我没有看到任何video缩略图或其他任何东西。 我听说YouTubevideo不会在iPhone模拟器上运行,但是这个链接(“ http://www.youtube.com/embed/36db4r3MsgU ”)显示video在模拟器中完美播放。 请看看这个链接,并build议我一个解决scheme。

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

不需要使用embedded代码。 针对YouTubeurl的标准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的答案确实起作用,但是它将youtube的移动网页embedded了youtube播放器,这需要很多的空间,而且看起来很糟糕。 最好的select是遵循Youtube Api博客中的说明:

更新:由于YouTube现在使用其API的v3,这是一个新的链接与官方指示: https : //developers.google.com/youtube/v3/guides/ios_youtube_helper

我在我的应用程序中使用了这个。 这不使用任何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应用中embedded和控制YouTubevideo。 看看这里的文档: https : //developers.google.com/youtube/v3/guides/ios_youtube_helper

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

所有你需要做的就是给它从任何YouTubevideo的代码(任何YouTubevideourl中的最后一个字符)

在这里看到post。

这里是代码:

  CGFloat width = self.webView.frame.size.height; CGFloat height = self.webView.frame.size.width; 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"]]; 

//我的UIWebview在下面这个例子中被命名为“videoYoutube”// UIWebview size = 320×180 //下面的这个将把宽度设置为…或者靠近它,并且根据设备尺寸进行缩放。

  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) 

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