| 
					
				 | 
			
			
				@@ -363,6 +363,16 @@ class PQStuckPointEditerController: PQBaseViewController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 self?.maxSpeed = maxSpeed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 self?.minSpeed = minSpeed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 BFLog(message: "自定义速度maxSpeed is\(maxSpeed) minSpeed \(minSpeed) \(isJumpSpeedModel)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //自定定义的更新一下最后的选择位置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if self?.speedSettingView.viewType == 1{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    self?.lastSpeedSelectIndex = -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else if self?.speedSettingView.viewType == 2{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    self?.lastJumpSpeedSelectIndex = -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    self?.lastCyclesSelectIndex = Int(maxSpeed - 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 self?.settingPlayerView() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //确认后 选中自定义 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 self?.speedSettingView.selectCustom() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1069,8 +1079,6 @@ extension PQStuckPointEditerController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 推荐卡点数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let beginDecoderTime: TimeInterval = Date().timeIntervalSince1970 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 保存滤镜对象数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var stickers: Array = Array<PQEditVisionTrackMaterialsModel>.init() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for section in sections { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1170,12 +1178,8 @@ extension PQStuckPointEditerController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     if totalClipNum  + clipindex + 1 < finallyStuckPoints.count { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         deepCopySticker?.speedRate = tempSpeed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         // 定义临时使用的变量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         // 素材显示的开始时间和结束时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         let tempTimelineIn = Float64(finallyStuckPoints[totalClipNum + clipindex]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         let timelineOut = Float64(finallyStuckPoints[totalClipNum + 1 + clipindex]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                          
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1339,7 +1343,7 @@ extension PQStuckPointEditerController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var i: Int = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // L/(n+1)  L -原视觉素材总时长  n-抛留倍数  lastJumpSpeedSelectIndex 是位置 对应的值要+1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //根据公式计划出的总时长 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let jumpTime = Float(selectedTotalDuration) / Float(lastJumpSpeedSelectIndex + 2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let jumpTime = Float(selectedTotalDuration) / Float(maxSpeed + 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //只有图片素材时会为0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(jumpTime > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 while useAssestDuration < Float(jumpTime) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1511,11 +1515,11 @@ extension PQStuckPointEditerController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var pointIndex = stuckPointsTemp.firstIndex(where: { (point) -> Bool in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 (point == (finallyStuckPoints.last ?? 0).truncatingRemainder(dividingBy: (stuckPointsTemp.last ?? 0))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            pointIndex = (pointIndex ?? 0) + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pointIndex = (pointIndex ?? 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var tempStartTime:Float = -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var tempEndTime:Float = -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for i in 0 ... selectedImageDataCount - 1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for i in 0 ... selectedImageDataCount { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let a = stuckPointsTemp[(i + Int(pointIndex ?? 0)) % stuckPointsTemp.count] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let b = Float((i + Int(pointIndex ?? 0)) / stuckPointsTemp.count) * (stuckPointsTemp.first ?? 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 finallyStuckPoints.append(a + b) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1534,20 +1538,20 @@ extension PQStuckPointEditerController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             speedSettingView.viewType = 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // lastCyclesSelectIndex != -1 已经设置过循环次数 应该是手动设置的值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if lastCyclesSelectIndex != -1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(lastCyclesSelectIndex != 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for i in 0 ... lastCyclesSelectIndex - 1{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        var pointIndex = stuckPointsTemp.firstIndex(where: { (point) -> Bool in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            (point == (finallyStuckPoints.last ?? 0).truncatingRemainder(dividingBy: (stuckPointsTemp.last ?? 0))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        pointIndex = (pointIndex ?? 0) + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for i in 0 ... selectedImageDataCount { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            let a = stuckPointsTemp[(i + Int(pointIndex ?? 0)) % stuckPointsTemp.count] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            let b = Float((i + Int(pointIndex ?? 0)) / stuckPointsTemp.count) * (stuckPointsTemp.first ?? 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            finallyStuckPoints.append(a + b) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if lastCyclesSelectIndex != -1 {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //纯图片时 已经默认添加一次循环 所以要用lastCyclesSelectIndex - 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for i in 0 ..< lastCyclesSelectIndex{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var pointIndex = stuckPointsTemp.firstIndex(where: { (point) -> Bool in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        (point == (finallyStuckPoints.last ?? 0).truncatingRemainder(dividingBy: (stuckPointsTemp.last ?? 0))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    pointIndex = (pointIndex ?? 0) + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for i in 0 ... selectedImageDataCount { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let a = stuckPointsTemp[(i + Int(pointIndex ?? 0)) % stuckPointsTemp.count] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let b = Float((i + Int(pointIndex ?? 0)) / stuckPointsTemp.count) * (stuckPointsTemp.first ?? 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        finallyStuckPoints.append(a + b) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 lastCyclesSelectIndex = 0 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1557,7 +1561,7 @@ extension PQStuckPointEditerController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         (point == (finallyStuckPoints.last ?? 0).truncatingRemainder(dividingBy: (stuckPointsTemp.last ?? 0))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     pointIndex = (pointIndex ?? 0) + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for i in 0 ... selectedImageDataCount - 1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for i in 0 ... selectedImageDataCount { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let a = stuckPointsTemp[(i + Int(pointIndex ?? 0)) % stuckPointsTemp.count] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let b = Float((i + Int(pointIndex ?? 0)) / stuckPointsTemp.count) * (stuckPointsTemp.first ?? 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         finallyStuckPoints.append(a + b) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1599,7 +1603,7 @@ extension PQStuckPointEditerController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             finallyUserAudioTime = Float(finallyStuckPoints.last ?? 0) + (Float(CMTimeGetSeconds(asset.duration)) - Float(lastSecondPoint)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        playeTimeRange = CMTimeRange(start: CMTime(value: CMTimeValue(Float(stuckPointMusicData?.startTime ?? 0) * Float(BASE_FILTER_TIMESCALE)), timescale: BASE_FILTER_TIMESCALE), end: CMTime(value: CMTimeValue((Float(finallyStuckPoints.last ?? 0)) * Float(BASE_FILTER_TIMESCALE)), timescale: BASE_FILTER_TIMESCALE)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        playeTimeRange = CMTimeRange(start: CMTime(value: CMTimeValue(Float(finallyStuckPoints.first ?? 0) * Float(BASE_FILTER_TIMESCALE)), timescale: BASE_FILTER_TIMESCALE), end: CMTime(value: CMTimeValue((Float(finallyStuckPoints.last ?? 0)) * Float(BASE_FILTER_TIMESCALE)), timescale: BASE_FILTER_TIMESCALE)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (index, usePoint) in finallyStuckPoints.enumerated() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BFLog(message: "测试人员最后使用的卡点信息 \(index) : \(usePoint)") 
			 |