17 lines
623 B
Swift
17 lines
623 B
Swift
|
import AVFoundation
|
||
|
import UIKit
|
||
|
|
||
|
extension AVAsset {
|
||
|
func generateVideoThumbnail(_ size: CGSize) async throws -> UIImage {
|
||
|
try await Task {
|
||
|
let assetImgGenerate = AVAssetImageGenerator(asset: self)
|
||
|
assetImgGenerate.appliesPreferredTrackTransform = true
|
||
|
let time = CMTimeMakeWithSeconds(Float64(1), preferredTimescale: 600)
|
||
|
let cgImage = try assetImgGenerate.copyCGImage(at: time, actualTime: nil)
|
||
|
let image = UIImage(cgImage: cgImage)
|
||
|
let result = try await image.scaleAndCropImage(size)
|
||
|
return result
|
||
|
}.value
|
||
|
}
|
||
|
}
|