Browse Source

拖动时录音同步

harry 3 năm trước cách đây
mục cha
commit
a8b2c366a6

+ 8 - 7
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenCameraManager.swift

@@ -72,8 +72,8 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
             // 拖动的跳跃,不要修改时间点
             if (wself.dele?.isNormalPlaying ?? false){
                 wself.currentAssetProgress = CMTime(seconds: (currTime + wself.currPlayTime).seconds, preferredTimescale: 1000)
-                BFLog(1, message: "拖动 currTime: \(currTime.seconds)")
             }
+            BFLog(1, message: "拖动 currTime: \(currTime.seconds)")
             DispatchQueue.main.async {[weak self] in
                 guard let wself = self else { return }
                 wself.dele?.updateSubtitle(time: wself.currentAssetProgress)
@@ -342,7 +342,8 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
         
         if avplayer.currentItem != nil {
             avplayer.play()
-            recordPlayer?.play()
+//            recordPlayer?.play()
+            playRecordVoice()
         }else{
             prepareToPlayNext()
         }
@@ -350,15 +351,15 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
         
     }
     
-    func playRecordVoice(_ tt:CMTime, needPlay:Bool = true){
+    func playRecordVoice(needPlay:Bool = true){
         // 播放音频
         if let mod = recordItem?.voiceStickers.first(where: { m in
             CMTimeCompare(m.startCMTime, currentAssetProgress + CMTime(seconds: 0.033, preferredTimescale: 1000)) <= 0 && CMTimeCompare(m.endCMTime, currentAssetProgress) > 0
         }){
             recordPlayer?.replaceCurrentItem(with: AVPlayerItem(url: URL(fileURLWithPath: mod.wavFilePath)))
-            
+            let tt = currentAssetProgress - mod.startCMTime
             BFLog(1, message: "record - tt: \(tt.seconds), curr:\(currentAssetProgress.seconds)")
-            recordPlayer?.currentItem?.seek(to: tt, toleranceBefore: CMTime(seconds: 1, preferredTimescale: 1000), toleranceAfter: CMTime(seconds: 1, preferredTimescale: 1000)) { [weak recordPlayer] isFinished in
+            recordPlayer?.currentItem?.seek(to: tt, toleranceBefore: CMTime(value: 1, timescale: 1_000_000), toleranceAfter: CMTime(value: 1, timescale: 1_000_000)) { [weak recordPlayer] _ in
                 if needPlay{
                     recordPlayer?.play()
                 }
@@ -376,13 +377,13 @@ class BFRecordScreenCameraManager : BFRecordScreenBaseManager{
             locationTo(time: mod.timelineCMIn)
             avplayerReplaceItem(newItem: AVPlayerItem(url: URL(fileURLWithPath: mod.locationPath)))
             
-            avplayer.currentItem?.seek(to: tt, toleranceBefore: CMTime(seconds: 1, preferredTimescale: 1000), toleranceAfter: CMTime(seconds: 1, preferredTimescale: 1000), completionHandler: {[weak avplayer] _ in
+            avplayer.currentItem?.seek(to: tt, toleranceBefore: CMTime(value: 1, timescale: 1_000_000), toleranceAfter: CMTime(value: 1, timescale: 1_000_000), completionHandler: {[weak avplayer] _ in
                 if needPlay {
                     avplayer?.play()
                 }
             })
             
-            playRecordVoice(.zero, needPlay: needPlay)
+            playRecordVoice(needPlay: needPlay)
         }
     }
     

+ 1 - 1
BFRecordScreenKit/Classes/RecordScreen/View/ProgressView/BFCameraProgressView.swift

@@ -106,7 +106,7 @@ extension BFCameraProgressView: UICollectionViewDelegateFlowLayout, UICollection
                     size = .zero
                 }
 
-                BFLog(1, message: "curr size - row:\(indexPath.row), \(size.width)")
+//                BFLog(1, message: "curr size - row:\(indexPath.row), \(size.width)")
             }
         }
 //        BFLog(1, message: "size:\(size.width)")