| 
					
				 | 
			
			
				@@ -7,6 +7,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #import "KSVideoPlayerView.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #import <AVFoundation/AVFoundation.h> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#import <CloudAccompanyLibrary/AVPlayer+KSSeekSmoothly.h> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @interface KSVideoPlayerView () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -97,10 +99,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [_videoPlayer pause]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     _isPlaying = YES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    MJWeakSelf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @weakObj(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     CMTime toleranceTime = kCMTimeZero; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    [_videoPlayer seekToTime:kCMTimeZero toleranceBefore:toleranceTime toleranceAfter:toleranceTime completionHandler:^(BOOL finished) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [weakSelf.videoPlayer play]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [_videoPlayer ss_seekToTime:kCMTimeZero toleranceBefore:toleranceTime toleranceAfter:toleranceTime completionHandler:^(BOOL finished) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @strongObj(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [self.videoPlayer play]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -130,7 +133,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - (void)seekToStart { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     CMTime toleranceTime = CMTimeMake(1, 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    [_videoPlayer seekToTime:kCMTimeZero toleranceBefore:toleranceTime toleranceAfter:toleranceTime completionHandler:^(BOOL finished) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [_videoPlayer ss_seekToTime:kCMTimeZero toleranceBefore:toleranceTime toleranceAfter:toleranceTime completionHandler:^(BOOL finished) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -141,20 +144,26 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [_videoPlayer pause]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     _isPlaying = YES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    MJWeakSelf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     CMTime offsetCTTime = CMTimeMake(labs(time), 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     CMTime toleranceTime = CMTimeMake(1, 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    [_videoPlayer seekToTime:offsetCTTime toleranceBefore:toleranceTime toleranceAfter:toleranceTime completionHandler:^(BOOL finished) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [weakSelf.videoPlayer play]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @weakObj(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [_videoPlayer ss_seekToTime:offsetCTTime toleranceBefore:toleranceTime toleranceAfter:toleranceTime completionHandler:^(BOOL finished) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @strongObj(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [self.videoPlayer play]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - (void)seekOffsetTime:(NSInteger)offsetTime { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     CMTime newTime = CMTimeMake(offsetTime, 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     CMTime toleranceTime = CMTimeMake(1, 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    [_videoPlayer seekToTime:newTime toleranceBefore:toleranceTime toleranceAfter:toleranceTime completionHandler:^(BOOL finished) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [self.videoPlayer pause]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @weakObj(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [self.videoPlayer ss_seekToTime:newTime toleranceBefore:toleranceTime toleranceAfter:toleranceTime completionHandler:^(BOOL finished) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @strongObj(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (self.isPlaying) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            [self.videoPlayer play]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -240,6 +249,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case AVPlayerStatusReadyToPlay:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 NSLog(@"准备完毕,可以播放"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 dispatch_main_sync_safe(^{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    self.isReady = YES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (self.delegate && [self.delegate respondsToSelector:@selector(videoPlayerIsReadyPlay:)]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         [self.delegate videoPlayerIsReadyPlay:self.videoPlayer]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 |