MPMoviePlayerViewController重复计数

时间:2013-08-21 06:16:58

标签: ios count movieplayer

我正在使用MPMoviePlayerViewController播放视频。

我将重复模式设为MPMovieRepeatModeOne,以便视频可以循环播放。

是否有任何方法可用于获取播放视频的重复次数。

2 个答案:

答案 0 :(得分:1)

您可以添加通知:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(introMovieFinished:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:self.moviePlayerController];

然后使用此通知检测视频何时完成循环:

- (void)introMovieFinished:(NSNotification *)notification
{
    if (notification.object == self.moviePlayerController) {
        NSInteger reason = [[notification.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue];
        if (reason == MPMovieFinishReasonPlaybackEnded)
        {
            NSLog(@"Video has looped!");
        }
    }
}

答案 1 :(得分:1)

据我所知,您不能在重复模式下使用MPMoviePlayerPlaybackDidFinishNotification,因为只有在您退出视频时才会触发它,而不是重复播放。

如果您使用重复模式,则只会更改状态[=>播放(以前的视频结束)... PAUSED(以前的视频)...播放(新视频的开头)]感谢MPMoviePlayerPlaybackStateDidChangeNotification,但didFinishNotification将不在循环。

乍一看,您应该存储播放器的先前状态,例如:

  1. [stateCurrentTime(PLAY)]> (playingDuration - 1秒)==>视频结束

  2. [stateCurrentTime(PAUSED)]< 0.5秒==>前视频和新视频之间的过渡状态

  3. [stateCurrentTime(PLAY)]< 1秒==>新视频的开头。

  4. ...如果有人成功找到使用MPMoviePlayerPlaybackDidFinishNotification的方法,我肯定会对此感兴趣,因为此通知的行为不会与重复模式一起使用。