Browse Source

发布界面 传入 playeTimeRange参数

jsonwang 3 years ago
parent
commit
cc41692292

+ 2 - 1
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointEditerController.swift

@@ -700,6 +700,7 @@ class PQStuckPointEditerController: PQBaseViewController {
         videoExporter.selectedImageDataCount = selectedImageDataCount
         videoExporter.finallyUserAudioTime = finallyUserAudioTime
         videoExporter.clipAudioRange = getClipAudioRange()
+        videoExporter.playeTimeRange = playeTimeRange
         // 使用深 copy
         let json = projectModel.toJSONString(prettyPrint: false)
         if json == nil {
@@ -1374,7 +1375,7 @@ extension PQStuckPointEditerController {
         let lastSecondPoint =   Float((stuckPointMusicData!.rhythmSdata[0].pointTimes[stuckPointMusicData!.rhythmSdata[0].pointTimes.count - 2] )) / Float(BASE_FILTER_TIMESCALE)
         
         finallyUserAudioTime = Float(lastSecondPoint)
-        if(finallyStuckPoints.last ?? 0 > Float(CMTimeGetSeconds(asset.duration))){
+        if((finallyStuckPoints.last ?? 0) > Float(CMTimeGetSeconds(asset.duration))){
            
             finallyUserAudioTime = Float(finallyStuckPoints.last ?? 0) + (Float(CMTimeGetSeconds(asset.duration)) - Float(lastSecondPoint))
             

+ 5 - 3
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointPublicController.swift

@@ -62,6 +62,9 @@ class PQStuckPointPublicController: PQBaseViewController {
     var finallyUserAudioTime:Float = 0.0
     //拼接音乐的开始和结束位置
     var clipAudioRange: CMTimeRange = CMTimeRange.zero
+    // 导出的开始的开始和结束时间
+    var playeTimeRange: CMTimeRange = CMTimeRange()
+
     // 预览大小
     private var preViewSize: CGSize {
         switch aspectRatio {
@@ -639,7 +642,7 @@ extension PQStuckPointPublicController {
         // 每次初始化的时候设置初始值 为 nIl
         var audioMix: AVMutableAudioMix?
         var composition: AVMutableComposition?
-        if(finallyUserAudioTime != 0){
+        if(finallyUserAudioTime != 0 && finallyUserAudioTime > Float(inputAsset.duration.seconds)){
             (audioMix, composition) = PQPlayerViewModel.setupAudioMix(originAsset: inputAsset, bgmData:nil, videoStickers: nil,originMusicDuration:finallyUserAudioTime,clipAudioRange: clipAudioRange)
         }
         exporter = PQCompositionExporter(asset: inputAsset, videoComposition: nil, audioMix: audioMix, filters: nil, stickers: mStickers, animationTool: nil, exportURL: outPutMP4URL)
@@ -661,8 +664,7 @@ extension PQStuckPointPublicController {
         BFLog(message: "导出设置的码率为:\(orgeBitRate)")
         exporter.showGaussianBlur = true
         if exporter.prepare(videoSize: CGSize(width: editProjectModel?.sData?.videoMetaData?.videoWidth ?? 0, height: editProjectModel?.sData?.videoMetaData?.videoHeight ?? 0), videoAverageBitRate: orgeBitRate) {
-            let playeTimeRange: CMTimeRange = CMTimeRange(start: CMTime(value: CMTimeValue(Int((audioMixModel?.startTime ?? 0) * 600)), timescale: 600), end: CMTime(value: CMTimeValue(Int((audioMixModel?.endTime ?? 0) * 600)), timescale: 600))
-            BFLog(message: "开始导出 \(String(describing: audioMixModel?.startTime)) 结束 \(String(describing: audioMixModel?.endTime))")
+            BFLog(message: "开始导出 \(String(describing: playeTimeRange.start)) 结束 \(String(describing: playeTimeRange.end))")
             exporter.start(playeTimeRange: playeTimeRange)
             BFLog(message: "开始导出")
         }