Android

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

我的收藏

功能概览

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

相关接口类

接口类名
描述
TAVEditor
SDK 操作入口类。
ITAVFrameProvider
帧提供器接口。
TAVGetFrameListener
帧获取回调接口。
TAVSnapshotCallback
渲染快照回调接口。
ITAVThumbProvider
视频原始帧抽帧接口。

相关方法

获取指定时间点渲染结果

接口说明:
/**
* 获取某一时间节点渲染结果
*
* @param positionUs 时间点(微秒)
* @param longSideLength 最长边的长度,SDK内部会根据长边大小计算短边的大小
* @param scene 渲染场景:
* - TAVEditorConstants.SCENE_PLAY: 播放场景
* - TAVEditorConstants.SCENE_GENERATE: 导出场景
* @param listener 结果回调接口
*/
void getFrameAtTime(
long positionUs,
int longSideLength,
@TAVEditorConstants.RenderScene int scene,
TAVGetFrameListener listener
);
使用示例:
editor.getFrameAtTime(5_000_000, 1080, TAVEditorConstants.SCENE_PLAY, new TAVGetFrameListener() {
@Override
public void onFrameAvailable(Bitmap bitmap) {
// 处理获取到的帧图像
}

@Override
public void onError(int errorCode) {
// 错误处理
}
});

获取渲染结果生成器

接口说明:
/**
* 获取渲染结果生成器
*
* @param longSideLength 会按照渲染比例缩放到长边对齐
* @param scene 渲染场景
* - TAVEditorConstants.SCENE_PLAY: 播放场景
* - TAVEditorConstants.SCENE_GENERATE: 导出场景
* @return ITAVFrameProvider 帧提供器实例
*/
ITAVFrameProvider getFrameProvider(int longSideLength, @TAVEditorConstants.RenderScene int scene);
使用示例:
ITAVFrameProvider provider = editor.getFrameProvider(720, TAVEditorConstants.SCENE_GENERATE);

// 获取指定时间点的帧
provider.getFrameAtTime(3_000_000, new TAVGetFrameListener() {
@Override
public void onFrameAvailable(Bitmap bitmap) {
// 处理帧图像
}
});

读取当前时间节点渲染快照

接口说明:
/**
* 读取当前时间节点渲染快照
*
* @param callback 快照获取成功时的回调
*/
void readSnapshot(TAVSnapshotCallback callback);
使用示例
editor.readSnapshot(new TAVSnapshotCallback() {
@Override
public void onSnapshotReady(Bitmap snapshot) {
// 处理快照图像
}
});

获取视频原始帧抽帧接口

接口说明:
/**
* 获取视频原始帧抽帧接口
*
* @param forceUseSoftwareDecoding 是否强制使用软解:
* - true: 强制软件解码
* - false: 优先硬件解码
* @return ITAVThumbProvider 缩略图提供器实例
*/
ITAVThumbProvider getThumbnailProvider(boolean forceUseSoftwareDecoding);
使用示例:
ITAVThumbProvider provider = editor.getThumbnailProvider(false);

// 获取指定资源在特定时间的缩略图
provider.getThumbnailAtTime(
0, // clipIndex
2_000_000, // 时间点(微秒)
320, // 宽度
240, // 高度
new TAVThumbnailListener() {
@Override
public void onThumbnail(Bitmap bitmap) {
// 处理缩略图
}
}
);