美文网首页
iOS获取视频首帧

iOS获取视频首帧

作者: OC笔记 | 来源:发表于2017-07-19 11:49 被阅读0次

获取视频首帧的两种方法

这里总结一下:

方法一:
使用MPMoviePlayerController的获取封面的方法:

+ (UIImage *)thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time {
    UIImage *thumbnailImage = nil;
    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
    moviePlayer.shouldAutoplay = NO;
    thumbnailImage = [moviePlayer thumbnailImageAtTime:time timeOption:MPMovieTimeOptionNearestKeyFrame];
    
    return thumbnailImage;
}

方法二:
使用AVAssetImageGenerator获取

+ (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)  
    NSLog(@"thumbnailImageGenerationError %@",thumbnailImageGenerationError);  
      
    UIImage*thumbnailImage = thumbnailImageRef ? [[UIImage alloc]initWithCGImage: thumbnailImageRef] : nil;  
      
    return thumbnailImage;  
}

相关文章

网友评论

      本文标题:iOS获取视频首帧

      本文链接:https://www.haomeiwen.com/subject/jhhlkxtx.html