功能概览
通过抽帧接口来获取原始视频帧和编辑中的渲染帧,一般用于实现封面和时间线预览条。
相关接口类
接口类名 | 描述 |
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() {@Overridepublic void onFrameAvailable(Bitmap bitmap) {// 处理获取到的帧图像}@Overridepublic 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() {@Overridepublic void onFrameAvailable(Bitmap bitmap) {// 处理帧图像}});
读取当前时间节点渲染快照
接口说明:
/*** 读取当前时间节点渲染快照** @param callback 快照获取成功时的回调*/void readSnapshot(TAVSnapshotCallback callback);
使用示例:
editor.readSnapshot(new TAVSnapshotCallback() {@Overridepublic void onSnapshotReady(Bitmap snapshot) {// 处理快照图像}});
获取视频原始帧抽帧接口
接口说明:
/*** 获取视频原始帧抽帧接口** @param forceUseSoftwareDecoding 是否强制使用软解:* - true: 强制软件解码* - false: 优先硬件解码* @return ITAVThumbProvider 缩略图提供器实例*/ITAVThumbProvider getThumbnailProvider(boolean forceUseSoftwareDecoding);
使用示例:
ITAVThumbProvider provider = editor.getThumbnailProvider(false);// 获取指定资源在特定时间的缩略图provider.getThumbnailAtTime(0, // clipIndex2_000_000, // 时间点(微秒)320, // 宽度240, // 高度new TAVThumbnailListener() {@Overridepublic void onThumbnail(Bitmap bitmap) {// 处理缩略图}});