短视频 SDK Android(画中画)

通过画中画相关接口可以实现在短视频编辑里面插入画中画(PIP),这里说明了画中画功能相关接口类和方法,包括 TAVEditor、ITAVPipManager、TAVPip 的使用示例,涵盖创建、加载和移除画中画操作。

相关产品
短视频 SDK 产品页,含版本规格、价格与购买入口。

一、相关接口类

接口类名 描述
TAVEditor SDK 操作入口类。
ITAVPipManager 画中画操作接口类。
TAVPip 画中画数据模型类。

二、获取画中画操作接口

/** * 获取画中画操作接口 * * @return ITAVPipManager实例 */ITAVPipManager pipManager = editor.getPipManager();

三、创建画中画对象

/** * 创建画中画对象 * * @param type 资源类型(VIDEO / PHOTO) * @param mediaPath 画中画视频/图片路径 */TAVPip pip = pipManager.createPip(TAVMediaType.VIDEO, mediaPath);// 设置时间区间(微秒)pip.setTimeRange(TAVTimeRange.fromUs(0, durationUs));

四、加载画中画

/** * 加载画中画 * * @param pip 画中画数据对象 */pipManager.loadPip(pip);

五、移除画中画

/** * 移除画中画 * * @param pip 要移除的画中画对象 */pipManager.removePip(pip);

六、监听画中画列表变化

ITAVPipContextObserver 用于监听画中画集合的变化。

回调 参数 说明
onPipListChanged(List<TAVPip> pips) 当前全部画中画。 集合整体变化时回调,携带最新列表。
onPipAdd(TAVPip pip) 新增的画中画。 新增一个画中画时回调。
onPipRemove(TAVPip pip) 被移除的画中画。 移除一个画中画时回调。

观察者以弱引用持有,业务方必须自己保留强引用(例如作为成员变量),否则对象被回收后回调不再触发。

// 声明为成员变量,避免被 GCprivate final ITAVPipContextObserver mPipObserver = new ITAVPipContextObserver() { @Override public void onPipListChanged(List<TAVPip> pips) { // 列表整体变化 } @Override public void onPipAdd(TAVPip pip) { // 新增画中画 } @Override public void onPipRemove(TAVPip pip) { // 移除画中画 }};

// 注册与注销pipManager.addPipObserver(mPipObserver);pipManager.removePipObserver(mPipObserver);

注意:说明:

注意:TAVWidgetContentView 已内置实现该接口,使用自定义挂件手势层时通常无需重复注册。

七、使用示例

// 获取画中画操作接口ITAVPipManager pipManager = editor.getPipManager();// 创建画中画对象(TAVPip 构造函数为 protected,须通过管理接口创建)TAVPip pip = pipManager.createPip(TAVMediaType.VIDEO, context.getFilesDir() + "/video.mp4");pip.setTimeRange(TAVTimeRange.fromUs(0, 5_000_000)); // 0-5秒// 加载画中画pipManager.loadPip(pip);// 移除画中画pipManager.removePip(pip);

赞 (0)
上一篇 4天前
下一篇 4天前