VideoSDK接口文档
短视频模块SDK,支持短视频录制、视频编辑与后期特效处理等功能。VideoSDK的四大核心模块为基本配置模块、录制模块、视频编辑以及图像编辑模块。功能涵盖短视频拍摄和编辑涉及到的工具类,提供滤镜、人像美化以及视频格式导出组件等相对丰富的技术支持。其中录制模块包含视频拍摄的相关操作以及拍后编辑的特效处理。视频与图像编辑模块包含对于视频和图片素材的编辑和特效添加。
1. 授权模块
1.1. 配置设置
- 初始化
void init(Application context, String appId);
1.2. 获取模块接口
- 获取录制器
public static IMultiRecorder createRecorder();
- 获取视频处理器
public static IVideoProcessor createVideoProcessor();
- 获取图片处理器
public static IImageProcess createImageProcessor();
2. 录制模块
2.1. 基本设置
- 设置配置参数并初始化
/**
* 录制器资源准备
*
* @param activity 录制器持有的上下文信息
* @param mrConfig 视频录制器需要的配置信息
* @return 准备结果,true:表示准备完成,false:表示准备出现异常
*/
boolean prepare(Activity activity, MRSDKConfig mrConfig);
- 设置预览窗口
/**
* 设置预览窗口
* @param holder 必须是可承载视频画面的surface
*/
void setPreviewDisplay(SurfaceHolder holder);
- 设置预览窗口大小
/**
* 设置预览窗口宽高
* @param w 宽度
* @param h 高度
*/
void setVisualSize(int w, int h);
- 设置视频输出路径
/**
* 设置视频输出路径
* @param outPath 视频输出路径
*/
void setMediaOutPath(String outPath);
- 设置闪光灯的模式
/**
* 设置闪光灯模式
* @param mode 参考{@link IMultiRecorder#FLASH_MODE_ON}、{@link IMultiRecorder#FLASH_MODE_OFF}、{@link IMultiRecorder#FLASH_MODE_AUTO}
*/
void setFlashMode(int mode);
- 切换摄像头
/**
* 切换摄像头
*/
void switchCamera();
- 当前是否为前置摄像头
/**
* 当前是否为前置摄像头
* @return true:表示是,false:表示不是
*/
boolean isFrontCamera();
- 摄像头调焦
/**
* 摄像头调焦
* @param x 焦点坐标X
* @param y 焦点坐标X
* @param viewWidth 调焦区域宽度
* @param viewHeight 调焦区域高度
*/
void focusOnTouch(double x, double y, int viewWidth, int viewHeight);
- 人脸区域自动测光开关
/**
* 2.2.2 版本起可用
* 根据人脸区域自动测光。
* 注意,如果调用了 {@link IMultiRecorder#focusOnTouch(double, double, int, int, boolean)}
* 并最后一个参数为 true 那么会不再做根据人脸区域自动测光。
*
* @param enableFaceAutoMetering true 为开启,false 为关闭
*/
void setEnableFaceAutoMetering(boolean enableFaceAutoMetering);
- 当前摄像头是否支持曝光补偿
/**
* 2.2.2 版本起可用
* 当前摄像头是否支持曝光补偿
* @return
*/
boolean isSupportExposureAdjust();
- 设置曝光补偿等级
/**
* 2.2.2 版本起可用
* 设置曝光补偿等级
* @param level
*/
void setExposureCompensation(int level);
- 获取最大支持的曝光补偿等级
/**
* 2.2.2 版本起可用
* 获取最大支持的曝光补偿等级
* @return
*/
int getMaxExposureCompensation();
- 获取最小支持的曝光补偿等级
/**
* 2.2.2 版本起可用
* 获取最小支持的曝光补偿等级
* @return
*/
int getMinExposureCompensation();
- 切换摄像头分辨率
/** 2.2.3 版本起可用
* 切换摄像头分辨率
* @param targetSize
*/
void switchCameraResolution(Size targetSize)
- 是否支持闪光灯打开
boolean supportFlash();
- 是否支持闪光灯自动模式
boolean supportAutoFlash();
- 重置Camera
void resetCamera();
- 获取旋转的角度
float getRotateDegree();
- 当前手机是否支持变焦
/**
* 当前手机是否支持变焦(2.0.0版本起可用)
*
* @return true 支持,false 不支持
*/
boolean isSupportZoom();
- 获取当前缩放的等级
/**
* @return 获取当前缩放的等级(2.0.0版本起可用)
*/
int getCurrentZoomLevel();
- 获取当前支持的最大缩放等级
/**
* 获取当前支持的最大缩放等级(2.0.0版本起可用)
*
* @return 支持的最大缩放等级
*/
int getMaxZoomLevel();
- 设置变焦等级
/**
* 设置变焦等级(2.0.0版本起可用)
*
* @param level 等级,等级范围: [0,{@link IMultiRecorder#getMaxZoomLevel()} ]
*/
void setZoomLevel(int level);
2.2. 录制控制
- 开始预览
/**
* 开始预览,确保在调用{@link IMultiRecorder#prepare(Activity, MRConfig)}和{@link IMultiRecorder#setPreviewDisplay(SurfaceHolder)} 之后调用
*/
void startPreview();
- 停止预览
/**
* 结束预览,如果当前正在录制,内部则会调用{@link IMultiRecorder#pauseRecording()},结束当前段的录制,并将分段视频加入到分段管理中
*/
void stopPreview();
- 拍照
/**
* 拍照
* @param path 保存路径
* @param listener 回调监听 注意:回调函数在异步线程,注意相关处理
*/
void takePhoto(String path, MRecorderActions.OnTakePhotoListener listener);
- 开始录制
/**
* 开始录制
*/
void startRecording();
- 暂停录制
/**
* 结束片段视频录制,与开始录制相对应,结束后会自动将片段视频交于分段管理
*/
void pauseRecording();
- 取消录制
/**
* 取消录制,删除累积的所有分段视频
*/
void cancelRecording();
- 完成录制
/**
* 完成整个录制,并合成视频
* @param onRecordFinishedListener 视频处理回调
* @return 接口调用是否成功
*/
boolean finishRecord(final MRecorderActions.OnRecordFinishedListener onRecordFinishedListener);
- 获取所有视频分段
LinkedList<VideoFragment> getVideoFragments();
- 删除最后一个分段
void removeLast();
- 获取分段录制的总时长
long getTotalLength();
- 获取分段录制的数量
int getFragmentCount();
- 退出
/**
* 释放资源,确保退出录制业务时调用该函数
*/
void release();
2.3. 回调
- 错误回调
void setOnErrorListener(MRecorderActions.OnErrorListener onErrorListener);
- 前后摄像头切换的回调
void setOnCameraSetListener(ICamera.onCameraSetListener onCameraSetListener);
- 第一帧渲染完成的回调
void setOnFirstFrameRenderedListener(MRecorderActions.OnFirstFrameRenderedListener listener)
- 变脸贴纸状态变化回调
void setStickerStateChangeListener(StickerBlendFilter.StickerStateChangeListener stickerStateChangeListener);
2.4. 高级效果
添加音乐
- 设置背景音乐
/**
* 设置录制的背景音乐,背景音乐会在startTime与endTime之间循环播放。注意,开始录制后音乐设置将变得无效,请确保在录制开始前进行音乐的设置
* @param musicPath 音乐文件的绝对路径,不可为空
* @param startTime 音乐的开始时间,单位ms
* @param endTime 音乐的结束时间,单位ms
* @param showTipWhenNotSupport 当不支持背景音乐设置时是否出现toast轻提醒
*/
boolean setMusic(String musicPath, int startTime, int endTime, boolean showTipWhenNotSupport);
- 取消背景音乐
/**
* 取消音乐设置
*/
boolean cancelMusic();
变速录制
- 变速录制
/**
* 变速录制 比如[2f, 1.5f, 1f, 0.5f, 0.25f] 对应 ["极慢", "慢", "标准", "快", "极快"]
* @param speed 范围:(无穷大,0.25f]
*/
void setRecorderSpeed(float speed);
滤镜相关
- 设置滤镜
/**
* 初始化滤镜列表
* @param filters 滤镜
*/
void initFilters(List<MMPresetFilter> filters);
/**
* 切换滤镜
* @param index 切换位置,这里的索引是对应{@link IMultiRecorder#initFilters(List)} 这里设置进来的顺序。
* @param up 是否为向上滑动
* @param offset 向上滑动比例 [0, 1f]
*/
void changeToFilter(int index, boolean up, float offset);
- 调节滤镜强度
/**
* 调节滤镜强度(2.0.0版本起可用)
*
* @param value 取值范围:(0,1]
*/
void setFilterIntensity(@FloatRange(from = 0, to = 1.0f) float value);
- 设置下一个切换进来的滤镜默认的滤镜强度
/**
* 设置下一个切换进来的滤镜默认的滤镜强度(2.0.0版本起可用)
*
* @param intensity (0-1]
*/
void setNextDefaultIntensity(float intensity);
添加变脸/贴纸
- 先获取控制器
/**
* 2.1.1版本起可用
* 获取 MaskModel 操作器,可以粒度更细的管理 sticker
*
* @return IRecorderMaskModelOperator
*/
IRecorderMaskModelOperator getRecorderMaskModelOperator();
- IRecorderMaskModelOperator
添加一个普通的变脸贴纸
/**
* 添加一个变脸贴纸,这种贴纸只会同时存在一个
* @param maskModel 变脸或贴纸素材 可以通过{@link com.mm.mediasdk.utils.VideoFaceUtils#readMaskModel(Context, File)} 生成素材对象。素材文件可以通过提供的编辑器进行制作生成(需按照陌陌拍摄器素材标准制作)
* @return
*/
boolean addMomentMaskModel(MaskModel maskModel);
添加自定义类型的贴纸
/**
* 可添加多种自定义类型的 MaskModel,注意不要和MaskModel里面已经定义的类型重复,如已经定义了 {@link MaskModel#TYPE_MOMENT}
* 通过此方法添加的 maskModel 只有 maskModelType 与 MaskModel 里面已经定义好的 stickerType{@link com.momo.mcamera.mask.Sticker#stickerType}
* 组合而成的值相同的 Sticker 才会被替换,否则将叠加,如 maskModelType为 1 且 stickerType 为 2,将会替换一个已经存在的 maskModelType为 1 且 stickerType
* 为 2 的Sticker,否则将与其他叠加
* @param maskModelType
* @param maskModel
* @return
*/
boolean addCustomMultiTypeMaskModel(int maskModelType, MaskModel maskModel);
清除所有贴纸
/**
* 清楚所有贴纸
*/
void clearAllMaskModel();
清除变脸贴纸
/**
* 清除变脸贴纸
*/
void clearMomentMaskModel();
根据 model type 清除贴纸
/**
* 根据 model type 清除贴纸
* @param maskModelType
*/
void clearMaskModelByType(int maskModelType);
根据 stickerType 清除贴纸
/**
* 根据 stickerType 清除贴纸
* @param stickerType
*/
void clearStickerByType(String stickerType);
滤镜链相关操作 2.1.1版本起可用
- 根滤镜组操作器,支持增删。滤镜组获取接口,能获取四个滤镜组,需要在 prepare 之后才能真正获取,否则可能为null
/**
* 得到拍摄器滤镜组获取器。进而可得到美颜、滤镜、贴纸三个滤镜组,可以往每个组里的头尾增加滤镜,且可以获取 RootFilter 的操作器,在头尾增加滤镜。其RootFilter 中至少包含 美颜、滤镜、贴纸三个滤镜组
*2.1.1版本起可用
*/
IRecorderFilterGroupGetter getRecorderFilterGroupGetter();
IRecorderFilterGroupGetter
/**
* 2.1.1版本起可用
* @return 美颜组
*
*/
SingleLineGroupFilterPlus getFaceBeautySingleLineGroup();
/**
* 2.1.1版本起可用
* @return 滤镜组
*/
SingleLineGroupFilterPlus getSplitSingleLineGroup();
/**
* 2.1.1版本起可用
* @return 贴纸组
*/
SingleLineGroupFilterPlus getStickerSingleLineGroup();
/**
* 2.1.1版本起可用
* 根滤镜组操作器,支持增删。
*
* @return
*/
IRecorderRootFilterOperator getRootFilterOperator();
人脸识别相关
- 磨皮(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置磨皮参数
* @param value [0,1f]
*/
void setSkinLevel(float value);
- 美白(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置美白参数
* @param value [0,1f]
*/
void setSkinLightingLevel(float value);
- 磨皮和美白(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置磨皮和美白参数
* @param skinLevel 磨皮参数,参考{@link IMultiRecorder#setSkinLevel(float)}
* @param skinLightingScale 美白参数,参考{@link IMultiRecorder#setSkinLightingLevel(float)}
*/
void setSkinAndLightingLevel(float skinLevel, float skinLightingScale);
- 大眼(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置大眼参数
* @param value [0,1f]
*/
void setFaceEyeScale(float value);
- 瘦脸(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置瘦脸参数
* @param value [0,1f]
*/
void setFaceThinScale(float value);
- 大眼和瘦脸(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置大眼和瘦脸参数
* @param mFaceEyeScale 大眼 取值范围[0,1f] 参考:{@link IMultiRecorder#setFaceEyeScale(float)}
* @param mFaceThinScale 瘦脸 取值范围[0,1f] 参考:{@link IMultiRecorder#setFaceThinScale(float)}
*/
void setFaceEyeAndThinScale(float mFaceEyeScale, float mFaceThinScale);
- 瘦身(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置瘦身参数
* @param value [0,1f]
*/
void setSlimmingScale(float value);
- 长腿(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置长腿参数
* @param value [0,1f]
*/
void setLongLegScale(float value);
- CV数据回调
/**
* 2.1.2 版本起可用
* 获取一个CVInfoListener 操作器
*
* @return ICVInfoListenerOperator
*/
ICVInfoListenerOperator getCVInfoListenerOperator();
- 预览信息输出
/**
* 2.2.5版本可用
* 预览信息输出
*
* @param previewInfoListener
*/
void setPreviewInfoListener(MultiRecorder.cameraPreviewInfo previewInfoListener);
- 基础美颜、微整形、美体
/**
* 基础美颜、微整形、美体
*
* @param id 可查看[FaceBeautyID]
* @param value
* *****基础美颜*****
* SKIN_WHITENING // 美白 0.0 - 1.0
* SKIN_SMOOTH // 磨皮 0.0 - 1.0
* SKIN_RUDDY // 红润 0.0 - 1.0
* SHARP_LIGHTNING // 锐化 0.0 - 1.0
* BIG_EYE // 大眼 0.0 - 1.0
* *****微整形*****
* THIN_FACE // 瘦脸 0.0 - 1.0
* JAW_SHAPE // 削脸 -1.0 - 1.0
* FACE_WIDTH // 脸宽 0.0 - 1.0
* CHIN_LENGTH // 下巴 -1.0 - 1.0
* FOREHEAD // 额头 -1.0 - 1.0
* SHORTEN_FACE // 短脸 0.0 - 1.0
* EYE_TILT // 眼睛角度 -1.0 - 1.0
* EYE_DISTANCE // 眼距 -1.0 - 1.0
* EYE_HEIGHT // 眼高 0.0 - 1.0
* NOSE_SIZE // 鼻子大小 -1.0 - 1.0
* NOSE_LIFT // 鼻高 -1.0 - 1.0
* NOSE_WIDTH // 鼻宽 -1.0 - 1.0
* NOSE_RIDGE_WIDTH // 鼻梁 -1.0 - 1.0
* NOSE_TIP_SIZE // 鼻尖 -1.0 - 1.0
* LIP_THICKNESS // 嘴唇厚度 -1.0 - 1.0
* MOUTH_SIZE // 嘴唇大小 -1.0 - 1.0
* CHEEKBONE_WIDTH // 颧骨 0.0 - 1.0
* JAW_WIDTH // 下颌骨 0.0 - 1.0
* EYE_BRIGHT // 亮眼 0.0 - 1.0
* TEETH_WHITE // 白牙 0.0 - 1.0
* NASOLABIAL_FOLDS // 祛法令纹 0.0 - 1.0
* SKIN_SMOOTHING_EYES // 祛眼袋 0.0 - 1.0
* *****美体*****
* SLIMMING // 瘦身 0.0 - 1.0
* LONG_LEG // 长腿 0.0 - 1.0
*/
void setFaceBeautyValue(String id, float value);
- 添加美妆
/**
* 添加美妆
*
* @param path
*/
void addMakeup(String path);
- 设置美妆浓度
/**
* 设置美妆浓度
*
* @param type ILightningRender.IMakeupLevel.MAKEUP_BLUSH 腮红
* ILightningRender.IMakeupLevel.MAKEUP_FACIAL 修容
* ILightningRender.IMakeupLevel.MAKEUP_EYEBROW 眉毛
* ILightningRender.IMakeupLevel.MAKEUP_EYES 眼影
* ILightningRender.IMakeupLevel.MAKEUP_LIPS 口红
* ILightningRender.IMakeupLevel.MAKEUP_PUPIL 眼瞳
* ILightningRender.IMakeupLevel.MAKEUP_LUT 风格妆滤镜
* ILightningRender.IMakeupLevel.MAKEUP_ALL 风格妆
* @param intensity [0,1]
*/
void setMakeupIntensity(String type, float intensity);
- 移除美妆
/**
* 移除美妆
*
* @param type ILightningRender.IMakeupLevel.MAKEUP_BLUSH 腮红
* ILightningRender.IMakeupLevel.MAKEUP_FACIAL 修容
* ILightningRender.IMakeupLevel.MAKEUP_EYEBROW 眉毛
* ILightningRender.IMakeupLevel.MAKEUP_EYES 眼影
* ILightningRender.IMakeupLevel.MAKEUP_LIPS 口红
* ILightningRender.IMakeupLevel.MAKEUP_PUPIL 眼瞳
* ILightningRender.IMakeupLevel.MAKEUP_LUT 风格妆滤镜
* ILightningRender.IMakeupLevel.MAKEUP_ALL 风格妆
*/
void removeMakeupWithType(String type);
- 移除所有美妆
/**
* 移除所有美妆
*/
void removeMakeupAll();
- 是否渲染美颜
/**
* 是否渲染美颜
*
* @param enable
*/
void enableRenderBeauty(boolean enable);
- 磨皮版本
/**
* 磨皮版本
* 需要在prepare之后调用
*
* @param version ILightningRender.IBeautyLevel.SkinSmoothVersionA
* ILightningRender.IBeautyLevel.SkinSmoothVersionA
* ILightningRender.IBeautyLevel.SkinSmoothVersionA
*/
void setSkinSmoothVersion(int version);
- 美白版本
/**
* 美白版本
* 需要在prepare之后调用
*
* @param version ILightningRender.IBeautyLevel.SkinWhiteningVersionA
* ILightningRender.IBeautyLevel.SkinWhiteningVersionB
* ILightningRender.IBeautyLevel.SkinWhiteningVersionC
*/
void setSkinWhiteVersion(int version);
3. 视频编辑
3.1. 视频编辑基本设置
- 资源初始化
void prepareVideo(MoVideo video);
- 设置变音相关资源
void setPitchShiftProcessMode(String tmpDataFolder, String videoPath, int pitchMode, MRecorderActions.DataProcessListener listener);
- 设置视频输出信息
void setOutVideoInfo(int width, int height, int fps, int bitrate);
- 设置是否开启音频混音
/**
* 是否开启音频混音模式,当视频没有发生变化只是音频发生变化时可以开启,这样可以让编码后的事情具有更高的清晰度
* @param openAudioMix
*/
void setAudioMixMode(boolean openAudioMix);
- 设置音频输出相关信息
void setOutAudioInfo(int sampleRate, int channels, int bits, int bitrate);
3.2. 视频编辑播放控制
- 设置是否循环播放
void setLoopBack(boolean isLoopBack);
- 设置原视频中语音声音大小
/**
* 设置原视频中语音声音大小
* @param ratio [0-1f]
*/
void setPlayingSrcAudioRatio(float ratio);
- 设置音乐声音大小
/**
* 设置音乐声音大小
* @param ratio [0-1f]
*/
void setPlayingMusicAudioRatio(float ratio);
- 设置预览窗口
void addScreenSurface(final SurfaceHolder holder);
void addSurfaceTexture(final SurfaceTexture surfaceTexture);
- 开始预览
void startPreview();
- 指定播放跳转位置
void seek(long ptsMs, boolean isPause);
- 暂停播放
void pause();
- 恢复播放
void resume();
- 停止预览功能
void stopPreview();
- 从合成模式切换到预览模式
void changeToPreviewMode();
- 释放资源
void release();
- 获取当前处理状态
/**
* 参考 {@link com.mm.moment.recorder.MomoProcess#MODE_PREVIEW}、{@link com.mm.moment.recorder.MomoProcess#MODE_PROCESS}
* @return
*/
int getProcessorMode();
- 查询当前播放状态
boolean isPlaying();
- 查询当前视频总长度
int getDuration();
3.3. 视频编辑回调
- 设置错误回调
void setOnProcessErrorListener(MRecorderActions.OnProcessErrorListener listener);
- 设置播放相关回调
void setPlayingStatusListener(MRecorderActions.OnPlayingStatusListener listener);
- 设置合成视频回调
void setOnStatusListener(MRecorderActions.OnProcessProgressListener listener);
3.4. 视频编辑特效处理
- 设置基本滤镜
//初始化所有滤镜
void initFilters(List<MMPresetFilter> filters);
//根据初始化的滤镜组,设置滤镜切换,方向上下
void changeToFilter(final int index, boolean up, float positionReal);
- 添加特效滤镜
void addSpecialFilter(List<BasicFilter> filters);
- 添加文字贴纸或水印
public void addFilter(BasicFilter basicFilter);
- 更新当前的视频特效配置
/**
* 更新视频编辑后效果 seekTime 更新后播放位置,timeRangeScales:视频变速特效
*/
void updateEffect(List<TimeRangeScale> timeRangeScales, long seekTime);
/**
* 更新视频编辑后效果
*/
void updateEffect(long seekTime);
3.5. 视频导出
- 合成视频
void makeVideo(String path);
4. 图片编辑
4.1. 图片编辑基本设置
- 初始化
/**
* 初始化
* @param context 图片处理当前的上下文
* @param imagePath 图片路径(可以是标准图片JPG/PNG,也可以是陌陌拍摄器拍摄的私有协议图片)
* @param fastImage 图片处理的GLSurfaceView,需要业务层自己在XML或代码中构建 参考{@link project.android.imageprocessing.FastImageProcessingView}
* @param savePath 图片处理后保存的路径
* @return 初始化结果,true表示成功
*/
boolean init(Context context, String imagePath, FastImageProcessingView fastImage, String savePath);
/**
* 初始化
* @param context 图片处理当前的上下文
* @param bitmap 图片位图
* @param fastImage 图片处理的GLSurfaceView,需要业务层自己在XML或代码中构建 参考{@link project.android.imageprocessing.FastImageProcessingView}
* @param savePath 图片处理后保存的路径
* @return 初始化结果,true表示成功
*/
boolean init(Context context, Bitmap bitmap, FastImageProcessingView fastImage, String savePath);
- resume
/**
* 前台可见调用
*/
void onResume();
- 释放资源
/**
* 释放资源,确保在上下文退出时进行资源是否,否则会出现内存泄漏等情况
*/
void release();
4.2. 图片编辑特效
- 磨皮(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置磨皮参数
* @param value [0,1f]
*/
void setSkinLevel(float value);
- 美白(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置美白参数
* @param value [0,1f]
*/
void setSkinLightingLevel(float value);
- 磨皮和美白(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置磨皮和美白参数
* @param skinLevel 磨皮参数,参考{@link IImageProcess#setSkinLevel(float)}
* @param skinLightingScale 美白参数,参考{@link IImageProcess#setSkinLightingLevel(float)}
*/
void setSkinAndLightingLevel(float skinLevel, float skinLightingScale);
- 大眼和瘦脸(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置大眼和瘦脸参数
* @param mFaceEyeScale 大眼 取值范围[0,1f]
* @param mFaceThinScale 瘦脸 取值范围[0,1f]
*/
void updateBigEyeAndThin(float mFaceEyeScale, float mFaceThinScale);
- 瘦身和长腿(废弃)
/**
* @deprecated Use {@link #setFaceBeautyValue)}
* 设置瘦身和长腿参数
* @param bodyWarpWidth 瘦身 取值范围[0,1f]
* @param bodyWarpLegsLength 长腿 取值范围[0,1f]
*/
void updateBodyWarpAndLegLen(float bodyWarpWidth, float bodyWarpLegsLength);
- 初始化滤镜
/**
* 初始化滤镜列表
* @param filters 滤镜
*/
void initFilters(List<MMPresetFilter> filters);
- 切换滤镜
/**
* 切换滤镜
* @param index 切换位置,这里的索引是对应{@link IImageProcess#initFilters(List)} 这里设置进来的顺序。
* @param up 是否为向上滑动
* @param offset 向上滑动比例 [0, 1f]
*/
void changeToFilter(int index, boolean up, float offset);
- 调节滤镜强度
/**
* 调节滤镜强度(2.0.0起版本可用)
*
* @param value 取值范围:(0,1]
*/
void setFilterIntensity(@FloatRange(from = 0, to = 1.0f) float value);
- 基础美颜、微整形、美体
/**
* 基础美颜、微整形、美体
*
* @param id 可查看[FaceBeautyID]
* @param value
* *****基础美颜*****
* SKIN_WHITENING // 美白 0.0 - 1.0
* SKIN_SMOOTH // 磨皮 0.0 - 1.0
* SKIN_RUDDY // 红润 0.0 - 1.0
* SHARP_LIGHTNING // 锐化 0.0 - 1.0
* BIG_EYE // 大眼 0.0 - 1.0
* *****微整形*****
* THIN_FACE // 瘦脸 0.0 - 1.0
* JAW_SHAPE // 削脸 -1.0 - 1.0
* FACE_WIDTH // 脸宽 0.0 - 1.0
* CHIN_LENGTH // 下巴 -1.0 - 1.0
* FOREHEAD // 额头 -1.0 - 1.0
* SHORTEN_FACE // 短脸 0.0 - 1.0
* EYE_TILT // 眼睛角度 -1.0 - 1.0
* EYE_DISTANCE // 眼距 -1.0 - 1.0
* EYE_HEIGHT // 眼高 0.0 - 1.0
* NOSE_SIZE // 鼻子大小 -1.0 - 1.0
* NOSE_LIFT // 鼻高 -1.0 - 1.0
* NOSE_WIDTH // 鼻宽 -1.0 - 1.0
* NOSE_RIDGE_WIDTH // 鼻梁 -1.0 - 1.0
* NOSE_TIP_SIZE // 鼻尖 -1.0 - 1.0
* LIP_THICKNESS // 嘴唇厚度 -1.0 - 1.0
* MOUTH_SIZE // 嘴唇大小 -1.0 - 1.0
* CHEEKBONE_WIDTH // 颧骨 0.0 - 1.0
* JAW_WIDTH // 下颌骨 0.0 - 1.0
* EYE_BRIGHT // 亮眼 0.0 - 1.0
* TEETH_WHITE // 白牙 0.0 - 1.0
* NASOLABIAL_FOLDS // 祛法令纹 0.0 - 1.0
* SKIN_SMOOTHING_EYES // 祛眼袋 0.0 - 1.0
* *****美体*****
* SLIMMING // 瘦身 0.0 - 1.0
* LONG_LEG // 长腿 0.0 - 1.0
*/
void setFaceBeautyValue(String id, float value);
- 添加美妆
/**
* 添加美妆
*
* @param path
*/
void addMakeup(String path);
- 设置美妆浓度
/**
* 设置美妆浓度
*
* @param type ILightningRender.IMakeupLevel.MAKEUP_BLUSH 腮红
* ILightningRender.IMakeupLevel.MAKEUP_FACIAL 修容
* ILightningRender.IMakeupLevel.MAKEUP_EYEBROW 眉毛
* ILightningRender.IMakeupLevel.MAKEUP_EYES 眼影
* ILightningRender.IMakeupLevel.MAKEUP_LIPS 口红
* ILightningRender.IMakeupLevel.MAKEUP_PUPIL 眼瞳
* ILightningRender.IMakeupLevel.MAKEUP_LUT 风格妆滤镜
* ILightningRender.IMakeupLevel.MAKEUP_ALL 风格妆
* @param intensity [0,1]
*/
void setMakeupIntensity(String type, float intensity);
- 移除美妆
/**
* 移除美妆
*
* @param type ILightningRender.IMakeupLevel.MAKEUP_BLUSH 腮红
* ILightningRender.IMakeupLevel.MAKEUP_FACIAL 修容
* ILightningRender.IMakeupLevel.MAKEUP_EYEBROW 眉毛
* ILightningRender.IMakeupLevel.MAKEUP_EYES 眼影
* ILightningRender.IMakeupLevel.MAKEUP_LIPS 口红
* ILightningRender.IMakeupLevel.MAKEUP_PUPIL 眼瞳
* ILightningRender.IMakeupLevel.MAKEUP_LUT 风格妆滤镜
* ILightningRender.IMakeupLevel.MAKEUP_ALL 风格妆
*/
void removeMakeupWithType(String type);
- 移除所有美妆
/**
* 移除所有美妆
*/
void removeMakeupAll();
- 磨皮版本
/**
* 磨皮版本
* 需要在prepare之后调用
*
* @param version ILightningRender.IBeautyLevel.SkinSmoothVersionA
* ILightningRender.IBeautyLevel.SkinSmoothVersionA
* ILightningRender.IBeautyLevel.SkinSmoothVersionA
*/
void setSkinSmoothVersion(int version);
- 美白版本
/**
* 美白版本
* 需要在prepare之后调用
*
* @param version ILightningRender.IBeautyLevel.SkinWhiteningVersionA
* ILightningRender.IBeautyLevel.SkinWhiteningVersionB
* ILightningRender.IBeautyLevel.SkinWhiteningVersionC
*/
void setSkinWhiteVersion(int version);
4.3. 图片编辑抠图
- 抠图
/**
* 2.1.2 版本起可用
* 添加一个抠图背景
* @param background
*/
void setSegmentBackground(Bitmap background);
- 清除抠图
/**
* 2.1.2 版本起可用
* 清除抠图
*/
void clearSegmentBackground();
- 切换整体抠图背景的滤镜
/**
* 2.2.4起可用
* 切换整体抠图背景的滤镜
* @param segmentFilter
*/
void switchSegmentFilter(BasicFilter segmentFilter)
4.4. 图片处理
- 是否正在处理中
/**
* 是否正在处理中状态
* @return true:表示正在处理中
*/
boolean isProcessing();
- 设置处理监听
/**
* 设置图片处理监听
* @param listener 监听器
*/
void setImageProcessListener(ImageProcessListener listener);
- 开始处理
/**
* 开始处理
* @param blendBitmap 贴纸bitmap 把贴纸操作的View转成bitmap,在处理时传入即可;如何转换可以参考 {@link com.mm.mediasdk.utils.ImageUtil#createBitmapByView(View, int, int, int, int)}
* @param maskBitmap 涂鸦bitmap
* @param width 宽度
* @param height 高度
*/
void startImageProcess(Bitmap blendBitmap, Bitmap maskBitmap, int width, int height);