• 通视频URL截取第一帧图片


    为了方便直接给UIImage加个类别,以后什么时候使用可以直接调用。

    #import <UIKit/UIKit.h>

     

    @interface UIImage (Video)

     

    /**

     通过视频URL获取视频的第一帧图片

     

     @param videoURL 视频连接

     @return 第一帧图片

     */

    + (UIImage *)interceptFirstTimeVideoPicture:(NSURL *)videoURL;

     

    @end

     

    -----------------------------------分割线------------------------

    #import "UIImage+Video.h"

    #import <AVFoundation/AVFoundation.h>

     

    @implementation UIImage (Video)

     

     

    + (UIImage *)interceptFirstTimeVideoPicture:(NSURL *)videoURL{

        

        // 根据视频的URL创建AVURLAsset

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

       

        // 根据AVURLAsset创建AVAssetImageGenerator对象

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

        

         gen.appliesPreferredTrackTransform = YES;

        

        // 定义获取0帧处的视频截图

        CMTime time = CMTimeMake(0, 10);

        

        NSError *error = nil;

        

        CMTime actualTime;

        

        // 获取time处的视频截图

        CGImageRef  image = [gen  copyCGImageAtTime: time actualTime: &actualTime error:&error];

        

        // CGImageRef转换为UIImage

        UIImage *thumb = [[UIImage alloc] initWithCGImage: image];

        

        CGImageRelease(image);

        

        return  thumb;

        

    }

     

     

    @end

     

    注意点:

    使用AVAssetImageGenerator这个类是要记得导入#import <AVFoundation/AVFoundation.h>头文件。

  • 相关阅读:
    布局(layout)文件图形界面不能显示:An error has occurred. See error log for more details. java.lang.NullPointe
    Mac下无法推出硬盘
    Excel导入导出数据库(MVC)
    json导入数据库
    XML导入数据库
    Excel表格导入数据库
    Lambda高级查询
    Linq高级查询
    多线程
    反射
  • 原文地址:https://www.cnblogs.com/huanghaipo/p/7061459.html
Copyright © 2020-2023  润新知