Cómo incrustar video de YouTube en iOs y reproducirlo directamente en UIWebview sin pantalla completa

Estoy usando este código para reproducir videos de YouTube en iOS

- (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]; } 

Funciona como encanto, pero quiero un comportamiento diferente. Ahora una miniatura del video aparece en la vista web (¡agradable!) Pero cuando toco el ícono de reproducción se abre en pantalla completa. Necesito que la reproducción se realice en la misma window, ya que necesito mostrar más cosas.

¿Alguna pista de cómo hacer eso? Thansk por adelantado

Si alguien todavía se enfrenta a este problema, a continuación se muestra con mucho la mejor solución que he visto. Funciona de maravilla.

 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]]; 

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

En 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!)