-
Notifications
You must be signed in to change notification settings - Fork 53
edit_effect_filter
zanxiaofei edited this page Mar 14, 2018
·
8 revisions
SDK2.2.0版本新增特效滤镜功能,即可以将滤镜添加到编辑视频的某个时间段内
可将内置滤镜和美颜或者自定义的滤镜或者GPU滤镜以时间片段的方式添加到编辑的视频上。
此外,SDK新增了几种特效滤镜:抖动、冲击波、灵魂出窍
类名 | 说明 |
---|---|
TimerEffectInfo | 通过该类传递特效相关信息给SDK |
ITimerEffectData | 需要添加的特效接口类,是TimerEffectInfo的成员,如添加滤镜,则new TimerEffectFilter |
TimerEffectFilter | 特效滤镜实体类,传递实际的滤镜实例 |
TimerEffectInfo 成员详细介绍
名称 | 类型 | 说明 |
---|---|---|
id | int | 特效唯一标识,添加特效后,由SDK返回 |
effectData | ITimerEffectData | 具体的特效类型数据类,比如TimerEffectFilter |
startTime | long | 特效开始时间 |
endTime | long | 特效结束时间 |
通过该接口增加一个特效滤镜,接口返回特效的唯一标识
/**
* 增加一个特效
* @param effectInfo 特效详细信息
* @return int 特效唯一标识id
*/
public int addTimerEffectFilter(TimerEffectInfo effectInfo)
代码示例
//创建滤镜实例
ImgShakeZoomFilter filterBase = new ImgShakeZoomFilter(mEditKit.getGLRender());
//创建特效数据类
TimerEffectInfo effectInfo = new TimerEffectInfo(mEditKit.getEditPreviewCurrentPosition(),
mEditPreviewDuration, new TimerEffectFilter(filterBase));
mEditKit.addTimerEffectFilter(effectInfo);
3. 更新特效滤镜结束时间updateTimerEffectEndTime
如果在添加特效时,并不能确定特效的结束时间,可通过该接口更新特效的结束时间
/**
* 更新滤镜的结束事件
*
* @param id 待更新滤镜的唯一标识,在addTimerEffectFilter时产生
* @param endTime 更新后的结束时间
*/
public void updateTimerEffectEndTime(int id, long endTime)
4. 删除某一个特效滤镜 removeTimerEffectFilter
/**
* 移除特效滤镜
*
* @param index 移除滤镜的唯一标识,在addTimerEffectFilter产生
*/
public void removeTimerEffectFilter(int index) {
5.删除所有特效滤镜removeAllTimeEffectFilter
//移除所有特效滤镜
public void removeAllTimeEffectFilter()
名称 | 类 |
---|---|
抖动 | ImgShakeColorFilter |
灵魂出窍 | ImgShakeZoomFilter |
冲击波 | ImgShakeShockWaveFilter |
闪电 | ImgBeautySpecialEffectsFilter(KSY_SPECIAL_EFFECT_LIGHTING) |
Black magic | GPUImageSobelEdgeDetection |
70s | ImgShake70sFilter |
幻觉 | ImgShakeIllusionFilter |
X-Single | ImgShaderXSingleFilter |