Przeglądaj źródła

修改字幕的显示时间和结束时间

jsonwang 3 lat temu
rodzic
commit
ae45bbd6fd

+ 6 - 6
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -1300,14 +1300,14 @@ extension BFRecordScreenController: PQSpeechTranscriberUtilDelegate {
 
         let payload = dicResult?["payload"] as? [String: Any]
 
-        BFLog(message: "识别结果:dicResult is \(String(describing: dicResult)) \((payload?["result"])!)")
+        BFLog(message: "识别结果:) \((payload?["result"])!) startTime:\((self.recorderManager.voiceModel?.startTime ?? 0.0))")
         DispatchQueue.main.async {
-            // 2,保存字幕数据
+            //1,保存字幕数据 begin_time是开始出现文字的时间,time 是结束文字出现的时间 单位都为毫秒,都是相对于录制音频数据整段时间。self.recorderManager.voiceModel?.startTime 为开始的录制的时间,开始和结束都要加上这个时差
+            
             let newSubtitle = PQEditSubTitleModel()
-            newSubtitle.timelineIn = self.itemModels[self.currItemModelIndex].titleStickers.last?.timelineOut ?? 0
-            // 当前已处理的音频时长,单位:毫秒。
-
-            newSubtitle.timelineOut = Float64(((payload?["time"]) as? Int) ?? 0) / 1000.0 + (self.recorderManager.voiceModel?.startTime ?? 0.0)
+            newSubtitle.timelineIn = (self.recorderManager.voiceModel?.startTime ?? 0.0) + Float64(((payload?["begin_time"]) as? Int) ?? 0) / 1000.0
+            // 单位:毫秒。
+            newSubtitle.timelineOut = (self.recorderManager.voiceModel?.startTime ?? 0.0) +  Float64(((payload?["time"]) as? Int) ?? 0) / 1000.0
             var showText = ((payload?["result"]) as? String) ?? ""
             if showText.count > subtitleMaxlength {
                 showText = showText.substring(to: subtitleMaxlength)