Pregunta

Tengo un cliente que tiene un video de contenido para la web en formato Flash.Mi tarea es ayudarles a mostrar los videos en una aplicación para el iPhone.

Me doy cuenta de que el paso uno es conseguir que estos vídeos en el formato Quicktime para el iPhone.

A continuación, voy a tener que ayudar al cliente a averiguar cómo o dónde alojar estos archivos.Si que es complicado, supongo que puede ser alojado en YouTube.

Mi principal preocupación, sin embargo, es que el enfoque para el flujo de vídeo.¿Cuáles son los pros y los contras de MPMoviePlayerController versus el lanzamiento de UIWebView con la URL del stream?¿Hay alguna diferencia?Uno de ellos es más o menos perdonar?Uno de ellos es una mejor experiencia de usuario?Cualquier artimañas que yo podría esperar a que se ejecute en?

Estoy suponiendo que la reproducción de vídeo es bastante fácil en el iPhone.Es razonable que probar ambos y tiene uno disponible como un retroceso, o que sería una pérdida de tiempo?Estoy tratando de programar este fuera un poco, así que me encantaría escuchar las experiencias del mundo real de alguien que ha hecho eso.

¿Fue útil?

Solución

UIWebView en realidad no puede reproducir vídeos. Navegar a una página de Youtube con un UIWebView simplemente lanzar Youtube App del iPhone. Hacer esto de una manera determinada devolverá el control a la aplicación después de que se reproduzca el vídeo. Ver aquí: http://iphoneincubator.com/blog/tag/uiwebview

Yo recomiendo usar MPMoviePlayer controlador, siempre y cuando sólo se está haciendo streaming de simple. He aquí algunos ejemplos de código para empezar:

NSString *url = @"http://www.example.com/path/to/movie.mp4";
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc]
                                        initWithContentURL:[NSURL URLWithString:url]];
[moviePlayer play];

Otros consejos


EDITAR:Mi ejemplo original en esta respuesta se inicializa el webview con un marco de CGRectZero.Esto funcionó hasta iOS 3.2.Comenzando con el iOS 4 el webview debe tener un valor distinto de cero marco o el vídeo no se reproduzca.He editado mi ejemplo a continuación para reflejar este cambio.


El aceptó respuesta aquí no es exacto.Usted puede, de hecho, el uso de UIWebView para transmitir vídeos, y en algunos aspectos es mejor que MPMoviePlayerController.Si usted le dice a UIWebView a solicitud de un archivo de vídeo (por ejemplo,un mp4) a través de loadRequest:, se abrirá una nueva ventana y el flujo de vídeo dentro de la aplicación.A diferencia de MPMoviePlayerController, la ventana de vídeo creado por UIWebView se puede girar a la orientación horizontal o vertical.Al final del vídeo, el usuario puede cerrar esta ventana y volver a la aplicación.


EDIT 2:Desde ahora usted puede implementar un reproductor de vídeo que gira mediante MPMoviePlayerViewController, ya no puedo pensar en una razón para el uso de UIWebView para los vídeos utilizando la técnica descrita en esta respuesta.


Sugerencia:Desde UIWebView crea su propia ventana para reproducir el vídeo, usted incluso no necesita agregar el UIWebView a la vista de jerarquía.Usted puede crear el UIWebView objeto y llamar loadRequest:para reproducir el vídeo sin pasar el objeto a addSubview:.

self.webView = [[[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
NSURL *url = [NSURL URLWithString:@"http://www.jonathancoulton.com/music/thingaweek/CodeMonkey.mp3"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top