2012-05-25 39 views
0

我想从视频获取缩略图(的第一帧),所以我可以显示它。任何人都可以做到这一点成功?如果是这样,你做到了吗?Iphone sdk显示缩略图

回答

0

首先你应该有videoURL或nsdata的视频。现在添加MediaPlayer框架和#import MediaPlayer/MPMoviePlayerController.h。添加这个您要thumbail视频

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
UIImage *thumbnail = [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame]; 
//Player autoplays audio on init 
[player stop]; 
[player release]; 
1

有多种方法第一种是使用AssetImageGenerator号: -

- (UIImage *)imageFromVideoURL 
{ 
// result 
UIImage *image = nil; 

// AVAssetImageGenerator 
AVAsset *asset = [[AVURLAsset alloc] initWithURL:appDelegate.videoURL options:nil];; 
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset]; 
imageGenerator.appliesPreferredTrackTransform = YES; 

// calc midpoint time of video 
Float64 durationSeconds = CMTimeGetSeconds([asset duration]); 
CMTime midpoint = CMTimeMakeWithSeconds(durationSeconds/2.0, 600); 

// get the image from 
NSError *error = nil; 
CMTime actualTime; 
CGImageRef halfWayImage = [imageGenerator copyCGImageAtTime:midpoint actualTime:&actualTime error:&error]; 

if (halfWayImage != NULL) 
{ 
    // cgimage to uiimage 
    image = [[UIImage alloc] initWithCGImage:halfWayImage]; 
    [dic setValue:image forKey:kImage]; 
    NSLog(@"Values of dictonary==>%@", dic); 
    NSLog(@"Videos Are:%@",appDelegate.videoURLArray); 
    CGImageRelease(halfWayImage); 
} 
return image; 
} 

这是另一种方法是使用的MPMoviePlayerController的最佳方法: -

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
UIImage *thumbnail = [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame]; 
[player stop]; 

这可能会帮助你,谢谢:)

+0

感谢您的回复.... – user1376474

+0

欢迎是有帮助的吗? –