直播iOS Developer

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分钟,购买课程可以观看完整视频"];
}


小白总结,欢迎打脸指正

上一篇 下一篇

猜你喜欢

热点阅读