之前寫過一個禁止視頻快進的實現(xiàn)
有新需求要求只播放視頻的前五分鐘
看了幫助說明,好像也找不到MPMoviePlayerController有屬性能控制播放視頻的前五分鐘呵俏,網(wǎng)上也基本上沒有實現(xiàn)這種需求的方法
自己想了個解決方法堆缘,設置一個延時方法五分鐘之后執(zhí)行結(jié)束視頻播放,
當視頻快進或者快退之后重新設置方法的延時時間普碎,
這個辦法能滿足需求吼肥,但覺得解決的不是很優(yōu)雅,不知道各位大神有什么更好的思路解決
上代碼
#define FiveMinTime 300.0
- (void)addNotifictionListener
{
[kNotificationCenter addObserver:self selector:@selector(getVideoPlayState) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];
[MBProgressHUD showMessage:@"免費試看5分鐘,購買課程可以觀看完整視頻"];
}
//檢測視頻播放狀態(tài)改變
-(void)getVideoPlayState{
//視頻恢復正在播放時
if (self.videoController.playbackState == MPMoviePlaybackStatePlaying){
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(videoStopInFiveMin) object:nil];
//快進超過五分鐘時缀皱,直接結(jié)束視頻播放
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];
}
}
}
//視頻結(jié)束方法
-(void)videoStopInFiveMin{
[self.videoController stop];
[MBProgressHUD showMessage:@"免費試看5分鐘,購買課程可以觀看完整視頻"];
}
小白總結(jié)啤斗,歡迎打臉指正