|
@@ -514,7 +514,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
|
|
|
// MARK: - 录音结束
|
|
|
|
|
|
- recorderManager?.endRecordHandle = { [weak self] voideModel, _ in
|
|
|
+ recorderManager?.endRecordHandle = { [weak self, weak recorderManager] voideModel, _ in
|
|
|
if let sself = self, let model = voideModel, FileManager.default.fileExists(atPath: model.wavFilePath ?? "") {
|
|
|
// 加入到语音数组里
|
|
|
model.endCMTime = sself.currentAssetProgress
|
|
@@ -602,6 +602,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
}
|
|
|
sself.currentPlayRecordIndex = -3 // 刚录音完,不需要播放录音
|
|
|
BFLog(3, message: "重置播放index-\(#function) = \(sself.currentPlayRecordIndex)")
|
|
|
+ recorderManager?.voiceModel = nil
|
|
|
}
|
|
|
}
|
|
|
recorderManager?.cancelRecordHandle = { [weak self] voiceModel in
|
|
@@ -637,9 +638,6 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
bottomeView.addSubview(progreddL)
|
|
|
// view.addSubview(toolV)
|
|
|
bottomeView.addSubview(recordBtn)
|
|
|
- if itemModels[currItemModelIndex].mediaType == .IMAGE {
|
|
|
- recordBtn.isEnabled = true
|
|
|
- }
|
|
|
bottomeView.addSubview(deleteRecordBtn)
|
|
|
bottomeView.addSubview(withDrawBtn)
|
|
|
// bottomeView.addSubview(changeVoiceBtn)
|
|
@@ -1592,8 +1590,11 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
DispatchQueue.main.async { [weak self, weak itemModel] in
|
|
|
self?.progressThumV.recordItem = itemModel
|
|
|
self?.progressThumV.isHidden = false
|
|
|
+ self?.recordBtn.isEnabled = true
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ recordBtn.isEnabled = true
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1644,7 +1645,6 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
} else {
|
|
|
assetPlayer = AVPlayer(playerItem: item)
|
|
|
assetPlayer?.volume = noSpeakVolume
|
|
|
- recordBtn.isEnabled = true
|
|
|
avplayerTimeObserver?.invalidate()
|
|
|
avplayerTimeObserver = assetPlayer?.addPeriodicTimeObserver(forInterval: CMTime(value: 1, timescale: 1000), queue: DispatchQueue.global()) { [weak self] time in
|
|
|
// 进度监控
|
|
@@ -1910,6 +1910,8 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
|
|
|
BFLog(1, message: "滚动结束")
|
|
|
let page = Int((scrollView.contentOffset.x + scrollView.frame.width / 2) / scrollView.frame.width)
|
|
|
if page != currItemModelIndex {
|
|
|
+ // 切换素材时先把录制状态切为不可用,延迟可点,避免在缩略图未加载出来时即可录制
|
|
|
+ recordBtn.isEnabled = false
|
|
|
// 暂停
|
|
|
pause()
|
|
|
// 如果在录制中,停止录制
|
|
@@ -1929,9 +1931,11 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
|
|
|
playBtn.isSelected = (recordItem.mediaType == .IMAGE && recordItem.voiceStickers.count <= 0)
|
|
|
// 重绘录音区域
|
|
|
progressThumV.recordItem = recordItem
|
|
|
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
|
|
|
+ DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) { [weak self] in
|
|
|
/// 重绘录音进度视图
|
|
|
self?.resetAllIndirectionView()
|
|
|
+ // 重绘录音进度
|
|
|
+ self?.recordBtn.isEnabled = true
|
|
|
}
|
|
|
// 更新缩略图
|
|
|
progressThumV.isHidden = false
|
|
@@ -1951,8 +1955,6 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
|
|
|
if recordItem.mediaType == .VIDEO {
|
|
|
reloadMaterial()
|
|
|
assetPlayer?.seek(to: .zero, toleranceBefore: CMTime(value: 1, timescale: 1_000_000), toleranceAfter: CMTime(value: 1, timescale: 1_000_000))
|
|
|
- } else {
|
|
|
- recordBtn.isEnabled = true
|
|
|
}
|
|
|
if changeItemHandle != nil {
|
|
|
changeItemHandle!(page)
|