#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 пробела, чтобы он отображался правильно. Спасибо.