2012-10-08 9 views
10

Ich habe meinen Titel vielleicht nicht gut formuliert, vielleicht ist es korrekter zu sagen, dass meine NSNotification nicht die Ansicht meines Films verwarf, nachdem er abgespielt wurde. Ich habe andere mit diesem Problem aber keine Lösungen gefunden, scheint, dass es ein Problem mit iOS 6 sein könnte, was ich gerade betreibe.MPMoviePlayerController wird den Film nach der Wiedergabe nicht automatisch schließen (ios 6)

Nachdem das Video abgespielt wurde, müssen Sie "Done" drücken, um es zu schließen, aber ich möchte, dass es automatisch beendet wird, da ich MPMovieControlStyleNone verwenden werde, sobald ich das aussortiert habe. Hier ist mein Code mit den nicht genutzten Abschnitte gezupft: `

#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` 

Antwort

18

hatte dieses Problem auch in moviePlayBackDidFinish zu beheben fügen Sie einfach

vor dem Entfernen Blick von Superview

+0

schließlich ein Lösung! Das hat perfekt funktioniert, danke. – robertfiorentino

+0

Excellence Antwort .. up Abstimmung .. –

+2

Ich brauche es umgekehrt. Ich möchte, dass MPMoviePlayerController nicht automatisch abgewiesen wird. Der Benutzer kann ihn mit der Schaltfläche * Fertig * schließen –

Verwandte Themen