|
@@ -167,17 +167,20 @@ class PQStuckPointEditerController: PQBaseViewController {
|
|
|
// 初始化音频的开始和结束时间
|
|
|
self?.playeTimeRange = CMTimeRange(start: CMTimeMakeWithSeconds(Float64(startTime), preferredTimescale: BASE_FILTER_TIMESCALE), end: CMTimeMakeWithSeconds(Float64(endTime), preferredTimescale: BASE_FILTER_TIMESCALE))
|
|
|
|
|
|
-// DispatchQueue.global().async { // 并行、异步
|
|
|
+ self?.dealParameter(model: self?.currentCreateStickersModel ?? .createStickersModelSpeed)
|
|
|
+
|
|
|
+ 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)), model: self?.currentCreateStickersModel ?? .createStickersModelSpeed)
|
|
|
-
|
|
|
- self?.playerView.mStickers = self?.mStickers
|
|
|
-// DispatchQueue.main.async { // 串行、异步
|
|
|
+
|
|
|
+ DispatchQueue.main.async { // 串行、异步
|
|
|
+ self?.playerView.mStickers = self?.mStickers
|
|
|
var endTime: TimeInterval = Date().timeIntervalSince1970
|
|
|
BFLog(message: "endTime is endTimeendTime \(endTime = beginTime)")
|
|
|
self?.playerView.play(pauseFirstFrame: false, playeTimeRange: self!.playeTimeRange)
|
|
|
-// }
|
|
|
-// }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return stuckPointCuttingView
|
|
@@ -829,6 +832,12 @@ class PQStuckPointEditerController: PQBaseViewController {
|
|
|
|
|
|
// 设置播放器
|
|
|
func settingPlayerView() {
|
|
|
+
|
|
|
+ if synchroMarskView.superview == nil {
|
|
|
+ UIApplication.shared.keyWindow?.addSubview(synchroMarskView)
|
|
|
+ synchroMarskView.show()
|
|
|
+ }
|
|
|
+
|
|
|
// 1,设置播放器的显示区域 和画布大小
|
|
|
// - 按第一个素材尺寸自适应
|
|
|
playerView.pause()
|
|
@@ -892,53 +901,64 @@ class PQStuckPointEditerController: PQBaseViewController {
|
|
|
|
|
|
// 2,创建滤镜
|
|
|
let beginTime: TimeInterval = Date().timeIntervalSince1970
|
|
|
- mStickers = createStickers(sections: projectModel.sData?.sections ?? List(), inputSize: CGSize(width: CGFloat(projectModel.sData?.videoMetaData?.videoWidth ?? 0), height: CGFloat(projectModel.sData?.videoMetaData?.videoHeight ?? 0)), model: currentCreateStickersModel)
|
|
|
- playerView.mStickers = mStickers
|
|
|
+ dealParameter(model: currentCreateStickersModel)
|
|
|
+
|
|
|
+ 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 { // 串行、异步
|
|
|
+
|
|
|
+ self.playerView.mStickers = self.mStickers
|
|
|
|
|
|
- let end: TimeInterval = Date().timeIntervalSince1970
|
|
|
- BFLog(message: "createStickers tiskskskskme \(end - beginTime)")
|
|
|
+ let end: TimeInterval = Date().timeIntervalSince1970
|
|
|
+ BFLog(message: "createStickers tiskskskskme \(end - beginTime)")
|
|
|
|
|
|
- // 3,设置音频
|
|
|
- let audioPath = stuckPointMusicData?.localPath ?? ""
|
|
|
+ // 3,设置音频
|
|
|
+ let audioPath = self.stuckPointMusicData?.localPath ?? ""
|
|
|
|
|
|
- BFLog(message: "初始化音频播放器的音频地址为:\(audioPath)")
|
|
|
- playerView.stop()
|
|
|
- // 这里的测试这个音乐播放有问题
|
|
|
-// self.playerView.updateAsset(URL(fileURLWithPath: "63930549652d74e477141e3b79c8d29a9ef8af81625053214516.mp3", relativeTo:Bundle.main.resourceURL!), videoComposition: nil, audioMixModel: nil)
|
|
|
+ BFLog(message: "初始化音频播放器的音频地址为:\(audioPath)")
|
|
|
+ self.playerView.stop()
|
|
|
+ // 这里的测试这个音乐播放有问题
|
|
|
+ // self.playerView.updateAsset(URL(fileURLWithPath: "63930549652d74e477141e3b79c8d29a9ef8af81625053214516.mp3", relativeTo:Bundle.main.resourceURL!), videoComposition: nil, audioMixModel: nil)
|
|
|
|
|
|
- playerView.updateAsset(URL(fileURLWithPath: documensDirectory + audioPath), videoComposition: nil, audioMixModel: nil, originMusicDuration: finallyUserAudioTime, clipAudioRange: getClipAudioRange())
|
|
|
+ self.playerView.updateAsset(URL(fileURLWithPath: documensDirectory + audioPath), videoComposition: nil, audioMixModel: nil, originMusicDuration: self.finallyUserAudioTime, clipAudioRange: self.getClipAudioRange())
|
|
|
|
|
|
- let end2: TimeInterval = Date().timeIntervalSince1970
|
|
|
- BFLog(message: "updateAsset tiskskskskme \(end2 - end)")
|
|
|
- // 4, 设置播放器的输出画布大小
|
|
|
- playerView.movie?.mShowVidoSize = CGSize(width: CGFloat(projectModel.sData?.videoMetaData?.videoWidth ?? 0), height: CGFloat(projectModel.sData?.videoMetaData?.videoHeight ?? 0))
|
|
|
+ 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,开始播放
|
|
|
- playerView.isLoop = false
|
|
|
- playerView.showProgressLab = true
|
|
|
+ // 5,开始播放
|
|
|
+ self.playerView.isLoop = false
|
|
|
+ self.playerView.showProgressLab = true
|
|
|
|
|
|
- // 初始化音频的开始和结束时间
|
|
|
- BFLog(message: "播放的器 开始\(String(describing: CMTimeGetSeconds(playeTimeRange.start))) 结束 \(String(describing: CMTimeGetSeconds(playeTimeRange.end)))")
|
|
|
- let end3: TimeInterval = Date().timeIntervalSince1970
|
|
|
+ // 初始化音频的开始和结束时间
|
|
|
+ BFLog(message: "播放的器 开始\(String(describing: CMTimeGetSeconds(self.playeTimeRange.start))) 结束 \(String(describing: CMTimeGetSeconds(self.playeTimeRange.end)))")
|
|
|
+ let end3: TimeInterval = Date().timeIntervalSince1970
|
|
|
|
|
|
- playerView.play(pauseFirstFrame: false, playeTimeRange: CMTimeRange(start: playeTimeRange.start, end: playeTimeRange.end))
|
|
|
+ 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)")
|
|
|
+ let end4: TimeInterval = Date().timeIntervalSince1970
|
|
|
+ BFLog(message: " playerView.play tiskskskskme \(end4 - end3)")
|
|
|
|
|
|
- // 6,进度回调
|
|
|
- playerView.progress = { [weak self] currentTime, tatolTime, _ in
|
|
|
+ // 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)")
|
|
|
+ // 更新进度
|
|
|
+ let progress = (currentTime - CMTimeGetSeconds(self?.playeTimeRange.start ?? .zero)) / CMTimeGetSeconds(self?.playeTimeRange.duration ?? .zero)
|
|
|
+ BFLog(message: "\(currentTime) \(tatolTime) 显示播放器进度为: \(progress)")
|
|
|
|
|
|
- self?.stuckPointCuttingView.updateProgress(progress: CGFloat(progress))
|
|
|
+ self?.stuckPointCuttingView.updateProgress(progress: CGFloat(progress))
|
|
|
|
|
|
- if self?.synchroMarskView.superview != nil {
|
|
|
- self?.synchroMarskView.removeMarskView()
|
|
|
+ if self?.synchroMarskView.superview != nil {
|
|
|
+ self?.synchroMarskView.removeMarskView()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
deinit {
|
|
@@ -1028,7 +1048,7 @@ extension PQStuckPointEditerController {
|
|
|
// 推荐卡点数
|
|
|
let beginDecoderTime: TimeInterval = Date().timeIntervalSince1970
|
|
|
|
|
|
- self.dealParameter(model: model)
|
|
|
+
|
|
|
|
|
|
// 保存滤镜对象数据
|
|
|
var stickers: Array = Array<PQEditVisionTrackMaterialsModel>.init()
|