|
@@ -29,6 +29,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
|
|
|
var currItemModelIndex = 0
|
|
|
public var itemModels = [BFRecordItemModel]()
|
|
|
+ var showSubtitleIndex = 0
|
|
|
// var shouldPlayRecordIndex:Int = -1 // 当前应该播放的录音资源序号
|
|
|
var currentPlayRecordIndex: Int = -1 // >= 0 :当前正在播放的录音资源序号; -3: 刚录音完,不需要播放录音; -1:初始化阶段
|
|
|
var isRecording = false { // 是否正在录音
|
|
@@ -266,7 +267,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
subtitleLabel.text = test
|
|
|
|
|
|
subtitleLabel.numberOfLines = 0
|
|
|
- subtitleLabel.lineBreakMode = .byClipping
|
|
|
+ subtitleLabel.lineBreakMode = .byWordWrapping
|
|
|
subtitleLabel.isUserInteractionEnabled = true
|
|
|
subtitleLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(editSubtitle)))
|
|
|
return subtitleLabel
|
|
@@ -397,8 +398,14 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
|
|
|
self?.setSubtitleStyle(settingModel: subtitileModel.setting)
|
|
|
}
|
|
|
- subtitleEditView.editSubtitleDone = { [weak self] newtext in
|
|
|
+ subtitleEditView.editSubtitleDone = { [weak self] newtext ,index in
|
|
|
+ //1,刷新 UI
|
|
|
self?.subtitleLabel.text = newtext
|
|
|
+
|
|
|
+ self?.setSubtitleStyle(settingModel: (self?.subtitleSettingView.subtitle.setting)!)
|
|
|
+
|
|
|
+ //更新数据
|
|
|
+ self?.itemModels[self?.currItemModelIndex ?? 0].titleStickers[index].text = newtext
|
|
|
}
|
|
|
|
|
|
layoutsubview()
|
|
@@ -410,22 +417,25 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
BFLog(message: "编辑字幕")
|
|
|
subtitleEditView.isHidden = false
|
|
|
subtitleEditView.textView.becomeFirstResponder()
|
|
|
- subtitleEditView.setNewText(text: subtitleLabel.text ?? "")
|
|
|
+ subtitleEditView.setNewText(text: subtitleLabel.text ?? "",index: showSubtitleIndex)
|
|
|
}
|
|
|
|
|
|
/// 更新字幕,在回放时使用
|
|
|
/// - Parameter time: 当前播放的进度
|
|
|
func updateSubtitle(time: CMTime) {
|
|
|
var findShowSubtitle: PQEditSubTitleModel?
|
|
|
- for subtitle in itemModels[currItemModelIndex].titleStickers {
|
|
|
+ for (index,subtitle) in itemModels[currItemModelIndex].titleStickers.enumerated() {
|
|
|
if subtitle.timelineIn <= CMTimeGetSeconds(time) * 1_000_000, subtitle.timelineOut >= CMTimeGetSeconds(time) * 1_000_000 {
|
|
|
findShowSubtitle = subtitle
|
|
|
BFLog(message: "找到要显示的字幕 in \(findShowSubtitle?.timelineIn ?? 0.0) out \(findShowSubtitle?.timelineOut ?? 0.0) text:\(findShowSubtitle?.text ?? "") currTime is \(CMTimeGetSeconds(time))")
|
|
|
+ showSubtitleIndex = index
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
if findShowSubtitle != nil {
|
|
|
subtitleLabel.text = findShowSubtitle?.text
|
|
|
+ setSubtitleStyle(settingModel: subtitleSettingView.subtitle.setting)
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -440,7 +450,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
subtitleLabel.textColor = settingModel.fontColor
|
|
|
|
|
|
let leftPoint: CGFloat = 37
|
|
|
- let height = sizeWithText(text: subtitleLabel.text ?? "", font: UIFont.systemFont(ofSize: CGFloat(settingModel.subtitleSize * 375 / 1080)), size: CGSize(width: cScreenWidth - leftPoint * 2, height: 102))
|
|
|
+ let height = sizeWithText(text: subtitleLabel.text ?? "", font: UIFont.boldSystemFont(ofSize: CGFloat(settingModel.subtitleSize * 375 / 1080)), size: CGSize(width: cScreenWidth - leftPoint * 2, height: 102))
|
|
|
|
|
|
// 下 //设置位置
|
|
|
if subtitleSettingView.subtitle.setting.subtitlePoint == 0 {
|