|
@@ -1100,23 +1100,26 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
if mod.startCMTime.seconds >= model.startCMTime.seconds {
|
|
if mod.startCMTime.seconds >= model.startCMTime.seconds {
|
|
mod.startCMTime = mod.startCMTime + duration
|
|
mod.startCMTime = mod.startCMTime + duration
|
|
mod.endCMTime = mod.endCMTime + duration
|
|
mod.endCMTime = mod.endCMTime + duration
|
|
|
|
+
|
|
|
|
+ //对应的字幕进行后移修改
|
|
|
|
+ let titleList = recordItem.titleStickers.filter({ title in
|
|
|
|
+ title.recordId == mod.recordId
|
|
|
|
+ })
|
|
|
|
+ titleList.forEach { t in
|
|
|
|
+ t.timelineIn = t.timelineIn + duration
|
|
|
|
+ t.timelineOut = t.timelineOut + duration
|
|
|
|
+ }
|
|
|
|
+ //对应的变声进行后移修改
|
|
|
|
+ let voiceList = recordItem.voiceChangeStickers.filter({ voice in
|
|
|
|
+ voice.recordId == mod.recordId
|
|
|
|
+ })
|
|
|
|
+ voiceList.forEach { mod in
|
|
|
|
+ mod.startCMTime = mod.startCMTime + duration
|
|
|
|
+ mod.endCMTime = mod.endCMTime + duration
|
|
|
|
+ }
|
|
}
|
|
}
|
|
})
|
|
})
|
|
-
|
|
|
|
- recordItem.voiceChangeStickers.forEach({ mod in
|
|
|
|
- if mod.startCMTime.seconds >= model.startCMTime.seconds {
|
|
|
|
- mod.startCMTime = mod.startCMTime + duration
|
|
|
|
- mod.endCMTime = mod.endCMTime + duration
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- recordItem.titleStickers.forEach({ mod in
|
|
|
|
- if mod.timelineIn.seconds >= model.startCMTime.seconds {
|
|
|
|
- mod.timelineIn = mod.timelineIn + duration
|
|
|
|
- mod.timelineOut = mod.timelineOut + duration
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1131,10 +1134,10 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
// 录制结束回调给主工程页面(埋点之类功能)
|
|
// 录制结束回调给主工程页面(埋点之类功能)
|
|
wself.recordEndHandle?(model)
|
|
wself.recordEndHandle?(model)
|
|
|
|
|
|
- if wself.currMediaType != .Video {
|
|
|
|
|
|
+ if wself.currMediaType != .Video, CMTimeCompare(model.endCMTime, wself.itemModels[wself.currItemModelIndex].materialDuraion) == 0{
|
|
wself.isEndPlay = true
|
|
wself.isEndPlay = true
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+//
|
|
DispatchQueue.main.async { [weak self] in
|
|
DispatchQueue.main.async { [weak self] in
|
|
guard let wself = self else { return }
|
|
guard let wself = self else { return }
|
|
|
|
|
|
@@ -1157,7 +1160,9 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
wself.resetCurrentProgress()
|
|
wself.resetCurrentProgress()
|
|
}
|
|
}
|
|
|
|
|
|
- wself.currentPlayRecordIndex = -3 // 刚录音完,不需要播放录音
|
|
|
|
|
|
+ if wself.currMediaType == .Video {
|
|
|
|
+ wself.currentPlayRecordIndex = -3 // 刚录音完,不需要播放录音
|
|
|
|
+ }
|
|
BFLog(3, message: "重置播放index-\(#function) = \(wself.currentPlayRecordIndex)")
|
|
BFLog(3, message: "重置播放index-\(#function) = \(wself.currentPlayRecordIndex)")
|
|
recorderManager?.voiceModel = nil
|
|
recorderManager?.voiceModel = nil
|
|
|
|
|
|
@@ -1223,7 +1228,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
let currShowSubtitle = recordItem.titleStickers[showSubtitleIndex]
|
|
let currShowSubtitle = recordItem.titleStickers[showSubtitleIndex]
|
|
|
|
|
|
if CMTimeCompare(currShowSubtitle.timelineIn, time) <= 0, CMTimeCompare(currShowSubtitle.timelineOut, time) > 0 {
|
|
if CMTimeCompare(currShowSubtitle.timelineIn, time) <= 0, CMTimeCompare(currShowSubtitle.timelineOut, time) > 0 {
|
|
- // 已存在字幕
|
|
|
|
|
|
+ // 已存在不同的字幕
|
|
if subtitleLabel.text != currShowSubtitle.text {
|
|
if subtitleLabel.text != currShowSubtitle.text {
|
|
subtitleLabel.text = currShowSubtitle.text
|
|
subtitleLabel.text = currShowSubtitle.text
|
|
setSubtitleStyle(settingModel: subtitleSettingView.subtitle.setting)
|
|
setSubtitleStyle(settingModel: subtitleSettingView.subtitle.setting)
|
|
@@ -1573,7 +1578,10 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
recorderManager?.cancelTitleService()
|
|
recorderManager?.cancelTitleService()
|
|
}
|
|
}
|
|
|
|
|
|
- events.removeLast()
|
|
|
|
|
|
+ if currMediaType != .Camera{
|
|
|
|
+ events.removeLast()
|
|
|
|
+ }
|
|
|
|
+
|
|
// 删除文件
|
|
// 删除文件
|
|
recorderManager?.deleteFile(outfile: voiceModel?.wavFilePath ?? "")
|
|
recorderManager?.deleteFile(outfile: voiceModel?.wavFilePath ?? "")
|
|
var subtitleCount = itemModels[currItemModelIndex].titleStickers.count
|
|
var subtitleCount = itemModels[currItemModelIndex].titleStickers.count
|
|
@@ -1857,6 +1865,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
changeWithDrawBtnLayout(event.type)
|
|
changeWithDrawBtnLayout(event.type)
|
|
} else {
|
|
} else {
|
|
changeWithDrawBtnLayout(0)
|
|
changeWithDrawBtnLayout(0)
|
|
|
|
+ withDrawBtn.isEnabled = false
|
|
}
|
|
}
|
|
searchStopAtRecordRange()
|
|
searchStopAtRecordRange()
|
|
let itemModel = itemModels[currItemModelIndex]
|
|
let itemModel = itemModels[currItemModelIndex]
|
|
@@ -2135,9 +2144,9 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
func play() {
|
|
func play() {
|
|
//如果当前段有没有转完的发音人显示 Loadingview
|
|
//如果当前段有没有转完的发音人显示 Loadingview
|
|
if(!voiceChangeStickerFinish(itemIndex: currItemModelIndex,isShowLoadView: true)){
|
|
if(!voiceChangeStickerFinish(itemIndex: currItemModelIndex,isShowLoadView: true)){
|
|
-
|
|
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+
|
|
BFLog(1, message: "开始播放 \(currentAssetProgress.seconds)")
|
|
BFLog(1, message: "开始播放 \(currentAssetProgress.seconds)")
|
|
recorderManager?.voiceModel = nil
|
|
recorderManager?.voiceModel = nil
|
|
events.append(WithDrawModel(type: 1, timestamp: currentAssetProgress, recordItem: rscurrentManager.recordItem!))
|
|
events.append(WithDrawModel(type: 1, timestamp: currentAssetProgress, recordItem: rscurrentManager.recordItem!))
|
|
@@ -2365,7 +2374,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
DispatchQueue.main.async { [weak self] in
|
|
DispatchQueue.main.async { [weak self] in
|
|
guard let wself = self else { return }
|
|
guard let wself = self else { return }
|
|
|
|
|
|
- wself.indirectionView?.setProgress(start: startTime, progress: max(0, progress))
|
|
|
|
|
|
+ wself.indirectionView?.setProgress(start: startTime, progress: max(0, progress), isInsert:wself.currMediaType == .Image)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -2381,9 +2390,9 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
withDrawBtn.setTitle("record_recover".BFLocale, for: .normal)
|
|
withDrawBtn.setTitle("record_recover".BFLocale, for: .normal)
|
|
case 2:
|
|
case 2:
|
|
withDrawBtn.setTitle("record_undo".BFLocale, for: .normal)
|
|
withDrawBtn.setTitle("record_undo".BFLocale, for: .normal)
|
|
- case 0:
|
|
|
|
- withDrawBtn.isEnabled = false
|
|
|
|
- fallthrough
|
|
|
|
|
|
+// case 0:
|
|
|
|
+// withDrawBtn.isEnabled = false
|
|
|
|
+// fallthrough
|
|
default:
|
|
default:
|
|
withDrawBtn.setTitle("record_back".BFLocale, for: .normal)
|
|
withDrawBtn.setTitle("record_back".BFLocale, for: .normal)
|
|
}
|
|
}
|
|
@@ -2477,7 +2486,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
if isRecording, currMediaType == .Image {
|
|
if isRecording, currMediaType == .Image {
|
|
let startTime = recorderManager?.voiceModel?.startCMTime ?? .zero
|
|
let startTime = recorderManager?.voiceModel?.startCMTime ?? .zero
|
|
// 使用播放器的进度来画线,因为进度是跟着播放器来了
|
|
// 使用播放器的进度来画线,因为进度是跟着播放器来了
|
|
- indirectionView?.setProgress(start: startTime, progress: progress)
|
|
|
|
|
|
+ indirectionView?.setProgress(start: startTime, progress: progress, isInsert: true)
|
|
}
|
|
}
|
|
if currMediaType == .Image {
|
|
if currMediaType == .Image {
|
|
imageRecordProgress(isRecord: true, progress: progress)
|
|
imageRecordProgress(isRecord: true, progress: progress)
|
|
@@ -2645,7 +2654,7 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
|
|
guard let wself = self else { return }
|
|
guard let wself = self else { return }
|
|
|
|
|
|
/// 重绘录音进度视图
|
|
/// 重绘录音进度视图
|
|
-// wself.resetAllIndirectionView()
|
|
|
|
|
|
+ wself.resetAllIndirectionView()
|
|
// 重绘录音进度
|
|
// 重绘录音进度
|
|
wself.recordBtn.isEnabled = true
|
|
wself.recordBtn.isEnabled = true
|
|
wself.searchStopAtRecordRange()
|
|
wself.searchStopAtRecordRange()
|
|
@@ -2710,6 +2719,8 @@ public extension BFRecordScreenController {
|
|
recordStartPlayTime = currentAssetProgress
|
|
recordStartPlayTime = currentAssetProgress
|
|
currenStartPlayTime = CMTime.zero
|
|
currenStartPlayTime = CMTime.zero
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // 音
|
|
playRecord(at: time, periodicTimeObserver: { [weak self] currentT, _ in
|
|
playRecord(at: time, periodicTimeObserver: { [weak self] currentT, _ in
|
|
|
|
|
|
guard let wself = self else { return }
|
|
guard let wself = self else { return }
|