2013-09-02 3 views
2

Я использую MPMoviePlayerViewController играть в кино, я создать метод, который должен обнаруживать, когда фильм закончится затем запустить метод:IOS - Detect фильм закончен

- (void)movieFinishedWithSelector:(SEL)selectors { 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(selectors) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:[player moviePlayer]]; 
    } 

и использовать этот метод, как это, но делает не работа .

[self movieFinishedWithSelector:@selector(finished)]; 

Я что-то упустил?

ответ

2

Параметр selectors уже является селектором. Не использовать @selector:

- (void)movieFinishedWithSelector:(SEL)selector { 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:selector 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:[player moviePlayer]]; 
} 
+0

Спасибо! но все равно ничего не происходит !! –

0

Как вы определили селектор? Оно должно быть:

- (void)movieDidFinish:(NSNotification*)notification 
2

создать notication при загрузке фильма

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(myMovieFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:movieController]; 

Когда закончил myMovieFinished будет называться

-(void)myMovieFinished:(NSNotification *)aNotification 
{ 
    NSLog(@"%@",aNotification.userInfo); 
    int reason = [[[aNotification userInfo]valueForKey:MPMoviePlayerPlaybackDidFinishNotification]intValue]; 
    if (reason==MPMovieFinishReasonPlaybackEnded) { 
     NSLog(@"Movie finished playing"); 
    } 
    else if (reason==MPMovieFinishReasonUserExited) 
    { 
     NSLog(@"Movie finished because user exited"); 
    } 
    else if (reason==MPMovieFinishReasonPlaybackError) 
    { 
     NSLog(@"movie finished playback error"); 
    } 

    movieController=[aNotification object]; 
    [[NSNotificationCenter defaultCenter]removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:movieController ]; 

} 
+0

Это очень-очень хороший ответ! – Genevios