| 
					
				 | 
			
			
				@@ -60,7 +60,7 @@ class PQStuckPointEditerController: PQBaseViewController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 跳跃卡点最后一次选择的速度位置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     var lastJumpSpeedSelectIndex: Int = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 循环次数设置最后一次选择的位置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var lastCyclesSelectIndex: Int = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    var lastCyclesSelectIndex: Int = -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 当前选择的玩法模式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     var currentCreateStickersModel: createStickersModel = .createStickersModelSpeed 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -316,7 +316,7 @@ class PQStuckPointEditerController: PQBaseViewController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     lazy var speedSettingView: PQSpeedSettingView = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let speedSettingView = PQSpeedSettingView() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         speedSettingView.backgroundColor = .clear 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        speedSettingView.selectSpeedCallBack = { [weak self] maxSpeed, minSpeed, selectIndex, isSettingPlayer in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        speedSettingView.selectSpeedCallBack = { [weak self] maxSpeed, minSpeed, selectIndex, isSettingPlayer,isCancle in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BFLog(message: "固定maxSpeed is\(maxSpeed) minSpeed \(minSpeed)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 更新最后一次选择的位置恢复时使用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if speedSettingView.viewType == 1 { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -330,7 +330,7 @@ class PQStuckPointEditerController: PQBaseViewController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self?.minSpeed = minSpeed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if maxSpeed == -1.0 && minSpeed == -1.0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 self?.customSpeedSettingView.isHidden = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                self?.customSpeedSettingView.isJumpSpeedModel = speedSettingView.viewType == 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                self?.customSpeedSettingView.viewType = speedSettingView.viewType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if isSettingPlayer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 self?.settingPlayerView() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -344,8 +344,7 @@ class PQStuckPointEditerController: PQBaseViewController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     lazy var customSpeedSettingView: PQCustomSpeedSettingView = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let customSpeedSettingView = PQCustomSpeedSettingView(frame: CGRect(x: 0, y: cScreenHeigth - 354, width: cScreenWidth, height: 354)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         customSpeedSettingView.isHidden = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        customSpeedSettingView.isJumpSpeedModel = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        customSpeedSettingView.selectSpeedCallBack = { [weak self] maxSpeed, minSpeed, isJumpSpeedModel in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        customSpeedSettingView.selectSpeedCallBack = { [weak self] maxSpeed, minSpeed, isJumpSpeedModel ,isCancle in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self?.maxSpeed = maxSpeed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self?.minSpeed = minSpeed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BFLog(message: "自定义速度maxSpeed is\(maxSpeed) minSpeed \(minSpeed) \(isJumpSpeedModel)") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -494,7 +493,7 @@ class PQStuckPointEditerController: PQBaseViewController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 1 ui 调整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if sender.tag == 1 || sender.tag == 2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             speedSettingView.viewType = sender.tag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            customSpeedSettingView.isJumpSpeedModel = speedSettingView.viewType == 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customSpeedSettingView.viewType = speedSettingView.viewType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             speedSettingView.snp.remakeConstraints { make in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 make.left.equalToSuperview().offset(16) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -515,7 +514,7 @@ class PQStuckPointEditerController: PQBaseViewController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 2素材全是图片的时候三个模式都显示循环设置 UI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if selectedDataCount == selectedImageDataCount { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             speedSettingView.viewType = 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            customSpeedSettingView.isJumpSpeedModel = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            customSpeedSettingView.viewType = speedSettingView.viewType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             speedSettingView.snp.remakeConstraints { make in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 make.left.equalToSuperview().offset(16) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 make.right.equalToSuperview() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -527,7 +526,7 @@ class PQStuckPointEditerController: PQBaseViewController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             editModelLineView.isHidden = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             speedTitleLab.isHidden = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sustomSwitchView.isHidden = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            speedSettingView.setSelectItem(index: lastCyclesSelectIndex, isSettingPlayer: false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            speedSettingView.setSelectItem(index: lastCyclesSelectIndex, isSettingPlayer: false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if sender.tag == 1 { // 快慢速 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -535,7 +534,7 @@ class PQStuckPointEditerController: PQBaseViewController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else if sender.tag == 2 { // 跳跃卡点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 speedSettingView.setSelectItem(index: lastJumpSpeedSelectIndex, isSettingPlayer: false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else if sender.tag == 3 { // 仅音乐 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                customSpeedSettingView.isJumpSpeedModel = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                customSpeedSettingView.isJumpSpeedModel = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1223,6 +1222,7 @@ extension PQStuckPointEditerController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 已经取到的视频素材总长度,用于和原视频素材时长做对比,不够多加一个点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var useAssestDuration: Float = 0.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        selectedTotalDuration = 0.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         switch model { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         case .createStickersModelPoint: // 跳跃卡点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             stuckPointsTemp = getUsedStuckPoint(seed: stuckPointMusicData?.speed ?? 0) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1384,20 +1384,23 @@ extension PQStuckPointEditerController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             speedSettingView.viewType = 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // lastCyclesSelectIndex 应该是手动设置的值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            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 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                lastCyclesSelectIndex = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lastCyclesSelectIndex = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 while selectedTotalDuration < 10 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 不够10S 时 一次加图片数量的卡点数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     var pointIndex = stuckPointsTemp.firstIndex(where: { (point) -> Bool in 
			 |