我通过 AVAssetImageGenerator 接收到远程视频的高/中质量缩略图,但仍然需要 10 到 15 秒才能从中获取缩略图。
有没有办法立即获得低质量缩略图?
下面的代码我用来获取远程视频的缩略图。
奇怪的是,当我下载这个视频时,它的大小是 1.1 MB,而创建的缩略图大小是 1.8 MB。
let assetForThumbnail = AVAsset(URL: videoURL)
let durationSeconds = CMTimeGetSeconds(assetForThumbnail.duration)
let generator = AVAssetImageGenerator(asset: assetForThumbnail)
generator.appliesPreferredTrackTransform = true
let time = CMTime(seconds: durationSeconds/3.0, preferredTimescale: 600)
generator.generateCGImagesAsynchronouslyForTimes([NSValue(CMTime: time)]) { (requestedTime: CMTime, thumbnail: CGImage?, actualTime: CMTime, result: AVAssetImageGeneratorResult, error: NSError?) in
print("error: \(error)")
print("status: \(result)")
if let thumbnailC = thumbnail {
let image = UIImage(CGImage: thumbnailC)
}
}
最佳答案
尝试设置 AVAssetImageGenerator
的 maximumSize
属性,如下所示:
generator.maximumSize = CGSize(width: 320, height: 320)
关于ios - 如何使用 AVAssetImageGenerator 立即获取远程视频的低质量缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42410892/