如何在iOs上embeddedYouTubevideo,并直接在UIWebview上播放,而不是全屏

我正在使用此代码在iOS上播放YouTubevideo

- (void)embedYouTube:(NSString *)urlString frame:(CGRect)frame { NSString *htmlString = [NSString stringWithFormat:@"<html><head><meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = yes, width = 320\"/></head><body style=\"background:#00;margin-top:0px;margin-left:0px\"><div><object width=\"320\" height=\"180\"><param name=\"movie\" value=\"http://www.youtube.com/v/%@&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\"></param><param name=\"wmode\" value=\"transparent\"></param><embed src=\"http://www.youtube.com/v/%@&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\"type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"320\" height=\"180\"></embed></object></div></body></html>", urlString, urlString]; UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame]; [videoView loadHTMLString:htmlString baseURL:nil]; [self.view addSubview:videoView]; [videoView release]; } 

它的作品像魅力,但我想要一个不同的行为。 现在,video的缩略图出现在web视图上(不错!),但是当我点击播放图标时,它会以全屏模式打开。 我需要在同一个窗口中完成播放,因为我需要显示更多内容。

任何线索怎么做? Thansk提前

如果有人仍然面临这个问题,下面是迄今为止我所见过的最好的解决scheme。 奇迹般有效。

 self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10,300, 200)]; [self.webView setAllowsInlineMediaPlayback:YES]; [self.webView setMediaPlaybackRequiresUserAction:NO]; [self.view addSubview:self.webView]; NSString* embedHTML = [NSString stringWithFormat:@"\ <html>\ <body style='margin:0px;padding:0px;'>\ <script type='text/javascript' src='http://www.youtube.com/iframe_api'></script>\ <script type='text/javascript'>\ function onYouTubeIframeAPIReady()\ {\ ytplayer=new YT.Player('playerId',{events:{onReady:onPlayerReady}})\ }\ function onPlayerReady(a)\ { \ a.target.playVideo(); \ }\ </script>\ <iframe id='playerId' type='text/html' width='%d' height='%d' src='http://www.youtube.com/embed/%@?enablejsapi=1&rel=0&playsinline=1&autoplay=1' frameborder='0'>\ </body>\ </html>", 300, 200, @"JW5meKfy3fY"]; [self.webView loadHTMLString:embedHTML baseURL:[[NSBundle mainBundle] resourceURL]]; 

来源: https : //code.google.com/p/gdata-issues/issues/detail?id = 5204

在Swift中:

 let webView = UIWebView(frame:CGRectMake(10, 10,300, 200)) webView.allowsInlineMediaPlayback = true webView.mediaPlaybackRequiresUserAction = false self.view.addSubview(self.webView) let embedHTML = "<html>" + "<body style='margin:0px;padding:0px;'>" + "<script type='text/javascript' src='http://www.youtube.com/iframe_api'></script>" "<script type='text/javascript'>" "function onYouTubeIframeAPIReady()" "{" " ytplayer=new YT.Player('playerId',{events:{onReady:onPlayerReady}})" "}" "function onPlayerReady(a)" "{ " " a.target.playVideo(); " "}" "</script>" " <iframe id='playerId' type='text/html' width='300' height='200' src='http://www.youtube.com/embed/JW5meKfy323?enablejsapi=1&rel=0&playsinline=1&autoplay=1' frameborder='0'>" " </body>" "</html>" webView.loadHTMLString(embedHTML, baseURL:NSBundle.mainBundle().resourceURL!)