|
@@ -370,26 +370,25 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
}
|
|
}
|
|
return collectionView
|
|
return collectionView
|
|
}()
|
|
}()
|
|
-
|
|
|
|
- //debug
|
|
|
|
|
|
+
|
|
|
|
+ // debug
|
|
lazy var neoNuiDebugLabel: UILabel = {
|
|
lazy var neoNuiDebugLabel: UILabel = {
|
|
- let neoNuiDebugLabel = UILabel.init(frame: CGRect.init(x: 0, y: 100, width: 200, height: 24))
|
|
|
|
|
|
+ let neoNuiDebugLabel = UILabel(frame: CGRect(x: 0, y: 100, width: 200, height: 24))
|
|
neoNuiDebugLabel.backgroundColor = .black
|
|
neoNuiDebugLabel.backgroundColor = .black
|
|
neoNuiDebugLabel.textColor = .white
|
|
neoNuiDebugLabel.textColor = .white
|
|
neoNuiDebugLabel.textAlignment = .left
|
|
neoNuiDebugLabel.textAlignment = .left
|
|
return neoNuiDebugLabel
|
|
return neoNuiDebugLabel
|
|
|
|
|
|
}()
|
|
}()
|
|
|
|
+
|
|
lazy var audioQueueRecoderLabel: UILabel = {
|
|
lazy var audioQueueRecoderLabel: UILabel = {
|
|
- let audioQueueRecoderLabel = UILabel.init(frame: CGRect.init(x: 0, y: 125, width: 200, height: 24))
|
|
|
|
|
|
+ let audioQueueRecoderLabel = UILabel(frame: CGRect(x: 0, y: 125, width: 200, height: 24))
|
|
audioQueueRecoderLabel.backgroundColor = .black
|
|
audioQueueRecoderLabel.backgroundColor = .black
|
|
audioQueueRecoderLabel.textColor = .white
|
|
audioQueueRecoderLabel.textColor = .white
|
|
audioQueueRecoderLabel.textAlignment = .left
|
|
audioQueueRecoderLabel.textAlignment = .left
|
|
return audioQueueRecoderLabel
|
|
return audioQueueRecoderLabel
|
|
|
|
|
|
}()
|
|
}()
|
|
-
|
|
|
|
-
|
|
|
|
|
|
|
|
// MARK: - ----------------- 生命周期
|
|
// MARK: - ----------------- 生命周期
|
|
|
|
|
|
@@ -571,16 +570,15 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
// 移除
|
|
// 移除
|
|
self?.indirectionView?.deleteItem(isCurrent: true)
|
|
self?.indirectionView?.deleteItem(isCurrent: true)
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
recorderManager?.NeoNuiDebugHandle = { [weak self] msg in
|
|
recorderManager?.NeoNuiDebugHandle = { [weak self] msg in
|
|
self?.neoNuiDebugLabel.text = "录音机:\(msg ?? "")"
|
|
self?.neoNuiDebugLabel.text = "录音机:\(msg ?? "")"
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
recorderManager?.AudioQueueRecoderDebugHandle = { [weak self] msg in
|
|
recorderManager?.AudioQueueRecoderDebugHandle = { [weak self] msg in
|
|
self?.audioQueueRecoderLabel.text = "字幕服务:\(msg ?? "")"
|
|
self?.audioQueueRecoderLabel.text = "字幕服务:\(msg ?? "")"
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+
|
|
view.backgroundColor = .black
|
|
view.backgroundColor = .black
|
|
view.addSubview(collectionView)
|
|
view.addSubview(collectionView)
|
|
// playView = GPUImageView(frame: view.bounds)
|
|
// playView = GPUImageView(frame: view.bounds)
|
|
@@ -595,7 +593,6 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
view.addSubview(subtitleBtn)
|
|
view.addSubview(subtitleBtn)
|
|
view.addSubview(soundSettingBtn)
|
|
view.addSubview(soundSettingBtn)
|
|
view.addSubview(subtitleSettingView)
|
|
view.addSubview(subtitleSettingView)
|
|
-
|
|
|
|
|
|
|
|
view.addSubview(audioSettingView)
|
|
view.addSubview(audioSettingView)
|
|
|
|
|
|
@@ -645,11 +642,9 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
if !SWNetRequest.isNetReachabled() {
|
|
if !SWNetRequest.isNetReachabled() {
|
|
cShowHUB(superView: view, msg: "网络不佳,字幕可能无法生成")
|
|
cShowHUB(superView: view, msg: "网络不佳,字幕可能无法生成")
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
view.addSubview(neoNuiDebugLabel)
|
|
view.addSubview(neoNuiDebugLabel)
|
|
view.addSubview(audioQueueRecoderLabel)
|
|
view.addSubview(audioQueueRecoderLabel)
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@objc func editSubtitle() {
|
|
@objc func editSubtitle() {
|
|
@@ -892,6 +887,9 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
let model = itemModels[currItemModelIndex].voiceStickers[isStopAtRecordRange]
|
|
let model = itemModels[currItemModelIndex].voiceStickers[isStopAtRecordRange]
|
|
itemModels[currItemModelIndex].voiceStickers.remove(at: isStopAtRecordRange)
|
|
itemModels[currItemModelIndex].voiceStickers.remove(at: isStopAtRecordRange)
|
|
indirectionView?.deleteItem(index: isStopAtRecordRange)
|
|
indirectionView?.deleteItem(index: isStopAtRecordRange)
|
|
|
|
+ var event = WithDrawModel(type: 3, timestamp: currentAssetProgress.seconds, deletedVoices: [(model, isStopAtRecordRange)])
|
|
|
|
+ event.deletedTittles = deleteTitles(voiceModel: model)
|
|
|
|
+ events.append(event)
|
|
// 注:删除录音后图片素材需要回撤指针进度,同时后面录音往前挪
|
|
// 注:删除录音后图片素材需要回撤指针进度,同时后面录音往前挪
|
|
if itemModels[currItemModelIndex].mediaType == .IMAGE {
|
|
if itemModels[currItemModelIndex].mediaType == .IMAGE {
|
|
let currDuration = model.endTime - model.startTime
|
|
let currDuration = model.endTime - model.startTime
|
|
@@ -909,11 +907,6 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
/// 重绘录音进度视图
|
|
/// 重绘录音进度视图
|
|
resetAllIndirectionView()
|
|
resetAllIndirectionView()
|
|
}
|
|
}
|
|
-
|
|
|
|
- var event = WithDrawModel(type: 3, timestamp: currentAssetProgress.seconds, deletedVoices: [(model, isStopAtRecordRange)])
|
|
|
|
- event.deletedTittles = deleteTitles(voiceModel: model)
|
|
|
|
- events.append(event)
|
|
|
|
-
|
|
|
|
searchStopAtRecordRange()
|
|
searchStopAtRecordRange()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1039,15 +1032,27 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
} else if action.type == 3 {
|
|
} else if action.type == 3 {
|
|
// 恢复删除录音
|
|
// 恢复删除录音
|
|
var tuples = action.deletedVoices
|
|
var tuples = action.deletedVoices
|
|
- if tuples != nil, tuples!.count > 0 {
|
|
|
|
- tuples!.sort { tuple1, tuple2 in
|
|
|
|
- tuple1.1 < tuple2.1
|
|
|
|
|
|
+ tuples?.sort { tuple1, tuple2 in
|
|
|
|
+ tuple1.1 < tuple2.1
|
|
|
|
+ }
|
|
|
|
+ if itemModels[currItemModelIndex].mediaType == .VIDEO {
|
|
|
|
+ tuples?.forEach { tuple in
|
|
|
|
+ itemModels[currItemModelIndex].voiceStickers.insert(tuple.0, at: tuple.1)
|
|
}
|
|
}
|
|
|
|
+ } else {
|
|
tuples?.forEach { tuple in
|
|
tuples?.forEach { tuple in
|
|
itemModels[currItemModelIndex].voiceStickers.insert(tuple.0, at: tuple.1)
|
|
itemModels[currItemModelIndex].voiceStickers.insert(tuple.0, at: tuple.1)
|
|
|
|
+ let currDuration = tuple.0.endTime - tuple.0.startTime
|
|
|
|
+ itemModels[currItemModelIndex].materialDuraion = itemModels[currItemModelIndex].materialDuraion + currDuration
|
|
|
|
+ for (index, item) in itemModels[currItemModelIndex].voiceStickers.enumerated() {
|
|
|
|
+ if index > tuple.1 {
|
|
|
|
+ // 注:开始时间减去duration or 等一前一段录音的结束时间
|
|
|
|
+ item.startTime += currDuration
|
|
|
|
+ item.endTime += currDuration
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
// 恢复字幕
|
|
// 恢复字幕
|
|
let titleTuples = action.deletedTittles
|
|
let titleTuples = action.deletedTittles
|
|
if titleTuples != nil, titleTuples!.count > 0 {
|
|
if titleTuples != nil, titleTuples!.count > 0 {
|
|
@@ -1536,10 +1541,10 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
|
|
|
self?.isNormalPlaying = false
|
|
self?.isNormalPlaying = false
|
|
self?.isEndPlay = true
|
|
self?.isEndPlay = true
|
|
-
|
|
|
|
|
|
+
|
|
self?.subtitleBtn.isHidden = false
|
|
self?.subtitleBtn.isHidden = false
|
|
self?.soundSettingBtn.isHidden = false
|
|
self?.soundSettingBtn.isHidden = false
|
|
-
|
|
|
|
|
|
+
|
|
if self?.isRecording ?? false {
|
|
if self?.isRecording ?? false {
|
|
self?.endRecord()
|
|
self?.endRecord()
|
|
cShowHUB(superView: nil, msg: "此视频已录制到头了哦")
|
|
cShowHUB(superView: nil, msg: "此视频已录制到头了哦")
|