|
@@ -71,7 +71,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
var isStopAtRecordRange = -1
|
|
|
|
|
|
|
|
|
- var saveSubTitles:[PQEditSubTitleModel] = Array.init()
|
|
|
+
|
|
|
|
|
|
let recordSettings:[String : Any] = [AVSampleRateKey : 44100.0,
|
|
|
AVFormatIDKey : kAudioFormatLinearPCM,
|
|
@@ -407,7 +407,18 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
|
|
|
|
|
|
func updateSubtitle(time:CMTime) {
|
|
|
-
|
|
|
+
|
|
|
+ var findShowSubtitle:PQEditSubTitleModel?
|
|
|
+ for subtitle in itemModels[currItemModelIndex].titleStickers {
|
|
|
+ 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))")
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(findShowSubtitle != nil){
|
|
|
+ subtitleLabel.text = findShowSubtitle?.text
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -615,16 +626,23 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
|
|
|
assetPlayer?.play()
|
|
|
|
|
|
- speechTranscriberUtil?.delegate = self
|
|
|
- speechTranscriberUtil?.startTranscriber()
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+ DispatchQueue.global().async {[weak self] in
|
|
|
+ guard let sself = self else {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sself.speechTranscriberUtil?.delegate = sself
|
|
|
+ sself.speechTranscriberUtil?.startTranscriber()
|
|
|
+ sself.speechTranscriberUtil?.currItemModelIndex = Int32(sself.currItemModelIndex)
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@objc func endRecord(){
|
|
|
|
|
|
- speechTranscriberUtil?.endTranscriber()
|
|
|
+ DispatchQueue.global().async {
|
|
|
+ self.speechTranscriberUtil?.endTranscriber()
|
|
|
+ }
|
|
|
playBtn.isSelected = true
|
|
|
|
|
|
isRecording = false
|
|
@@ -997,6 +1015,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
if su{
|
|
|
self?.progressThumV.progress = time.seconds
|
|
|
}
|
|
|
+ self?.updateSubtitle(time: time)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1109,16 +1128,19 @@ extension BFRecordScreenController:PQSpeechTranscriberUtilDelegate{
|
|
|
DispatchQueue.main.async {
|
|
|
|
|
|
|
|
|
- self.subtitleLabel.text = ((payload?["result"]) as? String) ?? ""
|
|
|
+
|
|
|
self.setSubtitleStyle(settingModel: self.subtitleSettingView.subtitle.setting)
|
|
|
|
|
|
|
|
|
let newSubtitle = PQEditSubTitleModel()
|
|
|
-
|
|
|
-
|
|
|
+ newSubtitle.timelineIn = self.itemModels[self.currItemModelIndex].titleStickers.last?.timelineOut ?? 0
|
|
|
+
|
|
|
+ newSubtitle.timelineOut = Float64(((payload?["time"]) as? Int) ?? 0) * 1_000_000
|
|
|
newSubtitle.text = ((payload?["result"]) as? String) ?? ""
|
|
|
newSubtitle.setting = self.subtitleSettingView.subtitle.setting
|
|
|
- self.saveSubTitles.append(newSubtitle)
|
|
|
+
|
|
|
+ self.itemModels[self.currItemModelIndex].titleStickers.append(newSubtitle)
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|