3

是否可以获取视频的第一个图像帧并将其显示在 uiimageview 中。我的视频保存在服务器中。我需要调用 url 来播放视频

4

3 回答 3

3

An example:

NSURL *videoURl = [NSURL fileURLWithPath:videoPath];
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURl options:nil];
AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generate.appliesPreferredTrackTransform = YES;
NSError *err = NULL;
CMTime time = CMTimeMake(1, 60);
CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err];

UIImage *img = [[UIImage alloc] initWithCGImage:imgRef];
[YourImageView setImage:img];

Hope it helps..

于 2013-07-31T05:48:12.377 回答
3

I use this method to do the same

/**
 *  This method retunrs a thumbnail of a Video file
 */

+ (UIImage *)generateThumbnailIconForVideoFileWith:(NSURL *)contentURL WithSize:(CGSize)size
{
    UIImage *theImage = nil;
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:contentURL options:nil];
    AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
    generator.maximumSize=size;
    generator.appliesPreferredTrackTransform = YES;
    NSError *err = NULL;
    CMTime time = CMTimeMake(100,100); //change whatever you want here.
    CGImageRef imgRef = [generator copyCGImageAtTime:time actualTime:NULL error:&err];
    theImage = [[UIImage alloc] initWithCGImage:imgRef] ;
    CGImageRelease(imgRef);
    return theImage;
}
于 2013-07-31T05:49:32.903 回答
0

您可以使用MPMoviePlayerController如下方式执行此操作..

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

AVURLAsset另请参阅此链接的另一个答案getting-thumbnail-from-a-video-url-or-data-in-iphone-sdk

于 2013-07-31T05:50:04.230 回答