直接上代码
//获取缩略图
static func thumbnail(url: URL) -> UIImage? {
let video = AVURLAsset(url: url, options: [:])
let assetImgGenerate = AVAssetImageGenerator(asset: video)
assetImgGenerate.appliesPreferredTrackTransform = true
let videoDuration:CMTime = video.duration
let numerator = Int64(1)
let denominator = videoDuration.timescale
let time = CMTimeMake(value: numerator, timescale: denominator)
do {
let img = try assetImgGenerate.copyCGImage(at: time, actualTime: nil)
let thumbnail = UIImage(cgImage: img)
return thumbnail
} catch {
return nil
}
}
//下面的代码也可以获取缩略图,但横竖会反了
static func thumbnail(url: URL) -> UIImage? {
let asset = AVAsset(url: url)
var thumnailTime = asset.duration
thumnailTime.value = 1
let assetImgGenerate = AVAssetImageGenerator(asset: asset)
do {
let imageRef = try assetImgGenerate.copyCGImage(at: thumnailTime, actualTime: nil)
let thumbnail = UIImage(cgImage: imageRef)
return thumbnail
} catch let error {
print(error)
}
return nil
}