2011-08-31 13 views
8

Tengo una subclase MPMoviePlayerController que debe mostrar los controles cuando finaliza la reproducción. He adjuntado una respuesta a la notificación MPMoviePlayerPlaybackDidFinishNotification y trató de seleccionar el estilo de control de la siguiente manera:Mostrar controles mediante programación en MPMoviePlayerController

[self setControlStyle:MPMovieControlStyleEmbedded]; 

Esto no está funcionando. En esencia, al final del video quiero que se muestren los controles. ¿Cómo puedo mostrar los controles programáticamente?

NOTA: El controlador NO está en modo de pantalla completa.

+0

¿Estás seguro de que MPMoviePlayerPlaybackDidFinishNotification va a recibir una notificación? Puede establecer un punto de interrupción o un mensaje NSLog allí para asegurarse. –

+0

¿Alguna vez descubrió una solución para este Robert? – ToddH

+0

Me temo que es demasiado tiempo para recordar, pero creo que al final cambiamos a usar un jugador diferente? –

Respuesta

0

amablemente encontrar mi código completo de este, está funcionando conmigo

añadir .h clase añade esta

@property(strong,nonatomic) MPMoviePlayerViewController * moviePlayer; 

en la clase .m añadir el código "pasar la URL película"

-(void) playMovie:(NSString *)filePath 
{ 
    NSURL *theOutputURL = [NSURL fileURLWithPath:filePath]; 
    if(_moviePlayer) 
     [_moviePlayer.moviePlayer setContentURL:theOutputURL]; 
    else 
     _moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:theOutputURL]; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(myMovieFinishedCallback:) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:_moviePlayer.moviePlayer]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateDidChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:_moviePlayer.moviePlayer]; 

    if (![_moviePlayer.moviePlayer isPreparedToPlay]) 
     [_moviePlayer.moviePlayer prepareToPlay]; 

    _moviePlayer.moviePlayer.movieSourceType = MPMovieSourceTypeFile; 
    [_moviePlayer.moviePlayer setFullscreen:YES]; 
    _moviePlayer.moviePlayer.controlStyle=MPMovieControlStyleEmbedded; 
    [_moviePlayer.moviePlayer setContentURL:theOutputURL]; 
    _moviePlayer.view.frame = CGRectMake(0, 0, [[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height); 
    [_moviePlayer shouldAutorotateToInterfaceOrientation: AVCaptureVideoOrientationLandscapeRight]; 
    [self.view addSubview:_moviePlayer.view]; 
} 


- (void) moviePlayerPlaybackStateDidChange: (NSNotification *) notification { 
    if (_moviePlayer.moviePlayer.playbackState == MPMoviePlaybackStateStopped) { 
     [_moviePlayer.moviePlayer setContentURL:[_moviePlayer.moviePlayer contentURL]]; 
     [_moviePlayer.moviePlayer play]; 
    } 
} 

-(void)myMovieFinishedCallback:(NSNotification*)aNotification 
{ 
    // to add your code after playback is finished 

} 
Cuestiones relacionadas