如何使用AVAssetImageGenerator立即获得远程视频的低质量缩略图

时间:2017-02-23 08:49:10

标签: ios objective-c swift swift3 swift2

我通过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)
     }

}

1 个答案:

答案 0 :(得分:1)

尝试设置AVAssetImageGenerator的{​​{1}}属性,如下所示:

  

generator.maximumSize = CGSize(宽度:320,高度:320)