获取视频预览图,其中使用SDImage的缓存图片功能:
-(void)视频ImagewithURL:(NSURL*)视频URL:(NSURL*)视频URL时间{
/查找是否有图片
SDImageCache*Cache=[SDeImagCache sharedImageCache];
UIImage*MemyImage=[cache imageFromMemoryCacheForKey:videoURL.absoluteString];图像*
如果(内存图像){自.图像=内存图像;
返回;
}{<
uiImage*diskImage=[缓存imageFromDiskCacheForKey:videoURL.absoluteString];
(DiskImage){
>图像=diskImage;
返回;
}}}
如果(!(时间){
time=1;
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
资产=[[AVURLAsset alloc]initWithURL:视频URL选项:nil];
NSParameterAssert(资产);
资产生成器*setImageGenerator*setImageGenerator=[[AVAssetImageGenerator alloc]in itWAsset:Asset];
assetImageGenerator.appliesPreferredTrackTransform=>yes;
assetImageGenerator.requestedTimeToleranceAfter=timmeZero;//必须设置,否则时间对应于
assetImageGenerator.requestedTimeToleranceBefore=kCMTimeZero;//必须设置,否则时间不对应于
资产图像生成器。ApertureMode=AVAssetImageGeneratorApertureModeEncodedPixels;
CGImageRef thnailImageRef=null;
CFTimeInterval拇指nailImageTime=Time;
NSError*umbnailImageGenerationError=nil;
拇指nailImageRef=[assetImagegenereImageImageTime:CMTimeMakeWithSects(时间,10)实际时间:错误:&;umbailnImageGenerationGenerer];>p>
if>
调度_异步(调度_GET_main_Queue(),^{
SDImageCache*Cache=[SDImageCache sharedeCache];
[缓存存储ImageToMemory:umbnailImage Forkey:visual URL.AbteString];
Self。
}>
+(NSTimeInterval)getVideoTimeWithURL:(NSString*)urlstr{
<>nsURLurlsetAssetLurlAssetAsr:
<forKey:AVURLAssetPreferPreciseDurationAndTimingKey];//初始化视频媒体文件int分钟=0;第二=urlAsset.duration.value/(浮动)urlAsset.工期。时间刻度;//获取视频总时长,单位秒
/nslog(@“电影持续时间:%d”,第二);
返回秒;
}
}
//获取视频大小
+(长长长)
forKey:AVURLAssetPreferPreciseDurationAndTimingKey];urlAsset*urlAsset=[AVURLAsset URLAssetWithURL://初始化视频媒体文件
0;
用于(数组中的AVAssetTrack*Track){
NSLog(@“Track--:%@”,Track);
NSlog(@“Track.Total SampleDataLength--:%LLD”,Track)。总SampleDataLength);//视频文件字节大小
长度=track;}
}
返回长度;
}
。