Принудительный запуск метода moviePlaybackComplete - PullRequest
0 голосов
/ 11 августа 2011

извините за заголовок вопроса.Не знал как это назвать.Вот мои проблемы.Я загружаю видео в приложение для iPad.Он открыт в виде лайтбокса.Видео воспроизводится правильно.Теперь, когда я касаюсь фона, видео должно закрываться и выпускаться так же, как когда видео закончено (moviePlaybackComplete) И я не знаю, как это сделать.Вот мой код:

    - (IBAction)playVideo:(id)sender
{
    UIButton *playButton = (UIButton *) sender; 

    NSString *filepath = [[NSBundle mainBundle] pathForResource:@"mymovie" ofType:@"mp4"];
    NSURL    *fileURL  = [NSURL fileURLWithPath:filepath];
    moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackComplete:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:moviePlayerController];

    [moviePlayerController.view setFrame:CGRectMake(playButton.frame.origin.x,
                                                    playButton.frame.origin.y,
                                                    640,
                                                    360)];

    [self.view addSubview:moviePlayerController.view];

    [moviePlayerController play];
}

- (void)moviePlaybackComplete:(NSNotification *)notification
{
    MPMoviePlayerController *moviePlayerController = [notification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:moviePlayerController];

    [moviePlayerController.view removeFromSuperview];
    [moviePlayerController release];
}

- (IBAction)hideVideo:(id)sender
{
    if(fadeView.hidden == NO){
        [UIView beginAnimations:nil context:nil]; 
        [UIView setAnimationDuration:0.75];
        [UIView setAnimationDelegate:self];
        [UIView setAnimationDidStopSelector:@selector(finishedVideoFading)];
        fadeView.alpha = 0;
        [UIView commitAnimations];  

        [moviePlayerController stop];
        [moviePlayerController.view removeFromSuperview];
        [moviePlayerController release];
    }
}

1 Ответ

0 голосов
/ 17 августа 2011

Это "лайтбокс" контроллер вида? Если да, то когда видео закончится, закройте вид.

[[self navigationController] popViewControllerAnimated: YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...