| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- //
- // BFRecordItemModel.swift
- // BFRecordScreenKit
- //
- // Created by 胡志强 on 2021/12/6.
- //
- import Foundation
- import BFFramework
- struct SplitRecordRange {
- var isRecord:Bool = false
- var range:CMTimeRange
- var index:Int
- }
- public class BFRecordItemModel: NSObject {
- var baseMaterial : AVURLAsset?
- var dealedDurationRanges = [SplitRecordRange]()
- public var voiceStickers = [PQVoiceModel]() //
- public var videoStickers = [PQEditVisionTrackMaterialsModel]()
- public var imageStickers = [PQEditVisionTrackMaterialsModel]()
- public var titleStickers = [PQEditSubTitleModel]()
- public var index = 0
- public var width = 0
- public var height = 0
-
- func generationTimeRanges(needSort:Bool = false) {
-
- dealedDurationRanges.removeAll()
-
- var start : Double = 0
-
- var list: [PQVoiceModel]
- list = voiceStickers.sorted { model1, model2 in
- model1.startTime < model2.startTime
- }
-
- for model in list {
-
- if model.startTime > start{
- //
- let range = CMTimeRange(start: CMTime(seconds: start, preferredTimescale: 100), duration: CMTime(seconds: model.startTime - start, preferredTimescale: 100))
- dealedDurationRanges.append(SplitRecordRange(isRecord: false, range: range, index: -1))
- }
- let ind = voiceStickers.firstIndex(of: model)
- let range = CMTimeRange(start: CMTime(seconds: model.startTime, preferredTimescale: 100), end: CMTime(seconds: model.endTime, preferredTimescale: 100))
- dealedDurationRanges.append(SplitRecordRange(isRecord: true, range: range, index: ind ?? -1))
- start = model.endTime
- }
- if start < baseMaterial?.duration.seconds ?? 0 {
- let range = CMTimeRange(start: CMTime(seconds: start, preferredTimescale: 100), end: CMTime(seconds: baseMaterial?.duration.seconds ?? 0, preferredTimescale: 100))
- dealedDurationRanges.append(SplitRecordRange(isRecord: false, range: range, index: -1))
- }
-
- }
- }
|