短视频 SDK Android(类抖音特效)

可以以为视频添加多种动作滤镜特效,我们目前支持11种动作滤镜特效,每种动作滤镜你也可以设置视频作用的起始时间和结束时间。如果同一个时间点设置了多种滤镜特效,SDK 会应用最后一种滤镜特效作为当前的滤镜特效。

相关产品
短视频 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)

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