Ver código fonte

选择档位卡顿问题

jsonwang 3 anos atrás
pai
commit
6919b61154

+ 55 - 29
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointEditerController.swift

@@ -69,7 +69,7 @@ class PQStuckPointEditerController: PQBaseViewController {
             self?.stuckPointMusicData?.speed = sender.tag
             self?.projectModel.sData?.getBGMSession()?.sectionTimeline?.audioTrack?.audioTrackMaterials.first?.bgmInfo?.rhythmMusicSpeed = sender.tag
             // 播放前先暂停
-            self?.playerView.stop()
+//            self?.playerView.stop()
             // 开始播放
             self?.settingPlayerView()
             // 点击上报:选择节奏
@@ -119,10 +119,13 @@ class PQStuckPointEditerController: PQBaseViewController {
                 self?.playeTimeRange = CMTimeRange(start: CMTime(value: CMTimeValue(Int64(startTime * 600)), timescale: 600), end: CMTime(value: CMTimeValue(Int64(endTime * 600)), timescale: 600))
 
                 DispatchQueue.global().async { // 并行、异步
+                    let beginTime: TimeInterval = Date().timeIntervalSince1970
                     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)))
 
                     self?.playerView.mStickers = self?.mStickers
                     DispatchQueue.main.async { // 串行、异步
+                        var endTime: TimeInterval = Date().timeIntervalSince1970
+                        BFLog(message: "endTime is endTimeendTime \(endTime = beginTime)")
                         self?.playerView.play(pauseFirstFrame: false, playeTimeRange: self!.playeTimeRange)
                     }
                 }
@@ -314,7 +317,6 @@ class PQStuckPointEditerController: PQBaseViewController {
         // 2,添加背景音乐
         projectModel.sData?.addBGM(audioMix: stuckPointMusicData!)
     }
-
     // 设置播放器
     func settingPlayerView() {
         // 1,设置播放器的显示区域 和画布大小
@@ -378,36 +380,60 @@ class PQStuckPointEditerController: PQBaseViewController {
         projectModel.sData?.videoMetaData?.videoHeight = Int(videoSize.height)
 
         // 2,创建滤镜
-        mStickers = createStickers(sections: projectModel.sData?.sections ?? List(), inputSize: CGSize(width: CGFloat(projectModel.sData?.videoMetaData?.videoWidth ?? 0), height: CGFloat(projectModel.sData?.videoMetaData?.videoHeight ?? 0)))
-        playerView.mStickers = mStickers
-
-        // 3,设置音频
-        let audioPath = stuckPointMusicData?.localPath ?? ""
-        BFLog(message: "初始化音频播放器的音频地址为:\(audioPath)")
-        playerView.updateAsset(URL(fileURLWithPath: documensDirectory + audioPath), videoComposition: nil, audioMixModel: nil)
-
-        // 4, 设置播放器的输出画布大小
-        playerView.movie?.mShowVidoSize = CGSize(width: CGFloat(projectModel.sData?.videoMetaData?.videoWidth ?? 0), height: CGFloat(projectModel.sData?.videoMetaData?.videoHeight ?? 0))
-
-        // 5,开始播放
-        playerView.isLoop = false
-        playerView.showProgressLab = false
-
-        // 初始化音频的开始和结束时间
-        BFLog(message: "播放的器 开始\(String(describing: CMTimeGetSeconds(playeTimeRange.start))) 结束 \(String(describing: CMTimeGetSeconds(playeTimeRange.end)))")
-        playerView.play(pauseFirstFrame: false, playeTimeRange: CMTimeRange(start: playeTimeRange.start, end: playeTimeRange.end))
+        
+        DispatchQueue.global().async { // 并行、异步
+            
+            let beginTime: TimeInterval = Date().timeIntervalSince1970
+            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)))
+            self.playerView.mStickers = self.mStickers
+            
+            let end: TimeInterval = Date().timeIntervalSince1970
+            BFLog(message: "createStickers tiskskskskme  \(end - beginTime)")
+            
+            DispatchQueue.main.async { // 串行、异步
+            
+            
+                // 3,设置音频
+                let audioPath = self.stuckPointMusicData?.localPath ?? ""
+                BFLog(message: "初始化音频播放器的音频地址为:\(audioPath)")
+                self.playerView.stop()
+                self.playerView.updateAsset(URL(fileURLWithPath: documensDirectory + audioPath), videoComposition: nil, audioMixModel: nil)
+
+                let end2: TimeInterval = Date().timeIntervalSince1970
+                BFLog(message: "updateAsset tiskskskskme  \(end2 - end)")
+                // 4, 设置播放器的输出画布大小
+                self.playerView.movie?.mShowVidoSize = CGSize(width: CGFloat(self.projectModel.sData?.videoMetaData?.videoWidth ?? 0), height: CGFloat(self.projectModel.sData?.videoMetaData?.videoHeight ?? 0))
+
+                // 5,开始播放
+                self.playerView.isLoop = false
+                self.playerView.showProgressLab = false
 
-        // 6,进度回调
-        playerView.progress = { [weak self] currentTime, tatolTime, _ in
+                // 初始化音频的开始和结束时间
+                BFLog(message: "播放的器 开始\(String(describing: CMTimeGetSeconds(self.playeTimeRange.start))) 结束 \(String(describing: CMTimeGetSeconds(self.playeTimeRange.end)))")
+                let end3: TimeInterval = Date().timeIntervalSince1970
+             
+                self.playerView.play(pauseFirstFrame: false, playeTimeRange: CMTimeRange(start: self.playeTimeRange.start, end: self.playeTimeRange.end))
+                
+            
+                let end4: TimeInterval = Date().timeIntervalSince1970
+                BFLog(message: " playerView.play tiskskskskme  \(end4 - end3)")
+
+                // 6,进度回调
+                self.playerView.progress = { [weak self] currentTime, tatolTime, _ in
+
+                    // 更新进度
+                    let progress = (currentTime - CMTimeGetSeconds(self?.playeTimeRange.start ?? .zero
+                    )) / CMTimeGetSeconds(self?.playeTimeRange.duration ?? .zero
+                    )
+                    BFLog(message: "\(currentTime) \(tatolTime) 显示播放器进度为: \(progress)")
+
+                    self?.stuckPointCuttingView.videoCropView.updateProgress(progress: CGFloat(progress))
+                }
+ 
+            }
+        }
 
-            // 更新进度
-            let progress = (currentTime - CMTimeGetSeconds(self?.playeTimeRange.start ?? .zero
-            )) / CMTimeGetSeconds(self?.playeTimeRange.duration ?? .zero
-            )
-            BFLog(message: "\(currentTime) \(tatolTime) 显示播放器进度为: \(progress)")
 
-            self?.stuckPointCuttingView.videoCropView.updateProgress(progress: CGFloat(progress))
-        }
     }
 
     deinit {