Я показываю эскизы видео в UICollectionView
, и мне интересно, сколько времени требуется для использования AVAssetImageGenerator
устройства. Прямо сейчас, когда каждая ячейка удаляется из очереди, я вызываю функцию, чтобы получить UIImage
из загружаемого URL-адреса, который я установил, и производительность медленная и тормозит. Является ли вызов этой функции с URL-адресом загружаемого видео плохой идеей?
func getThumbnail(for url: String) -> UIImage {
guard let url = URL(string: url) else { return UIImage() }
let asset = AVAsset(url: url)
let assetImageGenerator = AVAssetImageGenerator(asset: asset)
assetImageGenerator.appliesPreferredTrackTransform = true
assetImageGenerator.apertureMode = AVAssetImageGenerator.ApertureMode.encodedPixels
guard let time = TimeInterval(exactly: 1) else { return UIImage() }
let cmTime = CMTime(seconds: time, preferredTimescale: 60)
let thumbnailImage: CGImage
do {
thumbnailImage = try assetImageGenerator.copyCGImage(at: cmTime, actualTime: nil)
} catch {
return UIImage()
}
return UIImage(cgImage: thumbnailImage)
}