2010-08-18 20 views
6

Tengo este extraño problema en iOS4 donde en el video que se reproduce en MPMoviePlayerController aparece un apagón cuando el usuario realiza cierto tipo de gestos sobre la pantalla. Simplemente estoy creando un UIViewController y un objeto para MPMoviePlayerController y luego establezco la Vista en el UIViewController.Apagón de pantalla al realizar un gesto de pellizco en MPMoviePlayerController

Quiero preguntar si este problema se puede resolver o no, y cuál es la forma correcta de reproducir un video en el iPhone.

Y si no hay forma de que pueda utilizar una vista superpuesta sobre MPMoviePlayerController y capturar todos los gestos y transmitir grifos individuales o toques a MPMoviePlayerController para la funcionalidad general de MPMoviePlayerController y evitar gestos que está causando el problema.

Ayúdeme a resolver el problema con la mejor solución posible y ayúdenme a elaborar la solución.

+0

He visto esto también. Me he dado cuenta de que está relacionado con los eventos enviados ... el gesto de pellizco es, como alternar entre el modo incrustado y pantalla completa, probablemente enviando el evento finalizado. No he podido averiguar por qué. –

Respuesta

0

Odio este problema. Lo que he podido encontrar es que, para tener el modo de pantalla completa, debe tener control incorporado para que el NSNotificationCenter responda con el Notification correcto. Suena estúpido y ridículo, pero esto es lo que encontré en 4.0.

9

Apple incrustado UIPinchGestureRecognizer en MPMoviePlayerViewController, pero no se encuentra en la propiedad UIResponder.gestures. Puede deshabilitar UIPinchGestureRecognizer incrustado en el método touchesBegan de MPMoviePlayerViewController.

 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    for (UITouch *touch in touches) { 
     NSArray *array = touch.gestureRecognizers; 
     for (UIGestureRecognizer *gesture in array) { 
      if (gesture.enabled && [gesture isMemberOfClass:[UIPinchGestureRecognizer class]]) { 
       gesture.enabled = NO; 
      } 
     } 
    } 
} 
 
0

Vi este problema y encontré una solución simple.

El truco nuking de gestos anterior no se pudo utilizar ya que no queremos usar MPMoviePlayerViewController (tenemos algunos controles personalizados cuando el video no está en pantalla completa y me gustaría mantener la transición sin problemas).

síntomas (IOS 5.1):

  • Cuando el usuario abre repetidamente un vídeo en pantalla completa, pellizcado de nuevo fuera de pantalla completa y luego hizo lo mismo con un nuevo vídeo de la pantalla se volverá negro del quinto Hora en que se inició un video y se ingresó a pantalla completa.
  • Mientras la pantalla está oscurecida, es posible ocultar y mostrar la barra de estado tocando solo, pero no aparece la barra de video o navegación.
  • Usando el botón "Listo" en pantalla completa en lugar de pellizcar, fue posible cerrar la pantalla completa sin ningún problema.
  • Asignamos un MPMoviePlayerController nuevo para cada video y no goteamos nada. Esto no ayudó.

Solución:

al despedir a la vista, que tenía la vista MPMoviePlayerController en ella nos propusimos contentURL = nil en el reproductor.

Después de eso, no tenemos problemas con la pantalla en negro en instancias posteriores MPMoviePlayerController.

Parece que hay una limpieza interna que se realiza cuando se usa el botón "Listo", pero no cuando se pellizca para cerrar la pantalla completa.

2

que tenía un problema similar y que acaba de encontrar la razón de mi problema de la documentación de la manzana:

Cuando se agrega la visión de un reproductor de películas de jerarquía de la vista de su aplicación, asegúrese de tamaño del marco correctamente, como se muestra aquí:

...

[player.view setFrame: myView.bounds]; // marco del jugador debe coincidir

...

Ahora mis pellizcos no están estrellando mi aplicación de los padres.

Cuestiones relacionadas