IOS 视频缩略图的生成

使用AVFoundation框架可以生成视频缩略图,用到的类:

》》AVAsset:

  用于获取多媒体的相关信息,如多媒体的画面和声音等。

》》AVURLAsset:  

  AVAsset的子类,用于根据NSURL生成AVAsset对象

》》AVAssetImageGenerator:

  用于截取视频指定帧的动画

一般步骤:

1、根据视频的URLchuang见AVURLAsset对象

2、根据AVURLAsset对象创建AVAssetImageGenerator对象

3、调用AVAssetImageGenerator对象的copyCGImageAtTime:actualTime:error:来获取该视频指定时间点的视频截图

  第一个参数:指定获取哪个时间点的视频截图,该参数是一个CMTime结构体:(CMTime. value/timescale = seconds)

typedef struct
{
    CMTimeValue    value;        /*! @field value The value of the CMTime. value/timescale = seconds. */
    CMTimeScale    timescale;    /*! @field timescale The timescale of the CMTime. value/timescale = seconds.  */
    CMTimeFlags    flags;        /*! @field flags The flags, eg. kCMTimeFlags_Valid, kCMTimeFlags_PositiveInfinity, etc. */
    CMTimeEpoch    epoch;        /*! @field epoch Differentiates between equal timestamps that are actually different because
                                                 of looping, multi-item sequencing, etc.  
                                                 Will be used during comparison: greater epochs happen after lesser ones. 
                                                 Additions/subtraction is only possible within a single epoch,
                                                 however, since epoch length may be unknown/variable. */
} CMTime;  

    获取CMTime相关函数:

CMTime CMTimeMake(
                int64_t value,        /*! @param value        Initializes the value field of the resulting CMTime. */
                int32_t timescale)    /*! @param timescale    Initializes the timescale field of the resulting CMTime. */
                            __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);

CMTime CMTimeMakeWithSeconds(
                Float64 seconds,      
          int32_t preferredTimeScale)
                 __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);

  第二个参数:获取截图的实际时间点(要用“&”传指针)

  第三个参数:获取错误信息(要用“&”传指针)

转载于:https://www.cnblogs.com/zhhl/p/5714752.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值