tencent cloud

短视频 SDK

动态与公告
产品动态
关于短视频 SDK “startPlay”接口名变更的公告
产品简介
产品概述
产品功能
应用场景
基本概念
购买指南
价格总览
退款说明
免费测试
License 指引
新增与续期 License
配置查看 License
Demo 体验
SDK 下载
SDK 下载
发布日志(App)
含 UI 集成方案
小视频 App
源码解读(iOS)
源码解读(Android)
不含 UI 集成方案
SDK 集成
拍照和录制
预览裁剪和拼接
上传和播放
美颜特效
高级功能和特效
API 文档
短视频编辑
短视频录制
技术支持
错误码表
功能答疑
常见问题
上传常见问题
Android 编译问题
Android 常见问题
iOS 常见问题
License 常见问题
UGSV 政策
隐私政策
数据处理和安全协议

Android

PDF
聚焦模式
字号
最后更新时间: 2025-04-01 17:14:09

动作滤镜特效

您可以为视频添加多种动作滤镜特效,我们目前支持11种动作滤镜特效,每种动作滤镜您也可以设置视频作用的起始时间和结束时间。如果同一个时间点设置了多种滤镜特效,SDK 会应用最后一种滤镜特效作为当前的滤镜特效。
设置滤镜特效:
/**
* 设置滤镜特效开始时间
* @param type 滤镜特效类型
* @param startTime 滤镜特效开始时间(ms)
*/
public void startEffect(int type, long startTime);
/**
* 设置滤镜特效结束时间
* @param type 滤镜特效类型
* @param endTime 滤镜特效结束时间(ms)
*/
public void stopEffect(int type, long endTime);

参数说明:@param type:滤镜特效的类型,在常量 TXVideoEditConstants 中有定义:
public static final int TXEffectType_SOUL_OUT = 0; //灵魂出窍
public static final int TXEffectType_SPLIT_SCREEN = 1; //视频分裂
public static final int TXEffectType_DARK_DRAEM = 2; //黑暗幻境
public static final int TXEffectType_ROCK_LIGHT = 3; //动感光波
public static final int TXEffectType_WIN_SHADDOW = 4; //百叶窗
public static final int TXEffectType_GHOST_SHADDOW = 5; //鬼影
public static final int TXEffectType_PHANTOM_SHADDOW = 6; //幻影
public static final int TXEffectType_GHOST = 7; //幽灵
public static final int TXEffectType_LIGHTNING = 8; //闪电
public static final int TXEffectType_MIRROR = 9; //镜像
public static final int TXEffectType_ILLUSION = 10; //幻觉
删除最后一个设置的滤镜特效:
public void deleteLastEffect();
删除所有设置的滤镜特效:
public void deleteAllEffect();
完整示例如下:
在1 - 2s之间应用第一种滤镜特效;在3 - 4s之间应用第2种滤镜特效;删除3 - 4s设置的滤镜特效。
//在1-2s之间应用第一种滤镜特效
mTXVideoEditer.startEffect(TXVideoEditConstants.TXEffectType_SOUL_OUT, 1000);
mTXVideoEditer.stopEffect(TXVideoEditConstants.TXEffectType_SOUL_OUT, 2000);

//在3-4s之间应用第2种滤镜特效
mTXVideoEditer.startEffect(TXVideoEditConstants.TXEffectType_SPLIT_SCREEN, 3000);
mTXVideoEditer.stopEffect(TXVideoEditConstants.TXEffectType_SPLIT_SCREEN, 4000);

//删除3-4s设置的滤镜特效
mTXVideoEditer.deleteLastEffect();

慢/快动作

您可以进行多段视频的慢速/快速播放,设置慢速/快速播放的方法为:
public void setSpeedList(List speedList)

//TXSpeed 的参数如下:
public final static class TXSpeed {
public int speedLevel; // 变速级别
public long startTime; // 开始时间
public long endTime; // 结束时间
}

// 目前支持变速速度的几种级别,在常量 TXVideoEditConstants 中有定义:
public static final int SPEED_LEVEL_SLOWEST = 0; // 极慢速-源视频的0.25倍速
public static final int SPEED_LEVEL_SLOW = 1; // 慢速-源视频的0.5倍速
public static final int SPEED_LEVEL_NORMAL = 2; // 标准-源视频的1倍速
public static final int SPEED_LEVEL_FAST = 3; // 快速-源视频的1.5倍速
public static final int SPEED_LEVEL_FASTEST = 4; // 极快速-源视频的2倍速

完整示例如下:
List<TXVideoEditConstants.TXSpeed> list = new ArrayList<>();
TXVideoEditConstants.TXSpeed speed1 = new TXVideoEditConstants.TXSpeed();
speed1.startTime = 0;
speed1.endTime = 1000;
speed1.speedLevel = TXVideoEditConstants.SPEED_LEVEL_SLOW; // 慢速
list.add(speed1);

TXVideoEditConstants.TXSpeed speed2 = new TXVideoEditConstants.TXSpeed();
speed2.startTime = 1000;
speed2.endTime = 2000;
speed2.speedLevel = TXVideoEditConstants.SPEED_LEVEL_SLOWEST; // 极慢速
list.add(speed2);

TXVideoEditConstants.TXSpeed speed3 = new TXVideoEditConstants.TXSpeed();
speed3.startTime = 2000;
speed3.endTime = 3000;
speed3.speedLevel = TXVideoEditConstants.SPEED_LEVEL_SLOW; //慢速
list.add(speed3);

mTXVideoEditer.setSpeedList(list);


倒放

您可以将视频画面倒序播放。通过调用setReverse(true)开启倒序播放,调用setReverse(false)停止倒序播放。
Demo 示例:
mTXVideoEditer.setReverse(true);

重复视频片段

您可以设置重复播放一段视频画面,声音不会重复播放。目前 Android 只支持设置一段画面重复,重复三次。
如需取消之前设置的重复片段,调用setRepeatPlay(null)即可。
设置重复片段方法:
public void setRepeatPlay(List repeatList);

//TXRepeat 的参数如下:
public final static class TXRepeat {
public long startTime; //重复播放起始时间(ms)
public long endTime; //重复播放结束时间(ms)
public int repeatTimes; //重复播放次数
}

Demo 示例:
long currentPts = mVideoProgressController.getCurrentTimeMs();

List repeatList = new ArrayList<>();
TXVideoEditConstants.TXRepeat repeat = new TXVideoEditConstants.TXRepeat();
repeat.startTime = currentPts;
repeat.endTime = currentPts + DEAULT_DURATION_MS;
repeat.repeatTimes = 3; //目前只支持重复三次
repeatList.add(repeat); //目前只支持重复一段时间
mTXVideoEditer.setRepeatPlay(repeatList);

说明:
为保证倒放流畅性,在导入视频时,可以先对视频进行预处理。(调用processVideo

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈