|
@@ -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)")
|
|
|
}
|
|
|
})
|