/**
根据视频的URL来获取视频封面截图
@param videoURL 视频URL
@param enableSave 是否将封面截图保存到本地
@return 返回封面截图
*/
- (UIImage *)imageWithVideoURL: (NSURL *)videoURL enableSave: (BOOL)enableSave {
//1、根据视频URL创建 AVURLAsset
AVURLAsset *urlAsset = [AVURLAsset assetWithURL:videoURL];
//2、根据 AVURLAsset 创建 AVAssetImageGenerator对象
AVAssetImageGenerator *imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:urlAsset];
//3、定义获取0帧处的视频截图
CMTime time = CMTimeMake(1,10);//缩略图创建时间 CMTime是表示电影时间信息的结构体,第一个参数表示是视频第几秒,第二个参数表示每秒帧数.(如果要活的某一秒的第几帧可以使用CMTimeMake方法)
NSError *error = nil;
CMTime actucalTime; //缩略图实际生成的时间
//4、获取time处的视频截图
CGImageRef cgImage = [imageGenerator copyCGImageAtTime:time actualTime:&actucalTime error:&error];
if (error) {
// NSLog(@"截取视频图片失败:%@",error.localizedDescription);
}
//5、将 CGImageRef 转化为 UIImage
UIImage *image = [UIImage imageWithCGImage:cgImage];
//6、将其存储到本地相册
if (enableSave) {
UIImageWriteToSavedPhotosAlbum(image,nil, nil,nil);
}
CGImageRelease(cgImage);
return image;
} |
|