2012-10-08 17 views
10

Forse non ho formulato il mio titolo molto bene, forse più corretto dire che il mio NSNotification non sta ignorando la vista del mio film dopo aver finito di giocare. Ho trovato altri con questo problema ma nessuna soluzione, sembra che potrebbe essere un problema con iOS 6, che è quello che sto correndo.MPMoviePlayerController non eliminerà automaticamente il film dopo aver finito di giocare (ios 6)

Dopo che il video è finito di giocare, è necessario premere il tasto "Done" per chiudere, ma voglio che respingere automaticamente dal Userò MPMovieControlStyleNone una volta che ottengo questo risolto. Ecco il mio codice con le sezioni inutilizzate spogliato fuori: `

#import "MovieViewController.h" 

@interface MovieViewController() 

@end 

@implementation MovieViewController 

@synthesize moviePlayer = _moviePlayer; 

- (IBAction)playMovie:(id)sender 
{ 
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
             pathForResource:@"TestMovie" ofType:@"mov"]]; 
    _moviePlayer = 
    [[MPMoviePlayerController alloc] 
    initWithContentURL:url]; 

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

    _moviePlayer.controlStyle = MPMovieControlStyleDefault; 
    _moviePlayer.shouldAutoplay = YES; 
    [self.view addSubview:_moviePlayer.view]; 
    [_moviePlayer setFullscreen:YES animated:NO]; 
} 

- (void) moviePlayBackDidFinish:(NSNotification*)notification { 

    MPMoviePlayerController *player = [notification object]; 

    [[NSNotificationCenter defaultCenter] removeObserver:self 
                name:MPMoviePlayerPlaybackDidFinishNotification 
                object:player]; 

    if ([player 
     respondsToSelector:@selector(setFullscreen:animated:)]) 
    { 
     [player.view removeFromSuperview]; 
    } 
} 

@end` 

risposta

18

avuto questo problema così Per risolvere in moviePlayBackDidFinish basta aggiungere

prima di rimuovere vista dalla superview

+0

Infine, un soluzione! Questo ha funzionato perfettamente, grazie. – robertfiorentino

+0

Eccellenza risposta ... voto in più .. –

+2

Ho bisogno di rovescio. Voglio che MPMoviePlayerController non debba essere chiuso automaticamente. L'utente può ignorarlo usando il pulsante * Fatto * –