2010-07-24 9 views
7

Estoy creando un complemento para iPad y estoy usando un MPMoviePlayerViewController para reproducir un video.iPad SDK: ¿Cómo conectar el botón hecho de MPMoviePlayerViewController?

El video está ocupando toda la pantalla del iPad de esta manera.

playerViewController.view.frame = self.view.frame; 

Necesito una forma para que el usuario pueda presionar un botón para ir a una pantalla diferente.

Observé que automágicamente aparece un botón hecho en el controlador de navegación cuando creo un MPMoviePlayerViewController.

Mis preguntas:.

a) ¿Hay alguna forma de gancho en el botón de hecho existente? Básicamente solo quiero descartar el controlador de vista.

b.) Si eso no funciona. ¿Cómo puedo agregar mi propio botón personalizado? Como mencioné anteriormente, el MPMoviePlayerViewController está ocupando toda la pantalla. Una idea que tuve fue crear MPMoviePlayerViewController en un marco y dejar un poco de espacio vertical para poder agregar mi propia barra de herramientas.

Preferiría sugerencias sobre cómo implementar un.)?

Si eso no es posible, ¿tal vez algunas sugerencias sobre cómo descartar el MPMoviePlayerViewController con solo presionar un botón?

Toda ayuda apreciada.

+0

, comprueba si mi respuesta aquí: http://stackoverflow.com/a/29516352/1728118 –

Respuesta

10

A partir de los documentos:

el botón Listo hace que la reproducción de películas para hacer una pausa mientras el reproductor transiciones de modo de pantalla completa. Si desea detectar este escenario en su código, debe monitorear otras notificaciones como MPMoviePlayerDidExitFullscreenNotification.

lo tanto, tratar de observar esta notificación:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayerDidExitFullscreen:) 
              name:MPMoviePlayerDidExitFullscreenNotification 
              object:nil]; 

Y más adelante:

- (void)moviePlayerDidExitFullscreen:(NSNotification *)theNotification { 
    // do whatever you need to... 
} 

Editar: Creo que leí mal su pregunta. Lo que queremos es el método
-dismissMoviePlayerViewControllerAnimated

Asumo que está presentando usando -presentMoviePlayerViewControllerAnimated:? Puede agregar un botón usando moviePlayer.navigationItem.rightBarButtonItem (o a la izquierda, o lo que sea). Establezca el objetivo de este botón en su controlador de vista e intercepte esa acción para llamar al -dismiss...

+0

que realmente sólo tiene una manera de permitir al usuario cierra ViewController.De hecho, solo quiero: [self dismissModalViewControllerAnimated: YES]; Intenté registrarme para MPMoviePlayerDidExitFullscreenNotification que funciona bien pero no tiene el efecto deseado. Ideas? – butchcowboy

+0

Intenté agregar un botón y luego asignarlo a mp.navigationitem.rightBarButtonItem pero no apareció. ¿Alguien tiene un ejemplo de esto funcionando? – butchcowboy

+0

¿Alguien ha encontrado una solución para esto? He estado buscando en Google en todas partes ... ¿Cómo puedo escuchar la vista modal que se descarta que aprt extienda el controlador y anule el método de declaración? – user281300

8

Hola se puede hacer uso de lo que dijeron jbandes

[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:theMoviePlayer.moviePlayer]; 
+0

que también se invoca cuando la película termina sin haber presionado el botón Hecho –

+0

@ Max MacLeod usuario presentMoviePlayerViewControllerAnimado luego MPMoviePlayerDidExitFullscreenNotification ser criado. –

+0

¡Impresionante! Eso funciona en el 'MPMoviePlayerViewController' también cuando se presiona el botón hecho. El 'MPMoviePlayerWillExitFullscreenNotification' no se activa allí. –

Cuestiones relacionadas