为啥我使用 AVAssetImageGenerator 的视频缩略图没有显示?
Posted
技术标签:
【中文标题】为啥我使用 AVAssetImageGenerator 的视频缩略图没有显示?【英文标题】:Why is my thumbnail from video using AVAssetImageGenerator is not showing?为什么我使用 AVAssetImageGenerator 的视频缩略图没有显示? 【发布时间】:2020-08-13 18:29:43 【问题描述】:我正在从视频中生成缩略图。但是在这个数据中显示错误下面是我的代码:
- (UIImage *)thumbnailImageFromURL:(NSURL *)videoURL
AVAsset* asset = [AVAsset assetWithURL:videoURL];
AVAssetImageGenerator *generate = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset];
generate.requestedTimeToleranceAfter = kCMTimeZero;
generate.requestedTimeToleranceBefore = kCMTimeZero;
generate.appliesPreferredTrackTransform = YES;
NSError *error;
CMTime time = asset.duration;
CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:nil error:&error];
UIImage *thumb = [UIImage imageWithCGImage:imgRef];
CGImageRelease(imgRef);
return thumb;
并且这段代码显示错误:
Error Domain=AVFoundationErrorDomain Code=-11832 "Cannot Open" UserInfo=NSLocalizedFailureReason=This media cannot be used., NSLocalizedDescription=Cannot Open, NSUnderlyingError=0x6000001e8d20 Error Domain=NSOSStatusErrorDomain Code=-12431 "(null)"
有人知道原因吗?谢谢。
【问题讨论】:
【参考方案1】:您可能必须指定actualTime
。
【讨论】:
你能为我解释一下细节吗? 其实我错了……好久没看Obj-C了。可能是您输入的time
,您将其设置为持续时间(即,您已将其设置到最后)。也许尝试开始(即 0)。
我假设它是一个有效的 url。以上是关于为啥我使用 AVAssetImageGenerator 的视频缩略图没有显示?的主要内容,如果未能解决你的问题,请参考以下文章