MPMoviePlayerController 实现播放视频前五
2017-08-04 本文已影响91人
Chase_Eleven
之前写过一个禁止视频快进的实现
有新需求要求只播放视频的前五分钟
看了帮助说明,好像也找不到MPMoviePlayerController有属性能控制播放视频的前五分钟,网上也基本上没有实现这种需求的方法
自己想了个解决方法,设置一个延时方法五分钟之后执行结束视频播放,
当视频快进或者快退之后重新设置方法的延时时间,
这个办法能满足需求,但觉得解决的不是很优雅,不知道各位大神有什么更好的思路解决
上代码
#define FiveMinTime 300.0
- (void)addNotifictionListener
{
[kNotificationCenter addObserver:self selector:@selector(getVideoPlayState) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];
[MBProgressHUD showMessage:@"免费试看5分钟,购买课程可以观看完整视频"];
}
//检测视频播放状态改变
-(void)getVideoPlayState{
//视频恢复正在播放时
if (self.videoController.playbackState == MPMoviePlaybackStatePlaying){
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(videoStopInFiveMin) object:nil];
//快进超过五分钟时,直接结束视频播放
if (self.videoController.currentPlaybackTime >= FiveMinTime)
[self videoStopInFiveMin];
//视频未超过五分钟,重置延时方法
else{
NSTimeInterval afterTime = FiveMinTime - self.videoController.currentPlaybackTime;
[self performSelector:@selector(videoStopInFiveMin) withObject:nil afterDelay:afterTime];
[self.videoController setCurrentPlaybackTime:self.videoController.currentPlaybackTime];
[self.videoController play];
}
}
}
//视频结束方法
-(void)videoStopInFiveMin{
[self.videoController stop];
[MBProgressHUD showMessage:@"免费试看5分钟,购买课程可以观看完整视频"];
}
小白总结,欢迎打脸指正