2010-06-08 10 views
7

Tengo una aplicación que funciona desde la versión 2.0 del SDK donde creo y agrego un UIWebView y luego cargo la URL de un .mov para reproducir una película. Desde la versión anterior de la 4.0 beta hasta la 4.0 GM esto ha dejado de funcionar. Cuando cargo una película ahora me sale el siguiente error:: Plug-in de carga manejado" y la película nunca muestraReproducción de videos en UIWebView roto en iOS4?

Es éste un problema conocido Estoy haciendo algo mal en 4.0

+0

Para cualquier persona que tenga este problema: Este es un error no documentado que rompe aplicaciones existentes. Hay una solución alternativa a continuación, pero también [presente un informe de error] (https://bugreport.apple.com/) para aumentar la probabilidad de que Apple lo solucione. – cduhn

Respuesta

4

Me di cuenta de esto.?? Parece ser un problema con iOS4 que no es compatible con un UIWebView creado con 'init' en lugar de 'initWithFrame'. En 2.0 - 3.1.3, solo se podía mostrar el video en una UIWebview como pantalla completa. Es por eso que no importaba si llamabas 'init' - el reproductor de películas entraba y salía a pantalla completa. Sin embargo, en 3.2 y superior ahora puedes alinear video en un UIWebView así que tienes que llamar a initWithFrame y darle algo como [[UIScreen mainScreen] bounds] para que haya una vista visible. No estoy seguro de si esto es toro o no, pero parece ser el caso.

+0

Para ser un poco más preciso, el video solo se reproducirá si el marco de UIWebView tiene un área distinta de cero. Tuve el mismo problema con un UIWebView creado usando '[[UIWebView alloc] initWithFrame: CGRectZero]'. Esto es especialmente extraño, ya que la vista web en realidad no necesita ser visible. El video se reproducirá incluso si el webView nunca se agrega a la jerarquía de la vista, siempre que su fotograma no sea nulo. – cduhn

+0

Esto es correcto. Incluso si llama al [[UIWebView allow] initWithFrame:CGRectMake(0,0,1,1)], el video se mostrará bien y cuando haga clic en "Listo", el UIWebView 'desaparecerá'. De lo contrario, no estoy seguro de si hay una manera de detectar si el video ha finalizado para que pueda ocultar/eliminar el UIWebView. De lo contrario, verá un UIWebView blanco con un icono de reproducción en el centro. – rforte

+0

Pensé que era el único con este problema. Pero incluso con esta solución no funciona para mí. Ya estoy haciendo initWithFrame, pero me aparece una alerta. "Esta película no se pudo reproducir" en 3.2 y versiones anteriores funciona bien. Solo 4.0 no lo hace – scud

1

Me aparece la situación de "esta película no se pudo reproducir" cuando se reproduce un videoclip. Esto sucedió cuando se acababa de usar la grabadora. Y esto NO sucederá cuando el jugador acaba de ser usado.

Luego configuré la categoría de sesión de audio en kAudioSessionCategory_AmbientSound después de finalizar la grabadora.

Este problema se resolvió después de que lo hice.

0

Al menos en ChildGrowser de PhoneGap, el método didFailLoadWithError maneja y muestra este mensaje. Simplemente no muestre el error, problema resuelto, pero en este caso específico hay dos botones 'listo' para presionar antes de volver a la aplicación.

0

Simplemente ignórelo. No hay daño al hacerlo.

if (![error.localizedDescription isEqualToString:@"Plug-in handled load"]) 
Cuestiones relacionadas