Reproducir video de YouTube en un UIWebView sin pantalla completa

Me gustaría emebed un video de Youtube en mi aplicación. Pero la técnica normal es que insertamos un video de YouTube en un UIWebView y cuando el usuario hace clic, se inicia automáticamente en un MPMoviePlayerController. Pero esto se inicia en pantalla completa. Cómo reproducir este video de YouTube en un MPMoviePlayerController sin pasar a pantalla completa. Me gustaría mostrar esto en la mitad de la pantalla.

configura allowsinlinemediaplayback . pero esta function en iPad. en iPhone no aplicable Si intenta reproducir video con uiwebview en iPhone, se reproducirá en modo de pantalla completa.

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference/Reference.html

introduzca la descripción de la imagen aquí

Hay varias forms de hacerlo.

Además de la configuration

videoView.allowsInlineMediaPlayback = YES; 

La forma más fácil y sucia es deshabilitar controles como este:

UN)

v1) Código Javascript (observe los controls:0 ):

 player = new YT.Player('player', { width:'100%', height:'50%', videoId:'[your video id]', playerVars: { controls:0, rel:0, modestbranding:1, html5:1, showinfo:0 } 

v2) HTML Incruste el código iFrame (observe los &controls=0 y / o &playsinline=1 ):

 <iframe id="ytplayer" type="text/html" width="100%" src="http://www.youtube.com/[your_video_id]?autoplay=1&controls=0&playsinline=1&modestbranding=1&rel=0&showinfo=0&autohide=1&html5=1" webkit-playsinline frameborder="0"></iframe> 

SEGUNDO)

Solo agrega &playsinline=1 (o playsinline:1 en el caso de JavaScript a continuación dentro de playerVars ). Este usuario de caso aún podrá ir a pantalla completa, pero el jugador debería comenzar normalmente en los bordes de su vista.

Espero que esto ayude.

Estoy usando una UIView que se define como YTPlayerView para reproducir el video.

Seguí este tutorial: Tutorial de YouTube para incrustar video

He creado un dictionary. Luego lo agregué a la definición de videoId (qué video estoy jugando).

Desde el tutorial de YouTube:

Reemplace loadWithVideoId : llamada con este código:

C OBJETIVO

  NSDictionary *playerVars = @{ @"playsinline" : @YES, }; [self.playerView loadWithVideoId:@"M7lc1UVf-VE" playerVars:playerVars]; 

Swift 2.1:

  var playerVars = ["playsinline" : 1] videoId.loadWithVideoId(["videoId"], playerVars: playerVars) 

Esto desactivará la pantalla completa cuando intente reproducir el video, y también permitirá que el usuario vaya a pantalla completa si lo desea.

Espero que ayude a alguien.

Envuelva el video en el file html5 y agregue webkit-playsinline en el atributo de la label <video> . Luego configure webView.allowsInlineMediaPlayback = YES; Eso funciona perfecto para mí.

Todavía no parece haber una forma de hacerlo con MPMoviePlayerController , pero la mejor solución que utiliza un UIWebView es el YTPlayer abierto de YouTube. Puede get la fuente en Github , luego puede seguir este tutorial .

Simplemente seguí ese tutorial y funciona bastante bien y es bastante personalizable. La pantalla completa se reproduce en un AVFullScreenViewController que es un estándar del sistema, por lo tanto, se puede girar para una mejor visualización de pantalla completa.