首页 > 解决方案 > 需要在为 iOS 搜索(如 youtube)时显示预览视频缩略图

问题描述

我需要在 AVPlayer 中搜索时显示视频预览缩略图。就像 youtube 显示它们一样。(iOS) (也适用于直播)(Wowza/Amazon S3 首选解决方案)

标签: iosamazon-s3video-streamingvideo-processingwowza

解决方案


你可以试试这个:

extension AVAsset {

    func getPreviewImage(for timeInSeconds: Int = 0) -> UIImage? {
        let imageGenerator = AVAssetImageGenerator(asset: self)
        imageGenerator.requestedTimeToleranceBefore = .zero
        imageGenerator.requestedTimeToleranceAfter = .zero
        imageGenerator.appliesPreferredTrackTransform = true
        guard let cgImage = try? imageGenerator.copyCGImage(at: CMTime(value: CMTimeValue(timeInSeconds), timescale: 1), actualTime: nil) else { return nil }
        return UIImage(cgImage: cgImage)
    }

}

您不应该在主线程中获得预览。

如果您需要一系列预览图像,您可以试试这个

如果您需要一系列图像,则可以使用异步方法 generateCGImagesAsynchronously(forTimes:completionHandler:) 获得更高的效率,该方法采用的解码效率类似于播放期间使用的解码效率。


推荐阅读