2010-07-07 27 views
7

he agregado una instancia de MPMoviePlayerViewController y la reproducción de una película funciona muy bien. Tengo 3 botones y quiero cargar diferentes videos en un contenedor UIView. Eso funciona, también. Pero si hago clic en un botón para cargar otro video, cada vez que el fondo parpadea en negro. he establecer el color a "clearColor":Cargando MPMoviePlayerViewController con fondo transparente?

player.moviePlayer.backgroundView.backgroundColor = [UIColor clearColor]; 

pero eso no ayuda. ¿Hay alguna manera de cargar un video sin fondo, solo el contenido del video?

Gracias por su tiempo.

+0

teniendo el mismo problema ... gracias Apple: P – Adam

Respuesta

10
  1. No estoy seguro del problema de parpadeo. Dijiste que parpadea cuando cargas otro video. ¿Involuntariamente capas varios videos uno encima del otro? ¡Asegúrate de quitar el viejo!
  2. El fondo negro probablemente se debe a scalingMode propiedad de su de MPMoviePlayerController se establece en MPMovieScalingModeAspectFit(Documentación de Apple: MPMoviePlayerController scalingMode)

Para la edición # 2, al igual que usted, yo esperaba establecer el color de la backgroundView a maneja esto, sin embargo parece que hay otra vista detrás de la cual también necesitas configurar el backgroundColor para clearColor. Mi truco para esto fue simplemente iterar a través de las subvistas de la película y establecer su backgroundColor para borrar.

Hack/"Solución" ejemplo usando su nombre de la variable:

for(UIView* subV in player.moviePlayer.view.subviews) { 
    subV.backgroundColor = [UIColor clearColor]; 
} 

Tienes que volver a aplicar a los clearColor subvistas cada vez que entra en el modo de pantalla completa/salida también. Espero que alguien más tenga una mejor solución porque este método parece bastante complicado.

+0

Esa fue la única solución que funcionó para mí. ¡Gracias! – Giovanni

+0

Se agregó 'player.moviePlayer.view.backgroundColor = [UIColor clearColor];' y también me funciona – Ossir