Следует в автоматическом режиме на MoviePlayerController - PullRequest
0 голосов
/ 09 октября 2011

Я новый разработчик, поэтому я все еще учусь и знаю, что делаю что-то не так.У меня есть сегментированный объект управления, в котором, когда пользователь нажимает один из сегментов, он начинает воспроизводить видео.У меня есть настройки, где они нажимают сегмент, а затем должны нажать кнопку воспроизведения, чтобы получить видео для воспроизведения.Я хочу отключить кнопку воспроизведения и заставить ее играть автоматически.Вот где у меня проблемы.Я нашел опцию shouldAutoplay, но когда я использую ее и вырезаю кнопку, она вообще не приведет меня к видео.Я уверен, что не правильно использую опцию shouldAutoplay.Надеялся на некоторую помощь или хотя бы точку в правильном направлении.

- (IBAction)playMovie:(id)sender;

{
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *moviePath = [bundle pathForResource:@"mytestimony" ofType:@"m4v"];
    NSURL *movieURL = [[NSURL fileURLWithPath:moviePath] retain];
    MPMoviePlayerController *theMovie = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
    theMovie.shouldAutoplay = YES;
    theMovie.scalingMode = MPMovieScalingModeAspectFill;
    [theMovie autorelease];
    MPMoviePlayerViewController *moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
    [self presentMoviePlayerViewControllerAnimated:moviePlayer];
}

Ответы [ 2 ]

2 голосов
/ 27 апреля 2013

Не воспроизводите видео, просто подготовьте его к воспроизведению и укажите shouldAutoPlay как NO, поскольку вы не хотите, чтобы видео проигрыватель воспроизводил его автоматически.

-(void) SetVideoFile:(NSString *)fileName {

    videoFileName=fileName;
    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:fileName]];

    moviePlayer.initialPlaybackTime = 0;
    moviePlayer.view.frame = self.view.frame ;
    [orientationHandler VideoStart];
    [self.view addSubview:moviePlayer.view] ;
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:moviePlayer];
    moviePlayer.shouldAutoplay = NO;
    [moviePlayer prepareToPlay];
}

-(void)moviePlaybackDidFinish:(NSNotification *)notification {

    // your custom code which you want to play after the player did finish playing
}
2 голосов
/ 02 сентября 2012

Вы пробовали [theMovie play];?

ОБНОВЛЕНИЕ: Я только что заметил, что вы установили shouldAutoplay в theMovie, но вы представили еще один экземпляр MPMoviePlayerViewController, которыйэто moviePlayer.Вот почему ваш фильм не воспроизводился автоматически.Вместо этого вы должны иметь:

[self presentMoviePlayerViewControllerAnimated:theMovie];
...