ios - 需要在为 iOS 搜索(如 youtube)时显示预览视频缩略图
问题描述
我需要在 AVPlayer 中搜索时显示视频预览缩略图。就像 youtube 显示它们一样。(iOS) (也适用于直播)(Wowza/Amazon S3 首选解决方案)
解决方案
你可以试试这个:
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:) 获得更高的效率,该方法采用的解码效率类似于播放期间使用的解码效率。
推荐阅读
- ios - Swift 4.2 和 Xcode 10.1 - 提示计算器立即崩溃
- r - 如何按行获取非零元素的平均值,改变条件使用哪些列
- r - 如何在 R 中模拟增长率数据的向量
- python - 如何从python中的logititude和lattitude获取位置?
- amazon-ec2 - 使用本地环境替换 cloudformation 模板中的变量
- flutter - Flutter - firebase_dynamic_links:无法通知依赖解析侦听器
- sql-server - SQL获取日期范围
- c - unix 域套接字的临时文件
- reactjs - 如何使用jquery从函数内部触发handleChange事件并做出反应?
- javascript - 如何暂停之前的音频功能?