Przeglądaj źródła

撤销录制时删除字幕

jsonwang 3 lat temu
rodzic
commit
78cbe09fae

+ 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