在视频的startTime和endTime之间的某处使用MPMoviePlayerController循环视频

时间:2014-07-16 12:54:42

标签: ios iphone xcode video mpmovieplayercontroller

假设视频时长为50秒。需要在10秒到20秒之间循环部分视频。 我第一次播放视频时效果很好。但是对于第二次迭代,视频从一开始就播放(即从第0秒而不是第10秒)。 以下是我的代码:

    self.moviePlayer =  [[MPMoviePlayerController alloc]
                    initWithContentURL:currentVideoURL];
    self.moviePlayer.controlStyle = MPMovieControlStyleNone;
    self.moviePlayer.scalingMode = MPMovieScalingModeAspectFill;
    [self.moviePlayer.view setFrame: movieView.bounds];
    [self.moviePlayer.view setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
    [self.moviePlayer setInitialPlaybackTime:10.0];
    [self.moviePlayer setEndPlaybackTime:20.0];
    [self.moviePlayer prepareToPlay];
    self.moviePlayer.shouldAutoplay = YES;

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayerDidFinish:)
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification
                                               object:self.moviePlayer];

    [self.movieView addSubview:moviePlayer.view];



- (void)moviePlayerDidFinish:(NSNotification *)note {

   if (note.object == self.moviePlayer) {
    NSInteger reason = [[note.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue];

    if (reason == MPMovieFinishReasonPlaybackEnded) {

     //   [self.moviePlayer setInitialPlaybackTime:10.0];
     //   [self.moviePlayer setEndPlaybackTime:20.0];
        [self.moviePlayer play];
    }
  }
}

此外,我尝试按InitialPlaybackTime方法重置EndPlaybackTimemoviePlayerDidFinish,但没有效果。

根据要求,我只需要循环播放视频的特定部分。 请帮帮我..谢谢!!!

1 个答案:

答案 0 :(得分:0)

设置MPMoviePlayerController self.movi​​ePlayer的属性repeatMode = MPMovieRepeatModeOne。

self.moviePlayer repeatMode = MPMovieRepeatModeOne;

参见示例

-(void)playMovie:(id)sender
{
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"1" ofType:@"MOV"]];

_moviePlayer =  [[MPMoviePlayerController alloc]
                 initWithContentURL:url];

_moviePlayer.controlStyle = MPMovieControlStyleDefault;
_moviePlayer.shouldAutoplay = YES;
_moviePlayer.initialPlaybackTime = 3.0;
_moviePlayer.endPlaybackTime = 5.0;
_moviePlayer.repeatMode = MPMovieRepeatModeOne;
[self.view addSubview:_moviePlayer.view];
[_moviePlayer setFullscreen:YES animated:YES];

}