[绍棠]获取视频的第一帧图片或某一帧图片

首先,导入库

#import <AVFoundation/AVAsset.h>

#import <AVFoundation/AVAssetImageGenerator.h>

#import <AVFoundation/AVTime.h>



方法一:

        //        这里利用MPMoviePlayerController来获取

        MPMoviePlayerController *player = [[MPMoviePlayerController alloc]initWithContentURL:url] ;

        UIImage  *thumbnail = [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame];

        picImage.image = thumbnail;

      // 或者  [picImage setImage:[player thumbnailImageAtTime:2.5f timeOption:MPMovieTimeOptionNearestKeyFrame]];

        player = nil;//释放player


方法二


- (UIImage*) thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time {

    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];

    NSParameterAssert(asset);

    AVAssetImageGenerator *assetImageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset];

    

    assetImageGenerator.appliesPreferredTrackTransform = YES;        assetImageGenerator.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels;

    CGImageRef thumbnailImageRef = NULL;

    CFTimeInterval thumbnailImageTime = time;

    NSError *thumbnailImageGenerationError = nil;

    thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60) actualTime:NULL error:&thumbnailImageGenerationError];

    if (!thumbnailImageRef)

        DDLogInfo(@"thumbnailImageGenerationError %@", thumbnailImageGenerationError);

    UIImage *thumbnailImage = thumbnailImageRef ? [[UIImage alloc] initWithCGImage:thumbnailImageRef] : nil;

    return thumbnailImage;

}





你可能感兴趣的:(ios,视频,图片,库,获取第一帧图片)