2011-12-16 2 views
1

У меня есть MPMoviePlayerViewController, который я вызываю, используя presentModalViewController:animated:. Когда есть ошибка (нет подключения к интернету), я хочу ее отклонить. Однако dismissModalViewController, похоже, не работает в этом случае.ОтклонитьModalViewController не работает, когда нет подключения к Интернету MPMoviePlayerViewController

- (void)movieFinishedCallback:(NSNotification*)aNotification 
{  
    NSLog(@"MOVIE FINISH CALL"); 

    // Obtain the reason why the movie playback finished 
    NSNumber *finishReason = [[aNotification userInfo] objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey];  
    // Dismiss the view controller ONLY when the reason is not "playback ended" 

    if ([finishReason intValue] != MPMovieFinishReasonPlaybackEnded) 
    {  

     NSlog(@"Check go here"); 
     MPMoviePlayerController *moviePlayer = [aNotification object];  
     [[NSNotificationCenter defaultCenter] removeObserver:self 
                 name:MPMoviePlayerPlaybackDidFinishNotification 
                 object:moviePlayer];   
     [self dismissModalViewControllerAnimated:YES]; 
    } 
    else{ 
     [self dismissModalViewControllerAnimated:YES];   
    } 
} 



- (void)playPodcastRadio:(NSString *) urlRadio 
{ 
    // Initialize the movie player view controller with a video URL string 

    MPMoviePlayerViewController* mediaPlayer = [[MPMoviePlayerViewController alloc]initWithContentURL:[NSURL URLWithString:urlRadio]]; 
    mediaPlayer.moviePlayer.movieSourceType = MPMovieSourceTypeUnknown; 

    [[NSNotificationCenter defaultCenter] removeObserver:mediaPlayer name:MPMoviePlayerPlaybackDidFinishNotification object:mediaPlayer.moviePlayer]; 

    // Register this class as an observer instead  
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:mediaPlayer.moviePlayer]; 

    mediaPlayer.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
    // Present the movie player view controller  
    [self presentModalViewController:mediaPlayer animated:YES]; 

    [mediaPlayer.moviePlayer prepareToPlay]; 
    [mediaPlayer.moviePlayer play]; 
} 

Обработчик уведомления называется и достигает журнала Check go here. Но он не отклоняет modalViewController. Кто-нибудь может мне помочь?

Спасибо

Это происходит на прошивке 4.3 и прошивке 5

+0

Я предполагаю, что вы проверили, будет ли ваша функция movieFinishedCallback: вызывается в случае отсутствия подключения к интернету? – Niko

+0

yep это называется. он распечатывает чек. Перейдите сюда. но фильм не уволен :( –

+0

Не должно быть [moviePlayer rejectModalViewControllerAnimated: YES];? (я не уверен) – Niko

ответ

1

Не уверен, что если вы все еще ищете ответ. Per Apple doc: http://developer.apple.com/library/ios/#documentation/MediaPlayer/Reference/MPMoviePlayerViewController_class/Reference/Reference.html#//apple_ref/occ/cl/MPMoviePlayerViewController

«Чтобы отклонить представленный модально представленный контроллер просмотра фильма, вызовите метод rejectMoviePlayerViewControllerAnimated.

Смежные вопросы