在当前时间创建 AVPlayer 的缩略图或图像 [英] Create a thumbnail or image of an AVPlayer at current time

查看:26
本文介绍了在当前时间创建 AVPlayer 的缩略图或图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经实现了一个 AVPlayer 并且我想在点击工具栏按钮时拍摄一个图像或缩略图,并在一个新的 UIViewControllerUIImageView 中打开代码>.图像应该像 AVPlayer 一样缩放.segue 已经在工作,我只需要实现我在当前播放时间获取图像.

谢谢!

解决方案

Objective-C

AVAsset *asset = [AVAsset assetWithURL:sourceURL];AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc]initWithAsset:asset];CMTime 时间 = CMTimeMake(1, 1);CGImageRef imageRef = [imageGenerator copyCGImageAtTime:time actualTime:NULL 错误:NULL];UIImage *thumbnail = [UIImage imageWithCGImage:imageRef];CGImageRelease(imageRef);//CGImageRef 不会被ARC释放

迅捷

var asset = AVAsset.assetWithURL(sourceURL)var imageGenerator = AVAssetImageGenerator(资产:资产!)var 时间 = CMTimeMake(1, 1)var imageRef = 试试!imageGenerator!.copyCGImageAtTime(time, actualTime: nil)var 缩略图 = UIImage.imageWithCGImage(imageRef)CGImageRelease(imageRef)//CGImageRef 不会被ARC释放

Swift 3.0

var sourceURL = URL(string: "Your Asset URL")var asset = AVAsset(url: sourceURL!)var imageGenerator = AVAssetImageGenerator(资产:资产)var 时间 = CMTimeMake(1, 1)var imageRef = 试试!imageGenerator.copyCGImage(at: time, actualTime: nil)var 缩略图 = UIImage(cgImage:imageRef)

<块引用>

注意:根据您的 Swift 版本解释 Swift 代码.

I have implemented an AVPlayer and i want to take an image or thumbnail when clicking on a toolbar button and open in a new UIViewController with UIImageView. The image should be scaled exactly like the AVPlayer. The segue is already working, i just have to implement that i get the image at the current play time.

Thanks!

解决方案

Objective-C

AVAsset *asset = [AVAsset assetWithURL:sourceURL];
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc]initWithAsset:asset];
CMTime time = CMTimeMake(1, 1);
CGImageRef imageRef = [imageGenerator copyCGImageAtTime:time actualTime:NULL error:NULL];
UIImage *thumbnail = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);  // CGImageRef won't be released by ARC

Swift

var asset = AVAsset.assetWithURL(sourceURL)
var imageGenerator = AVAssetImageGenerator(asset: asset!)
var time = CMTimeMake(1, 1)
var imageRef = try! imageGenerator!.copyCGImageAtTime(time, actualTime: nil)
var thumbnail = UIImage.imageWithCGImage(imageRef)
CGImageRelease(imageRef) // CGImageRef won't be released by ARC 

Swift 3.0

var sourceURL = URL(string: "Your Asset URL")
var asset = AVAsset(url: sourceURL!)
var imageGenerator = AVAssetImageGenerator(asset: asset)
var time = CMTimeMake(1, 1)
var imageRef = try! imageGenerator.copyCGImage(at: time, actualTime: nil)
var thumbnail = UIImage(cgImage:imageRef)

Note : Interpret Swift code according to your swift version.

这篇关于在当前时间创建 AVPlayer 的缩略图或图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆