Должен автоматически воспроизводиться на MoviePlayerController

#ios #mpmovieplayercontroller #autoplay

#iOS #mpmovieplayercontroller #автозапуск

Вопрос:

Я новый разработчик, поэтому я все еще учусь и знаю, что делаю некоторые вещи неправильно. У меня есть сегментированный объект управления, в котором, когда пользователь нажимает на один из сегментов, он переходит к воспроизведению видео. Я настроил его так, чтобы они нажимали сегмент, а затем должны были нажать кнопку воспроизведения, чтобы начать воспроизведение видео. Я хочу вырезать кнопку воспроизведения и заставить ее воспроизводиться автоматически. Вот тут у меня возникли проблемы. Я нашел опцию 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];
}
  

Ответ №1:

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

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

 [self presentMoviePlayerViewControllerAnimated:theMovie];
  

Ответ №2:

Не воспроизводите видео, просто подготовьте его к воспроизведению и установите 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
}
  

Комментарии:

1. Пожалуйста, используйте Ctrl K, чтобы сделать отступ в вашем коде на 4 пробела, чтобы он отображался правильно. Спасибо.