Browse Source

1.录音跟素材声音设置

wenweiwei 3 years ago
parent
commit
923cc82258

+ 5 - 12
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -1379,8 +1379,6 @@ public class BFRecordScreenController: BFBaseViewController {
             } else {
                 recordPlayer = AVPlayer(playerItem: newItem)
             }
-            recordPlayer!.volume = 1
-            //                self.recordPlayer?.prepareToPlay()
             currentPlayRecordIndex = -1
             hadPrepareToPlayRecord = false
             BFLog(1, message: "录音播放器初始化(有时候不准)")
@@ -1388,9 +1386,8 @@ public class BFRecordScreenController: BFBaseViewController {
             NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: newItem, queue: .main) { [weak self, weak recordedAudio] _ in
                 self?.hadPrepareToPlayRecord = false
                 self?.currentPlayRecordIndex = -1
+                self?.recordPlayer?.volume = 0
                 self?.assetPlayer?.volume = self?.noSpeakVolume ?? 0
-                //                self?.deleteRecordBtn.isHidden = true
-                //                self?.recordBtn.isHidden = false
                 didPlayToEndTime((shouldPlayRecordIndex, recordedAudio) as? (Int, PQVoiceModel), newItem)
             }
             avplayerTimeObserver?.invalidate()
@@ -1441,14 +1438,12 @@ public class BFRecordScreenController: BFBaseViewController {
                 // 两个逻辑:如果在播,则跳过;如果暂停拖动到中间,则seek
                 if currentPlayRecordIndex == -1, sself.isNormalPlaying {
                     let second = CMTimeGetSeconds(currentT) - recordedAudio.startCMTime.seconds
-                    sself.assetPlayer?.volume = sself.haveSpeakVolume
-
                     DispatchQueue.main.async { [weak sself] in
                         self?.recordPlayer?.seek(to: CMTime(value: CMTimeValue(second * 1_000_000), timescale: 1_000_000), toleranceBefore: CMTime(value: 1, timescale: 1_000_000), toleranceAfter: CMTime(value: 1, timescale: 1_000_000), completionHandler: { [weak self] finished in
                             if finished, self?.isNormalPlaying ?? false {
                                 self?.recordPlayer?.play()
-                                //                                self?.deleteRecordBtn.isHidden = false
-                                //                                self?.recordBtn.isHidden = true
+                                self?.recordPlayer?.volume = 1
+                                self?.assetPlayer?.volume = self?.haveSpeakVolume ?? 0
                                 BFLog(1, message: "录音开始播放 playing, \(second), \(CMTimeGetSeconds(self?.recordPlayer?.currentItem?.duration ?? .zero)), \(self?.recordPlayer?.currentItem?.currentTime().seconds ?? 0)")
                             }
                         })
@@ -1481,14 +1476,12 @@ public class BFRecordScreenController: BFBaseViewController {
                 // 两个逻辑:如果在播,则跳过;如果暂停拖动到中间,则seek
                 if sself.isNormalPlaying {
                     let second = CMTimeGetSeconds(currentT) - recordedAudio.startCMTime.seconds
-                    sself.assetPlayer?.volume = sself.haveSpeakVolume
-
                     DispatchQueue.main.async { [weak sself] in
                         self?.recordPlayer?.seek(to: CMTime(value: CMTimeValue(second * 1_000_000), timescale: 1_000_000), toleranceBefore: CMTime(value: 1, timescale: 1_000_000), toleranceAfter: CMTime(value: 1, timescale: 1_000_000), completionHandler: { [weak self] finished in
                             if finished, self?.isNormalPlaying ?? false {
                                 self?.recordPlayer?.play()
-                                //                                self?.deleteRecordBtn.isHidden = false
-                                //                                self?.recordBtn.isHidden = true
+                                self?.recordPlayer?.volume = 1
+                                self?.assetPlayer?.volume = self?.haveSpeakVolume ?? 0
                                 BFLog(1, message: "录音开始播放 playing, \(second), \(CMTimeGetSeconds(self?.recordPlayer?.currentItem?.duration ?? .zero)), \(self?.recordPlayer?.currentItem?.currentTime().seconds ?? 0)")
                             }
                         })