You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.6 KiB
40 lines
1.6 KiB
// |
|
// 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 <AVFoundation/AVAsset.h> |
|
#import <AVFoundation/AVAssetImageGenerator.h> |
|
#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
|
|
|