zoukankan      html  css  js  c++  java
  • 通视频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>头文件。

  • 相关阅读:
    php apc缓存以及与redis的对比
    React Refs
    React 表单与事件
    React AJAX
    React 组件生命周期
    React 组件 API
    React Props
    React State(状态)
    react 组件之间传值
    react 创建组件
  • 原文地址:https://www.cnblogs.com/huanghaipo/p/7061459.html
Copyright © 2011-2022 走看看