美文网首页
iOS获取视频缩略图

iOS获取视频缩略图

作者: ConradW | 来源:发表于2017-07-07 18:52 被阅读0次

    前提:先添加AVFoundation和CoreMedia两个框架。

    一 、利用MPMoviePlayerController实现

    核心方法:

    获取在指定播放时间的视频缩略图

    -(void)requestThumbnailImagesAtTimes:(NSArray *)playbackTimes timeOption:(MPMovieTimeOption)option;
    

    第一个参数是获取缩略图的时间点数组
    第二个参数代表时间点精度,枚举类型:

    • MPMovieTimeOptionNearestKeyFrame:时间点附近
    • MPMovieTimeOptionExact:准确时间
    相关方法:
    • 取消所有缩略图获取请求
    -(void)cancelAllThumbnailImageRequests;
    
    • 缩略图请求完成之后的通知
    MPMoviePlayerThumbnailImageRequestDidFinishNotification
    

    二 、利用AVFoundation实现

    思路:
    1. 创建AVURLAsset对象(此类主要用于获取媒体信息,包括视频、声音等)。
    2. 根据AVURLAsset创建AVAssetImageGenerator对象。
    3. 使用AVAssetImageGenerator的copyCGImageAtTime::方法获得指定时间点的截图。
    参考代码:
    +(UIImage *)getThumbnailImage:(NSString *)videoPath {    
        if (videoPath) {
            AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath: videoPath] options:nil];        
            AVAssetImageGenerator *gen = [[AVAssetImageGenerator alloc] initWithAsset:asset];        
            // 设定缩略图的方向,如果不设定,可能会在视频旋转90/180/270°时,获取到的缩略图是被旋转过的,而不是正向的。
            gen.appliesPreferredTrackTransform = YES;    
            // 设置图片的最大size(分辨率)
            gen.maximumSize = CGSizeMake(300, 169);  
            CMTime time = CMTimeMakeWithSeconds(5.0, 600); // 取第5秒,一秒钟600帧  
            NSError *error = nil; 
            CMTime actualTime;
            CGImageRef image = [gen copyCGImageAtTime:time actualTime:&actualTime error:&error];   
            if (error) {
                UIImage *placeHoldImg = [UIImage imageNamed:@"<默认图片名>"];
                return placeHoldImg;
            }    
            UIImage *thumb = [[UIImage alloc] initWithCGImage:image];  
            CGImageRelease(image); 
            return thumb;     
        } else { 
             UIImage *placeHoldImg = [UIImage imageNamed:@"<默认图片名>"];
            return placeHoldImg;
        }
    }
    

    相关文章

      网友评论

          本文标题:iOS获取视频缩略图

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