2010-07-15 2 views
1

У меня возникла проблема с подключением видео в ipad. Мой код отлично работает, я имею в виду, что он воспроизводит видео, но как только видео дойдет до конца. Метод обратного вызова не вызывается.iPad videoPlayerDidFinishPlaying метод обратного вызова не отвечает

Этот метод вызывается при нажатии кнопки воспроизведения видео.

-(IBAction) playVideo : (id) sender 
{ 
    [self initPlayingVideo:@"toyVid.mp4"]; 
} 

Этот метод обрабатывает воспроизведение видео.

-(void) initPlayingVideo: (NSString *) videoFile 
{ 
    NSString *moviePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:videoFile]; 

    theMovie = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:moviePath]]; 
    theMovie.moviePlayer.scalingMode = MPMovieScalingModeAspectFit; 
    theMovie.moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 


    [self.view addSubview:theMovie.view]; 

    [[NSNotificationCenter defaultCenter] 
    addObserver:self 
    selector:@selector(videoPlayerDidFinishPlaying 
    name:MPMoviePlayerPlaybackDidFinishNotification 
    object:theMovie]; 

    videoPlayer = [theMovie moviePlayer]; 
    [videoPlayer play]; 
} 

Это метод обратного вызова.

-(void) videoPlayerDidFinishPlaying: (NSNotification*)aNotification 
{ 
    theMovie = [aNotification object]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie.moviePlayer]; 
    [videoPlayer stop]; 
    [theMovie.moviePlayer release]; 
    [videoPlayer release]; 
    [theMovie.view removeFromSuperview]; 
} 

Где я ошибаюсь? Пожалуйста, направляйте.

С уважением Ranjan

+0

Вы можете рассмотреть возможность размещения ваших кодов в разделах кода: просто поместите четыре пробела перед вашими кодами. –

ответ

0

Вы пропустите: а) в вашем селекторе? Я думаю) может быть вашей опечаткой, иначе вы не сможете скомпилировать свои коды. Ваш выбор принимает один параметр. Это должно быть:

selector:@selector(videoPlayerDidFinishPlaying:) 

Это будет соответствовать вашему методу экземпляра. Думаю, у вас нет одного без параметра.

+0

Спасибо за ваш ответ Дэвид. Функция прослушивателя как указано ниже. двоеточие (:) и закрывающая скобка ")" есть. [[NSNotificationCenter defaultCenter] \t addObserver: автономный \t селектор: @selector (videoPlayerDidFinishPlaying :) \t Название: MPMoviePlayerPlaybackDidFinishNotification \t объекта: theMovie]; – TechBee

+0

Объект был неправильным. Объект: [theMovie moviePlayer]; – TechBee

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