我正在努力展示视频的缩略图。 这是我的代码。
override func viewDidLoad() {
super.viewDidLoad()
for str in self.imgArray
{
let url = NSURL(string: str)
let movieAsset = AVURLAsset(URL: url!, options: nil)
let assetImageGemerator = AVAssetImageGenerator(asset: movieAsset)
assetImageGemerator.appliesPreferredTrackTransform = true
let frameRef = try! assetImageGemerator.copyCGImageAtTime(CMTimeMake(1, 2), actualTime: nil)
let image = UIImage(CGImage: frameRef)
self.imagesArray.append(image)
}
}
通过使用这个我正确地获得缩略图。问题是生成缩略图图像有大约5-10秒的延迟。无论如何我可以提高这段代码的速度并快速生成缩略图吗?
答案 0 :(得分:0)
我认为没有办法真正加快代码速度 - 尝试使用CMTimeMake(0, 10)
。也许它会使代码更快,因为一些视频文件需要一些时间来寻找。
我认为您需要缓存从代码中获取的图像,并在下次查看缓存的图像,以便整体运行得更快。有很多方法可以缓存图像 - 使用NSCache
是一种选择。
作为旁注,它不会花费5-10秒来获取缩略图。通常不到一秒钟。