我正在使用MPMoviePlayerViewController
播放视频。
我将重复模式设为MPMovieRepeatModeOne
,以便视频可以循环播放。
是否有任何方法可用于获取播放视频的重复次数。
答案 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
将不在循环。
乍一看,您应该存储播放器的先前状态,例如:
[stateCurrentTime(PLAY)]> (playingDuration - 1秒)==>视频结束
[stateCurrentTime(PAUSED)]< 0.5秒==>前视频和新视频之间的过渡状态
[stateCurrentTime(PLAY)]< 1秒==>新视频的开头。
...如果有人成功找到使用MPMoviePlayerPlaybackDidFinishNotification
的方法,我肯定会对此感兴趣,因为此通知的行为不会与重复模式一起使用。