iOS

最近更新时间:2025-12-23 16:43:42

我的收藏

功能概览

通过抽帧接口来实现获取原始视频帧和编辑中的渲染帧,一般用于实现封面和时间线预览条。

相关接口类

接口类名
描述
TAVEditor
SDK 操作入口类。
ITAVFrameProvider
帧提供器接口。

核心方法

根据主轨道下标获取主轨道缩略图(异步)

/// 根据主轨道下标获取缩略图 - 异步
/// - Parameters:
/// - clipIndex: 资源文件下标
/// - count: 数量
/// - size: 缩略图宽高
/// - thumbCompletion: 回调返回对应缩略图数组
/// - return: Generateor 对象,可传入cancelGenerate:取消生成
- (id)getClipThumbnail:(int)clipIndex count:(int)count size:(CGSize)size completion:(void (^)(NSArray *images))thumbCompletion;

/// 根据主轨道下标获取pts对应的缩略图 - 异步
/// - Parameters:
/// - clipIndex: 资源文件索引
/// - pts: 时间
/// - size: 缩略图宽高
/// - thumbCompletion: 回调返回对应缩略图
/// - return: Generateor 对象,可传入cancelGenerate:取消生成
- (id)getClipThumbnail:(int)clipIndex pts:(CMTime)pts size:(CGSize)size completion:(void (^)(UIImage *image))thumbCompletion;

/// 根据主轨道下标获取pts对应的缩略图 - 同步
/// - Parameters:
/// - clipIndex: 资源文件索引
/// - pts: 时间
/// - size: 缩略图宽高
/// @return 当前帧缩略图
- (UIImage *)getClipThumbnail:(int)clipIndex pts:(CMTime)pts size:(CGSize)size;

获取主轨渲染结果帧

/// 获取主轨pts对应的渲染结果帧 - 异步
/// @param pts 时间
/// @param length 最长边的长度,SDK内部会根据长边大小计算短边的大小
/// @param completion 回调
/// - return: Generateor 对象,可传入cancelGenerate:取消生成
- (id)getClipFrameAtTime:(CMTime)pts longSide:(CGFloat)length completion:(void (^)(UIImage *image))completion;
- (id)getClipFrameWithTimes:(NSArray <NSValue *>*)times longSide:(CGFloat)length completion:(void (^)(NSDictionary <NSValue *, UIImage *> *images))completion;

/// 获取主轨pts对应的渲染结果帧 - 同步
/// @param pts 时间
/// @param length 最长边的长度,SDK内部会根据长边大小计算短边的大小
- (UIImage *)getClipFrameAtTime:(CMTime)pts longSide:(CGFloat)length;
- (NSDictionary <NSValue *, UIImage *> *)getClipFrameWithTimes:(NSArray <NSValue *>*)times longSide:(CGFloat)length;

根据资源路径获取缩略图

/// 获取缩略图
/// - Parameters:
/// - videoPath: 视频资源路径
/// - count: 数量
/// - size: 缩略图宽高
/// - timeRange: 视频时间抽帧范围,默认为整个视频时间范围
/// - thumbCompletion: 回调返回对应缩略图数组
/// - return: Generateor 对象,可传入cancelGenerate:取消生成
- (id)getThumbnail:(NSString *)videoPath
count:(int)count
size:(CGSize)size
timeRange:(CMTimeRange)timeRange
completion:(void (^)(NSArray<UIImage *> *images, NSError *error))thumbCompletion;

/// 获取pts对应的缩略图 - 异步
/// - Parameters:
/// - videoPath: 视频资源路径
/// - pts: 时间
/// - size: 缩略图宽高
/// - thumbCompletion: 回调返回对应缩略图数组
/// - return: Generateor 对象,可传入cancelGenerate:取消生成
- (id)getThumbnail:(NSString *)videoPath
pts:(CMTime)pts
size:(CGSize)size
completion:(void (^)(UIImage *image, NSError *error))thumbCompletion;

/// 获取pts对应的缩略图 - 同步
/// - Parameters:
/// - videoPath: 视频资源路径
/// - pts: 时间
/// - size: 缩略图宽高
- (UIImage *)getThumbnail:(NSString *)videoPath
pts:(CMTime)pts
size:(CGSize)size;

异步接口取消生成缩略图

/// 取消生成缩略图
/// - Parameter generator:generator对象
- (void)cancelGenerate:(id)generator;