浏览代码

1,进入前台从头播放, 2, 卡点数据精度问题调整

jsonwang 3 年之前
父节点
当前提交
dcd69d6281
共有 1 个文件被更改,包括 24 次插入10 次删除
  1. 24 10
      BFFramework/Classes/Stuckpoint/Controller/PQStuckPointEditerController.swift

+ 24 - 10
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointEditerController.swift

@@ -447,8 +447,13 @@ class PQStuckPointEditerController: PQBaseViewController {
         musicNameLab.move()
 
         PQNotification.addObserver(self, selector: #selector(enterBackground), name: UIApplication.didEnterBackgroundNotification, object: nil)
+        PQNotification.addObserver(self, selector: #selector(willEnterForeground), name: UIApplication.willEnterForegroundNotification, object: nil)
     }
 
+    @objc func willEnterForeground() {
+        BFLog(message: "进入到前台")
+        settingPlayerView()
+    }
     @objc func enterBackground() {
         BFLog(message: "进入到后台")
         // 取消导出
@@ -1245,12 +1250,14 @@ extension PQStuckPointEditerController {
         var pointsTemp = Array<Float>.init()
         //
         // 最后一个卡点时间(原推荐卡点的倒数第二位时间)
-        let lastPoint = Float((stuckPointMusicData!.rhythmSdata[0].pointTimes[stuckPointMusicData!.rhythmSdata[0].pointTimes.count - 1])) / Float(BASE_FILTER_TIMESCALE)
+        let lastPoint = stuckPointMusicData!.rhythmSdata[0].pointTimes[stuckPointMusicData!.rhythmSdata[0].pointTimes.count - 1]
 
         for (index, dunshu) in stuckPointMusicData!.rhythmSdata[0].pointTimes.enumerated() {
-            if Float64(dunshu) / Float64(BASE_FILTER_TIMESCALE) > (stuckPointMusicData?.startTime ?? 0) && Float64(dunshu) / Float64(BASE_FILTER_TIMESCALE) < Float64(lastPoint) {
-                BFLog(message: "原所有卡点数:\(index) \(Float(dunshu) / Float(BASE_FILTER_TIMESCALE))")
-                pointsTemp.append(Float(dunshu) / Float(BASE_FILTER_TIMESCALE))
+            if dunshu >= Int64((stuckPointMusicData?.startTime ?? 0) * Float64(BASE_FILTER_TIMESCALE)) && dunshu < lastPoint {
+                let savePointStr = String(format: "%.6f", Float(dunshu) / Float(BASE_FILTER_TIMESCALE))
+                BFLog(message: "原所有卡点数:\(index) \(savePointStr)")
+                
+                pointsTemp.append(Float(savePointStr) ?? 0.0)
             }
         }
 
@@ -1302,9 +1309,13 @@ extension PQStuckPointEditerController {
         }
         for i in finallyStuckPoints.count ... clipCount + finallyStuckPoints.count {
             if (i % (oldPoints.count - 1)) != 0 {
-                finallyStuckPoints.append(finallyStuckPoints[i - 1] + oldPoints[i % (oldPoints.count - 1)] - oldPoints[(i - 1) % (oldPoints.count - 1)])
+                
+               let value =  String(format: "%.6f", finallyStuckPoints[i - 1] + oldPoints[i % (oldPoints.count - 1)] - oldPoints[(i - 1) % (oldPoints.count - 1)])
+                
+                finallyStuckPoints.append(Float(value) ?? 0.0)
             } else {
-                finallyStuckPoints.append(finallyStuckPoints[i - 1] + oldPoints[1] - oldPoints[0])
+                let value =  String(format: "%.6f", finallyStuckPoints[i - 1] + oldPoints[1] - oldPoints[0])
+                finallyStuckPoints.append(Float(value) ?? 0.0)
             }
         }
     }
@@ -1403,18 +1414,21 @@ extension PQStuckPointEditerController {
                                 }
                                 // 快速段
                                 let LA = tempMaxSpeed * (stuckPointsTemp[i + 1] - stuckPointsTemp[i])
-                                useAssestDurationTemp = useAssestDurationTemp + Float(LA)
+                                let LAValue =  String(format: "%.6f", tempMaxSpeed * (stuckPointsTemp[i + 1] - stuckPointsTemp[i]))
+                                useAssestDurationTemp = useAssestDurationTemp + (Float(LAValue) ?? 0.0)
                                 if useAssestDurationTemp > Float(assetDuration) {
-                                    useAssestDurationTemp = useAssestDurationTemp - Float(LA)
+                                    useAssestDurationTemp = useAssestDurationTemp - (Float(LAValue) ?? 0.0)
                                     break
                                 }
                                 LACount = LACount + 1
                                 BFLog(message: "快速段段段段段段后LACount:\(LACount) realUsedMusicDuration:\(useAssestDurationTemp)")
                                 // 慢速段
                                 let LB = tempMinSpeed * (stuckPointsTemp[i + 2] - stuckPointsTemp[i + 1])
-                                useAssestDurationTemp = useAssestDurationTemp + Float(LB)
+                                let LBValue =  String(format: "%.6f", tempMinSpeed * (stuckPointsTemp[i + 2] - stuckPointsTemp[i + 1]))
+                                
+                                useAssestDurationTemp = useAssestDurationTemp + (Float(LBValue) ?? 0.0)
                                 if useAssestDurationTemp > Float(assetDuration) {
-                                    useAssestDurationTemp = useAssestDurationTemp - Float(LB)
+                                    useAssestDurationTemp = useAssestDurationTemp - (Float(LBValue) ?? 0.0)
                                     break
                                 }
                                 LBCount = LBCount + 1