Bladeren bron

1,修改时间条的更新逻辑防止 UI 重新绘制

jsonwang 3 jaren geleden
bovenliggende
commit
5d2b3574e8
1 gewijzigde bestanden met toevoegingen van 17 en 4 verwijderingen
  1. 17 4
      BFFramework/Classes/Stuckpoint/Controller/PQStuckPointEditerController.swift

+ 17 - 4
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointEditerController.swift

@@ -179,6 +179,13 @@ class PQStuckPointEditerController: PQBaseViewController {
                     var endTime: TimeInterval = Date().timeIntervalSince1970
                     BFLog(message: "endTime is endTimeendTime \(endTime = beginTime)")
                     self?.playerView.play(pauseFirstFrame: false, playeTimeRange: self!.playeTimeRange)
+                    
+                    //更新一下时间条的UI总时间 及数据
+                    self?.stuckPointCuttingView.videoDuration = CGFloat(self?.finallyUserAudioTime ?? 0)
+                    
+                    self?.stuckPointCuttingView.stuckPointStartTime = CGFloat(CMTimeGetSeconds(self?.playeTimeRange.start ?? .zero))
+                    self?.stuckPointCuttingView.stuckPointEndTime = CGFloat(CMTimeGetSeconds(self?.playeTimeRange.end ?? .zero))
+                    self?.stuckPointCuttingView.tatalTimeLabel.text = "\(Float64(CMTimeGetSeconds(self?.playeTimeRange.end ?? .zero) - CMTimeGetSeconds(self?.playeTimeRange.start ?? .zero )).formatDurationToHMS())"
                 }
             }
             }
@@ -911,10 +918,15 @@ class PQStuckPointEditerController: PQBaseViewController {
         projectModel.sData?.videoMetaData?.videoWidth = Int(videoSize.width)
         projectModel.sData?.videoMetaData?.videoHeight = Int(videoSize.height)
 
-        // 2,创建滤镜
+       
         let beginTime: TimeInterval = Date().timeIntervalSince1970
         dealParameter(model: currentCreateStickersModel)
         
+        // 更新裁剪时间条的的ui数据
+        stuckPointCuttingView.videoDuration = CGFloat(finallyUserAudioTime)
+        stuckPointCuttingView.updateEndTime(startTime: CGFloat(CMTimeGetSeconds(playeTimeRange.start)), endTime: CGFloat(CMTimeGetSeconds(playeTimeRange.end)))
+     
+        // 2,创建滤镜
         DispatchQueue.global().async {
             self.mStickers = self.createStickers(sections: self.projectModel.sData?.sections ?? List(), inputSize: CGSize(width: CGFloat(self.projectModel.sData?.videoMetaData?.videoWidth ?? 0), height: CGFloat(self.projectModel.sData?.videoMetaData?.videoHeight ?? 0)), model: self.currentCreateStickersModel)
             DispatchQueue.main.async { // 串行、异步
@@ -1642,10 +1654,11 @@ extension PQStuckPointEditerController {
         for (index, usePoint) in finallyStuckPoints.enumerated() {
             BFLog(message: "测试人员最后使用的卡点信息 \(index) : \(usePoint)")
         }
+        
+        BFLog(message: "计算后给播放器使用的开始:\(CMTimeGetSeconds(playeTimeRange.start)) 结束时间\(CMTimeGetSeconds(playeTimeRange.end)) 播放总时长:\(CMTimeGetSeconds(playeTimeRange.end) - CMTimeGetSeconds(playeTimeRange.start))")
+  
 
-        // 更新裁剪时间条的的ui数据
-        stuckPointCuttingView.videoDuration = CGFloat(finallyUserAudioTime)
-        stuckPointCuttingView.updateEndTime(startTime: CGFloat(CMTimeGetSeconds(playeTimeRange.start)), endTime: CGFloat(CMTimeGetSeconds(playeTimeRange.end)))
+   
     }
 }