소스 검색

撤销录制时删除字幕

jsonwang 3 년 전
부모
커밋
78cbe09fae
1개의 변경된 파일10개의 추가작업 그리고 2개의 파일을 삭제
  1. 10 2
      BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

+ 10 - 2
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -964,10 +964,18 @@ public class BFRecordScreenController: BFBaseViewController {
                 if let modelIndex = itemModels[currItemModelIndex].voiceStickers.firstIndex(where: { mod in
                     mod.startTime == action.timestamp
                 }) {
+                    // 移除音频
                     let model = itemModels[currItemModelIndex].voiceStickers[modelIndex]
                     itemModels[currItemModelIndex].voiceStickers.remove(at: modelIndex)
-                    // 移除音频
                     indirectionView?.deleteItem(index: modelIndex)
+                    // 删除对应字幕
+                    let deleteTitiles = deleteTitles(voiceModel: model)
+                    for title in deleteTitiles{
+                        itemModels[currItemModelIndex].titleStickers.removeAll { model in
+                            title.0.timelineIn == model.timelineIn
+                        }
+                    } 
+                    //恢复被覆盖的音频
                     var tuples = action.deletedVoices
                     if tuples != nil, tuples!.count > 0 {
                         tuples!.sort { tuple1, tuple2 in
@@ -977,7 +985,7 @@ public class BFRecordScreenController: BFBaseViewController {
                             itemModels[currItemModelIndex].voiceStickers.insert(tuple.0, at: tuple.1)
                         }
                     }
-                    // 恢复字幕
+                    //恢复被覆盖的字幕
                     let titleTuples = action.deletedTittles
                     if titleTuples != nil, titleTuples!.count > 0 {
                         titleTuples?.forEach { titleTuple in