公司项目里有一个视频上传的功能,但是上传成功后没有封面,后来百度了一下找到了这个方法截取视频的某一帧作为封面,可以自己设置。剩下的就是普通的图片上传了,很简单的,以下就是方法:
-(UIImage *)assetGetThumImage:(CGFloat)second videoUrl:(NSURL *)videoUrl
{
AVURLAsset *urlSet = [AVURLAsset assetWithURL:videoUrl];
AVAssetImageGenerator *imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:urlSet];
NSError *error = nil;
CMTime time = CMTimeMake(second,1);//缩略图创建时间 CMTime是表示电影时间信息的结构体,第一个参数表示是视频第几秒,第二个参数表示每秒帧数.(如果要获得某一秒的第几帧可以使用CMTimeMake方法)
CMTime actucalTime; //缩略图实际生成的时间
CGImageRef cgImage = [imageGenerator copyCGImageAtTime:time actualTime:&actucalTime error:&error];
if (error) {
}
CMTimeShow(actucalTime);
UIImage *image = [UIImage imageWithCGImage:cgImage];
//UIImageWriteToSavedPhotosAlbum(image,nil, nil,nil);//将图片保存在相册里,如果需要的话就可以把注释去掉
CGImageRelease(cgImage);
return image;
}