|
@@ -69,7 +69,7 @@ class PQStuckPointEditerController: PQBaseViewController {
|
|
self?.stuckPointMusicData?.speed = sender.tag
|
|
self?.stuckPointMusicData?.speed = sender.tag
|
|
self?.projectModel.sData?.getBGMSession()?.sectionTimeline?.audioTrack?.audioTrackMaterials.first?.bgmInfo?.rhythmMusicSpeed = sender.tag
|
|
self?.projectModel.sData?.getBGMSession()?.sectionTimeline?.audioTrack?.audioTrackMaterials.first?.bgmInfo?.rhythmMusicSpeed = sender.tag
|
|
// 播放前先暂停
|
|
// 播放前先暂停
|
|
- self?.playerView.stop()
|
|
|
|
|
|
+// self?.playerView.stop()
|
|
// 开始播放
|
|
// 开始播放
|
|
self?.settingPlayerView()
|
|
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))
|
|
self?.playeTimeRange = CMTimeRange(start: CMTime(value: CMTimeValue(Int64(startTime * 600)), timescale: 600), end: CMTime(value: CMTimeValue(Int64(endTime * 600)), timescale: 600))
|
|
|
|
|
|
DispatchQueue.global().async { // 并行、异步
|
|
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?.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
|
|
self?.playerView.mStickers = self?.mStickers
|
|
DispatchQueue.main.async { // 串行、异步
|
|
DispatchQueue.main.async { // 串行、异步
|
|
|
|
+ var endTime: TimeInterval = Date().timeIntervalSince1970
|
|
|
|
+ BFLog(message: "endTime is endTimeendTime \(endTime = beginTime)")
|
|
self?.playerView.play(pauseFirstFrame: false, playeTimeRange: self!.playeTimeRange)
|
|
self?.playerView.play(pauseFirstFrame: false, playeTimeRange: self!.playeTimeRange)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -314,7 +317,6 @@ class PQStuckPointEditerController: PQBaseViewController {
|
|
// 2,添加背景音乐
|
|
// 2,添加背景音乐
|
|
projectModel.sData?.addBGM(audioMix: stuckPointMusicData!)
|
|
projectModel.sData?.addBGM(audioMix: stuckPointMusicData!)
|
|
}
|
|
}
|
|
-
|
|
|
|
// 设置播放器
|
|
// 设置播放器
|
|
func settingPlayerView() {
|
|
func settingPlayerView() {
|
|
// 1,设置播放器的显示区域 和画布大小
|
|
// 1,设置播放器的显示区域 和画布大小
|
|
@@ -378,36 +380,60 @@ class PQStuckPointEditerController: PQBaseViewController {
|
|
projectModel.sData?.videoMetaData?.videoHeight = Int(videoSize.height)
|
|
projectModel.sData?.videoMetaData?.videoHeight = Int(videoSize.height)
|
|
|
|
|
|
// 2,创建滤镜
|
|
// 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 {
|
|
deinit {
|