Производительность AVAssetImageGenerator с ресурсом url - PullRequest
0 голосов
/ 08 мая 2020

Я показываю эскизы видео в 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)
}
...