|
@@ -28,7 +28,7 @@ public class BFRecordItemModel: NSObject {
|
|
|
public var videoStickers = [PQEditVisionTrackMaterialsModel]()
|
|
|
public var imageStickers = [PQEditVisionTrackMaterialsModel]()
|
|
|
public var titleStickers = [PQEditSubTitleModel]()
|
|
|
-
|
|
|
+
|
|
|
var events = [WithDrawModel]()
|
|
|
|
|
|
public var coverImg: UIImage?
|
|
@@ -40,16 +40,16 @@ public class BFRecordItemModel: NSObject {
|
|
|
public var index = 0
|
|
|
public var width = 0
|
|
|
public var height = 0
|
|
|
- public var videoDegress : UInt = 0
|
|
|
+ public var videoDegress: UInt = 0
|
|
|
|
|
|
func initOriginData(phasset: PHAsset) {
|
|
|
width = phasset.pixelWidth
|
|
|
height = phasset.pixelHeight
|
|
|
materialDuraion = phasset.duration
|
|
|
-
|
|
|
+
|
|
|
fetchCoverImage(phasset)
|
|
|
fetchAVUrlAsset(phasset)
|
|
|
-
|
|
|
+
|
|
|
if phasset.mediaType == .image {
|
|
|
mediaType = .IMAGE
|
|
|
localPath = "image"
|
|
@@ -57,7 +57,6 @@ public class BFRecordItemModel: NSObject {
|
|
|
mediaType = .VIDEO
|
|
|
fetchPlayItem(phasset)
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
func fetchCoverImage(_ phasset: PHAsset) {
|
|
@@ -72,6 +71,11 @@ public class BFRecordItemModel: NSObject {
|
|
|
|
|
|
if image != nil {
|
|
|
self?.coverImg = image
|
|
|
+ if self?.mediaType == .IMAGE {
|
|
|
+ if let thumImage = image?.nx_scaleToSize(size: CGSize(width: 112, height: 200)) {
|
|
|
+ self?.thumbImgs.append(thumImage)
|
|
|
+ }
|
|
|
+ }
|
|
|
self?.fetchCoverImgCallBack?(image!)
|
|
|
}
|
|
|
}
|
|
@@ -89,7 +93,7 @@ public class BFRecordItemModel: NSObject {
|
|
|
}
|
|
|
|
|
|
public func fetchAVUrlAsset(_ phasset: PHAsset) {
|
|
|
- PQPHAssetVideoParaseUtil.parasToAVAsset(phAsset: phasset) {[weak self] asset, size, _, _ in
|
|
|
+ PQPHAssetVideoParaseUtil.parasToAVAsset(phAsset: phasset) { [weak self] asset, _, _, _ in
|
|
|
guard let sself = self else {
|
|
|
return
|
|
|
}
|
|
@@ -126,12 +130,12 @@ public class BFRecordItemModel: NSObject {
|
|
|
dealedDurationRanges.append(SplitRecordRange(isRecord: false, range: range, index: -1))
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- func splitVideoFileUrlFps(frames: Int, firstImagesCount:Int = 0, maxSize:CGSize = CGSize(width: 200, height: 200), splitCompleteClosure: @escaping ((Bool, [UIImage]) -> Void)) {
|
|
|
+ func splitVideoFileUrlFps(frames: Int, firstImagesCount: Int = 0, maxSize _: CGSize = CGSize(width: 200, height: 200), splitCompleteClosure: @escaping ((Bool, [UIImage]) -> Void)) {
|
|
|
guard let urlAsset = videoAsset, urlAsset.duration.seconds > 0 else {
|
|
|
return
|
|
|
}
|
|
@@ -144,7 +148,7 @@ public class BFRecordItemModel: NSObject {
|
|
|
let start = 0
|
|
|
|
|
|
let fps = Double(frames) / urlAsset.duration.seconds
|
|
|
- for i in start..<frames {
|
|
|
+ for i in start ..< frames {
|
|
|
let timeValue = NSValue(time: CMTimeMake(value: Int64(i * 1000), timescale: Int32(fps * 1000)))
|
|
|
|
|
|
times.append(timeValue)
|
|
@@ -170,15 +174,15 @@ public class BFRecordItemModel: NSObject {
|
|
|
case AVAssetImageGenerator.Result.succeeded:
|
|
|
let framImg = UIImage(cgImage: image!)
|
|
|
splitImages.append(framImg)
|
|
|
-
|
|
|
+
|
|
|
@unknown default:
|
|
|
break
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if cocu == firstImagesCount {
|
|
|
splitCompleteClosure(false, splitImages)
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if cocu == timesCount {
|
|
|
splitCompleteClosure(true, splitImages)
|
|
|
BFLog(1, message: "splitVideo: complete")
|
|
@@ -204,5 +208,4 @@ public class BFRecordItemModel: NSObject {
|
|
|
|
|
|
return cgImg == nil ? nil : UIImage(cgImage: cgImg!)
|
|
|
}
|
|
|
-
|
|
|
}
|