| 
														
															@@ -1113,9 +1113,10 @@ extension PQStuckPointEditerController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                       deepCopySticker?.speedRate = tempSpeed 
														 | 
														
														 | 
														
															                                       deepCopySticker?.speedRate = tempSpeed 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                       //定义临时使用的变量 
														 | 
														
														 | 
														
															                                       //定义临时使用的变量 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      //素材分割的开始时间和结束时间 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                       let tempModel_In = lastOutTime 
														 | 
														
														 | 
														
															                                       let tempModel_In = lastOutTime 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                       let tempOut = lastOutTime + Float64(tempSpeed) * Float64(finallyStuckPoints[totalClipNum + 1 + clipindex] - finallyStuckPoints[totalClipNum + clipindex]) 
														 | 
														
														 | 
														
															                                       let tempOut = lastOutTime + Float64(tempSpeed) * Float64(finallyStuckPoints[totalClipNum + 1 + clipindex] - finallyStuckPoints[totalClipNum + clipindex]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      //素材显示的开始时间和结束时间 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                       let tempTimelineIn = Float64(finallyStuckPoints[totalClipNum + clipindex]) 
														 | 
														
														 | 
														
															                                       let tempTimelineIn = Float64(finallyStuckPoints[totalClipNum + clipindex]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                       let timelineOut = Float64(finallyStuckPoints[totalClipNum + 1 + clipindex]) 
														 | 
														
														 | 
														
															                                       let timelineOut = Float64(finallyStuckPoints[totalClipNum + 1 + clipindex]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1251,22 +1252,19 @@ extension PQStuckPointEditerController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //注意推荐时间位置和后面最近的卡点时间与0.3的关系 
														 | 
														
														 | 
														
															         //注意推荐时间位置和后面最近的卡点时间与0.3的关系 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //保存丢卡点处理后的卡点信息推荐开始到最后倒数第二个 
														 | 
														
														 | 
														
															         //保存丢卡点处理后的卡点信息推荐开始到最后倒数第二个 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let stuckPointsTemp:Array<Float> 
														 | 
														
														 | 
														
															         let stuckPointsTemp:Array<Float> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-   
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //最后真正要使用推荐结束时长 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        var realUsedMusicDuration:Float = 0.0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //已经取到的视频素材总长度,用于和原视频素材时长做对比,不够多加一个点 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        var useAssestDuration:Float = 0.0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         switch model { 
														 | 
														
														 | 
														
															         switch model { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         case .createStickersModelPoint://跳跃卡点 
														 | 
														
														 | 
														
															         case .createStickersModelPoint://跳跃卡点 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             stuckPointsTemp  = getUsedStuckPoint(seed: stuckPointMusicData?.speed ?? 0) 
														 | 
														
														 | 
														
															             stuckPointsTemp  = getUsedStuckPoint(seed: stuckPointMusicData?.speed ?? 0) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            // L/(n+1)  L -原视觉素材总时长  n-抛留倍数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            realUsedMusicDuration = Float(selectedTotalDuration) / (Float(maxSpeed) + 1) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-             
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+   
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //要拼接的段数 
														 | 
														
														 | 
														
															             //要拼接的段数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             var clipNum:Int = 0 
														 | 
														
														 | 
														
															             var clipNum:Int = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            //所有段的时长总和 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            var tempTime:Float = 0.0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            
														 | 
													
												
											
												
													
														| 
														 | 
														
															             var i:Int = 0 
														 | 
														
														 | 
														
															             var i:Int = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            while tempTime < Float(selectedTotalDuration) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // L/(n+1)  L -原视觉素材总时长  n-抛留倍数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            while useAssestDuration < Float(Float(selectedTotalDuration) / (Float(maxSpeed) + 1)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															              
														 | 
														
														 | 
														
															              
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //回环从头取 
														 | 
														
														 | 
														
															                 //回环从头取 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if(i+2 >= stuckPointsTemp.count){ 
														 | 
														
														 | 
														
															                 if(i+2 >= stuckPointsTemp.count){ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1274,11 +1272,11 @@ extension PQStuckPointEditerController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //快速段 
														 | 
														
														 | 
														
															                 //快速段 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 let LA =  (stuckPointsTemp[i+1] - stuckPointsTemp[i]) 
														 | 
														
														 | 
														
															                 let LA =  (stuckPointsTemp[i+1] - stuckPointsTemp[i]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                tempTime = tempTime + Float(LA) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if(tempTime > Float(selectedTotalDuration)){ break} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                useAssestDuration = useAssestDuration + Float(LA) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if(useAssestDuration > Float(selectedTotalDuration)){ break} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //慢速段 
														 | 
														
														 | 
														
															                 //慢速段 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 let LB = (stuckPointsTemp[i+2] - stuckPointsTemp[i+1]) 
														 | 
														
														 | 
														
															                 let LB = (stuckPointsTemp[i+2] - stuckPointsTemp[i+1]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                tempTime = tempTime + Float(LB) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                useAssestDuration = useAssestDuration + Float(LB) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 i = i + 1 
														 | 
														
														 | 
														
															                 i = i + 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 clipNum = clipNum + 1 
														 | 
														
														 | 
														
															                 clipNum = clipNum + 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1309,7 +1307,7 @@ extension PQStuckPointEditerController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             var i:Int = 0 
														 | 
														
														 | 
														
															             var i:Int = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             var LACount:Int = 0 
														 | 
														
														 | 
														
															             var LACount:Int = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             var LBCount:Int = 0 
														 | 
														
														 | 
														
															             var LBCount:Int = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            while realUsedMusicDuration < Float(selectedTotalDuration) && selectedTotalDuration != 0 { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            while useAssestDuration < Float(selectedTotalDuration) && selectedTotalDuration != 0 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															              
														 | 
														
														 | 
														
															              
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //回环从头取 
														 | 
														
														 | 
														
															                 //回环从头取 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if(i+2 > stuckPointsTemp.count){ 
														 | 
														
														 | 
														
															                 if(i+2 > stuckPointsTemp.count){ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1317,15 +1315,15 @@ extension PQStuckPointEditerController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //快速段 
														 | 
														
														 | 
														
															                 //快速段 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 let LA = maxSpeed * (stuckPointsTemp[i+1] - stuckPointsTemp[i]) 
														 | 
														
														 | 
														
															                 let LA = maxSpeed * (stuckPointsTemp[i+1] - stuckPointsTemp[i]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                realUsedMusicDuration = realUsedMusicDuration + Float(LA) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if(realUsedMusicDuration > Float(selectedTotalDuration)){ break} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                useAssestDuration = useAssestDuration + Float(LA) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if(useAssestDuration > Float(selectedTotalDuration)){ break} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 LACount = LACount + 1 
														 | 
														
														 | 
														
															                 LACount = LACount + 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                BFLog(message: "快速段段段段段段后LACount:\(LACount) realUsedMusicDuration:\(realUsedMusicDuration)") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                BFLog(message: "快速段段段段段段后LACount:\(LACount) realUsedMusicDuration:\(useAssestDuration)") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //慢速段 
														 | 
														
														 | 
														
															                 //慢速段 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 let LB = minSpeed * (stuckPointsTemp[i+2] - stuckPointsTemp[i+1]) 
														 | 
														
														 | 
														
															                 let LB = minSpeed * (stuckPointsTemp[i+2] - stuckPointsTemp[i+1]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                realUsedMusicDuration = realUsedMusicDuration + Float(LB) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                useAssestDuration = useAssestDuration + Float(LB) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 LBCount = LBCount + 1 
														 | 
														
														 | 
														
															                 LBCount = LBCount + 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                BFLog(message: "慢速段段段段段段后LACount:\(LACount) realUsedMusicDuration:\(realUsedMusicDuration)") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                BFLog(message: "慢速段段段段段段后LACount:\(LACount) realUsedMusicDuration:\(useAssestDuration)") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                  
														 | 
														
														 | 
														
															                  
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 i = i + 1 
														 | 
														
														 | 
														
															                 i = i + 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1337,7 +1335,7 @@ extension PQStuckPointEditerController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 finallyStuckPoints.append(a + b) 
														 | 
														
														 | 
														
															                 finallyStuckPoints.append(a + b) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   
														 | 
														
														 | 
														
															   
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            BFLog(message: "计算后的\(realUsedMusicDuration) LACount:\(LACount) LBCount \(LBCount) 估算时长为:\(selectedTotalDuration * 2 / Float64(maxSpeed + minSpeed))") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            BFLog(message: "计算后的\(useAssestDuration) LACount:\(LACount) LBCount \(LBCount) 估算时长为:\(selectedTotalDuration * 2 / Float64(maxSpeed + minSpeed))") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         
														 | 
														
														 | 
														
															         
														 | 
													
												
											
												
													
														| 
														 | 
														
															             break 
														 | 
														
														 | 
														
															             break 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         case .createStickersModelOnlyMusic://仅音乐 
														 | 
														
														 | 
														
															         case .createStickersModelOnlyMusic://仅音乐 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1345,10 +1343,8 @@ extension PQStuckPointEditerController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             stuckPointsTemp = getUsedStuckPoint(seed: 1) 
														 | 
														
														 | 
														
															             stuckPointsTemp = getUsedStuckPoint(seed: 1) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //要拼接的段数 
														 | 
														
														 | 
														
															             //要拼接的段数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             var clipNum:Int = 0 
														 | 
														
														 | 
														
															             var clipNum:Int = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            //所有段的时长总和 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            var tempTime:Float = 0.0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             var i:Int = 0 
														 | 
														
														 | 
														
															             var i:Int = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            while tempTime < Float(selectedTotalDuration) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            while useAssestDuration < Float(selectedTotalDuration) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															              
														 | 
														
														 | 
														
															              
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //回环从头取 
														 | 
														
														 | 
														
															                 //回环从头取 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if(i+2 >= stuckPointsTemp.count){ 
														 | 
														
														 | 
														
															                 if(i+2 >= stuckPointsTemp.count){ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1356,12 +1352,12 @@ extension PQStuckPointEditerController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //快速段 
														 | 
														
														 | 
														
															                 //快速段 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 let LA =  (stuckPointsTemp[i+1] - stuckPointsTemp[i]) 
														 | 
														
														 | 
														
															                 let LA =  (stuckPointsTemp[i+1] - stuckPointsTemp[i]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                tempTime = tempTime + Float(LA) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                useAssestDuration = useAssestDuration + Float(LA) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 clipNum = clipNum + 1 
														 | 
														
														 | 
														
															                 clipNum = clipNum + 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if(tempTime > Float(selectedTotalDuration)){ break} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if(useAssestDuration > Float(selectedTotalDuration)){ break} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //慢速段 
														 | 
														
														 | 
														
															                 //慢速段 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 let LB = (stuckPointsTemp[i+2] - stuckPointsTemp[i+1]) 
														 | 
														
														 | 
														
															                 let LB = (stuckPointsTemp[i+2] - stuckPointsTemp[i+1]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                tempTime = tempTime + Float(LB) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                useAssestDuration = useAssestDuration + Float(LB) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 i = i + 1 
														 | 
														
														 | 
														
															                 i = i + 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 clipNum = clipNum + 1 
														 | 
														
														 | 
														
															                 clipNum = clipNum + 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1437,7 +1433,12 @@ extension PQStuckPointEditerController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															              
														 | 
														
														 | 
														
															              
														 | 
													
												
											
												
													
														| 
														 | 
														
															          } 
														 | 
														
														 | 
														
															          } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   
														 | 
														
														 | 
														
															   
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //三,计算最后使用的音频时长, 如果不用拼接音频时长度是卡点的倒数第二位时间 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+         
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //三,按原倍速取视频素材长度超过原素材长度处理,要多添加一位卡点做 A B C 处理 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//        if(useAssestDuration < selectedTotalDuration){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //四,背景音乐时长处理)计算最后使用的音频时长, 如果不用拼接音频时长度是卡点的倒数第二位时间 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let asset = AVURLAsset(url: URL(fileURLWithPath: documensDirectory + (stuckPointMusicData?.localPath ?? "")), options: nil) 
														 | 
														
														 | 
														
															         let asset = AVURLAsset(url: URL(fileURLWithPath: documensDirectory + (stuckPointMusicData?.localPath ?? "")), options: nil) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   
														 | 
														
														 | 
														
															   
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //原推荐卡点的倒数第二位时间 
														 | 
														
														 | 
														
															         //原推荐卡点的倒数第二位时间 
														 |