我正在使用MPMoviePlayerViewController
.
我有重复模式,MPMovieRepeatModeOne
以便视频可以循环播放。
有什么方法可以用来获取播放视频的重复次数。
我正在使用MPMoviePlayerViewController
.
我有重复模式,MPMovieRepeatModeOne
以便视频可以循环播放。
有什么方法可以用来获取播放视频的重复次数。
据我所知,您不能将MPMoviePlayerPlaybackDidFinishNotification
与重复模式一起使用,因为只有在您退出视频时才会触发它,而不是在您重复时触发。
如果您使用重复模式,由于MPMoviePlayerPlaybackStateDidChangeNotification
但didFinishNotification
不会在循环中。
乍一看,您应该存储播放器以前的状态以遵循这种模式,例如:
[stateCurrentTime (PLAY)] > (playingDuration - 1 sec) ==> 视频结束
[stateCurrentTime (PAUSED)] < 0.5 秒 ==> 旧视频和新视频之间的过渡状态
[stateCurrentTime (PLAY)] < 1 sec ==> 新视频的开头。
...如果有人成功找到使用 的方法MPMoviePlayerPlaybackDidFinishNotification
,我肯定会对它感兴趣,因为此通知的行为与重复模式不相符。
您可以添加通知:
[[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!");
}
}
}