Pregunta

como el título, cuando juego película utilizando MoviePlayer Quiero saber cuando el playControllerBar se descarta, por lo que puedo controlar mi punto de vista agregado en MoviePlayer. ¿Hay alguien sabe? Dime, gracias.

¿Fue útil?

Solución

No estoy 100% seguro de si he entendido bien. Asumo que lo que quiere hacer es:

  1. reproducir una película
  2. añadir una vista personalizada (superposición) en la parte superior de la película (en ejecución).

suponiendo que lo que acabo de escribir hacia abajo, yo creo que hay que considerar lo siguiente:

  1. añadir una plantilla personalizada en la parte superior de MPMoviePlayerViewController es (por lo que a mí respecta) sólo permitió / posible si los controles del reproductor estándar se establece en ninguno:

    [moviePlayerViewController.moviePlayer setControlStyle:MPMovieControlStyleNone];
    
  2. adición de su plantilla personalizada en la parte superior del reproductor es básicamente el mismo procedimiento addSubview como en cualquier otro punto de vista

    [moviePlayerViewController.view addSubview:overlay];
    

el código / concepto anterior funcionará en 3.2 y más tarde, como yo acabo de leer ahora que está, obviamente, el desarrollo de 3.0

en lugar de eliminar la primera parte de mi respuesta ahora a explicar cómo lograr el mismo efecto en 3.0

3.0 en la que es un poco más complicado (como Seguro sabe por ahora). MPMoviePlayerController no es un controlador de vista y sólo funciona en modo de pantalla completa,. Una vez que la película comienza de juego, el keyWindow cambia ! Así que hacemos uso de que al implementar la siguiente:

1) dentro de su clase que encapsula el MPMoviePlayerController, comenzar a escuchar la UIWindowDidBecomeKeyNotification haciendo lo siguiente:

        [[NSNotificationCenter defaultCenter] addObserver: self 
                                             selector: @selector(keyWindowChanged:) 
                                                 name: UIWindowDidBecomeKeyNotification 
                                               object: nil];

2) withing su keyWindowChanged: método que se puede añadir su superposición, la siguiente snipplet es exactamente como yo implementé:

- (void)keyWindowChanged: (id) sender {

//NSLog(@"keyWindowChanged");
[[NSNotificationCenter defaultCenter] removeObserver: self name: UIWindowDidBecomeKeyNotification object: nil];
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];

[moviePlayerWindow addSubview: overlayController.view];
[overlayController performSelector:@selector(fadeIn)]; 

}

De nuevo, esto sólo funciona si el MovieControllMode está "oculta" al hacer esto:

[newMPController setMovieControlMode: MPMovieControlModeHidden];

Espero que pueda ayudar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top