| 
					
				 | 
			
			
				@@ -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 { 
			 |