// // XHMessageVideoConverPhotoFactory.m // MessageDisplayExample // // Created by HUAJIE-1 on 14-5-9. // Copyright (c) 2014年 嗨,我是曾宪华(@xhzengAIB),曾加入YY Inc.担任高级移动开发工程师,拍立秀App联合创始人,热衷于简洁、而富有理性的事物 QQ:543413507 主页:http://zengxianhua.com All rights reserved. // #import "XHMessageVideoConverPhotoFactory.h" #import #import #import "XHMacro.h" @implementation XHMessageVideoConverPhotoFactory + (UIImage *)videoConverPhotoWithVideoPath:(NSString *)videoPath { if (!videoPath) return nil; AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:videoPath] options:nil]; NSParameterAssert(asset); AVAssetImageGenerator *assetImageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset]; assetImageGenerator.appliesPreferredTrackTransform = YES; assetImageGenerator.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels; CGImageRef thumbnailImageRef = NULL; CFTimeInterval thumbnailImageTime = 0; NSError *thumbnailImageGenerationError = nil; thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60) actualTime:NULL error:&thumbnailImageGenerationError]; if (!thumbnailImageRef) DLog(@"thumbnailImageGenerationError %@", thumbnailImageGenerationError); UIImage *thumbnailImage = thumbnailImageRef ? [[UIImage alloc] initWithCGImage:thumbnailImageRef] : nil; CGImageRelease(thumbnailImageRef); return thumbnailImage; } @end