Kaynağa Gözat

处理6X 速 导致的定帧问题

jsonwang 3 yıl önce
ebeveyn
işleme
2bb0d4c3aa

+ 3 - 7
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointEditerController.swift

@@ -1415,18 +1415,17 @@ extension PQStuckPointEditerController {
                                     i = 0
                                 }
                                 // 快速段
-                                let LA = tempMaxSpeed * (stuckPointsTemp[i + 1] - stuckPointsTemp[i])
                                 let LAValue =  String(format: "%.6f", tempMaxSpeed * (stuckPointsTemp[i + 1] - stuckPointsTemp[i]))
                                 useAssestDurationTemp = useAssestDurationTemp + (Float(LAValue) ?? 0.0)
-                                //6x 第一个卡点X 倍速 > 原素材
                                 if useAssestDurationTemp > Float(assetDuration) {
-                                    useAssestDurationTemp = Float(assetDuration)
+                                    useAssestDurationTemp = Float(assetDuration) - (Float(LAValue) ?? 0.0)
+                                    //6x 第一个卡点X 倍速 > 原素材
                                     break
                                 }
                                 LACount = LACount + 1
                                 BFLog(message: "快速段段段段段段后LACount:\(LACount) realUsedMusicDuration:\(useAssestDurationTemp)")
                                 // 慢速段
-                                let LB = tempMinSpeed * (stuckPointsTemp[i + 2] - stuckPointsTemp[i + 1])
+                     
                                 let LBValue =  String(format: "%.6f", tempMinSpeed * (stuckPointsTemp[i + 2] - stuckPointsTemp[i + 1]))
                                 
                                 useAssestDurationTemp = useAssestDurationTemp + (Float(LBValue) ?? 0.0)
@@ -1440,9 +1439,6 @@ extension PQStuckPointEditerController {
                             }
                             // 2拼接要使用的卡点信息
                             sticker.clipCount = LACount + LBCount
-                            // LACount + LBCount = 0 ?  11s视频x6倍速
-                            if sticker.clipCount == 0 { sticker.clipCount = 1 }
-
                             if stuckPointsTemp.count < 1 {
                                 //todo 和产品沟通提示
                                 BFLog(message: "卡点数据有错误!!!")