美颜处理
本文描述如何在融云音视频 SDK 基础上实现美颜功能。
官方美颜插件
您可以使用融云官方提供了基础美颜插件。
步骤 1:插件集成
集成要求使用的 CallLib 或 RTCLib 版本不小于 5.1.4。有以下两种集成方式:
Maven 集成
在 app/build.gradle
中填入:
dependencies {
...
// x.y.z,请填写具体的 SDK 版本号,需与 CallLib 或 RTCLib 的版本号保持一致。
implementation 'cn.rongcloud.sdk:face_beautifier:x.y.z' // 美颜扩展库(可选)
}
本地集成
-
融云 官网下载 手动集成,选择美颜选项 sdk 下载。
-
将下载的 FaceBeautifier 模块引用到您的工程中。在使用音效的 Module 中添加依赖:
implementation project(':FaceBeautifier')
步骤 2:插件使用
目前融云 Android 音视频 SDK 只支持 Texture 纹理类型为 RGB 视频格式的美颜。即需要在代码中打开 enableEncoderTexture
设置,美颜功能才会生效:
RCRTCEngine.getInstance().init(getApplicationContext(), RCRTCConfig.Builder.create().enableEncoderTexture(true).build());
美颜参数设置分为基础值设置和滤镜设置。详细值及接口说明请参考 接口文档。
美颜基础参数
基础参数目前包括:美白、磨皮、亮度、红润四个参数,取值范围为 [0-10],0 代表无效果,10 代表最大效果。代码示例如下:
RCRTCBeautyOption beautyOption = RCRTCBeautyEngine.getInstance().getCurrentBeautyOption();
if (seekTypId == R.id.beauty_whiteness) {
beautyOption.setWhitenessLevel(progress); // 设置美白参数
} else if (seekTypId == R.id.beauty_smooth) {
beautyOption.setSmoothLevel(progress); // 设置磨皮参数
} else if (seekTypId == R.id.beauty_bright) {
beautyOption.setBrightLevel(progress); // 设置亮度参数
} else if (seekTypId == R.id.beauty_ruddy) {
beautyOption.setRuddyLevel(progress); // 设置红润参数
}
RCRTCBeautyEngine.getInstance().setBeautyOption(true, beautyOption); // true 是使用美颜,false 不使用美颜
美颜滤镜设置
滤镜目前包括:唯美、清新、浪漫三种风格,代码示例如下:
RCRTCBeautyFilter beautyFilter = RCRTCBeautyEngine.getInstance().getCurrentFilter();
switch (checkedId){
case 0:{
RCRTCBeautyEngine.getInstance().setBeautyFilter(RCRTCBeautyFilter.NONE); // 不使用美颜滤镜
break;
}
case 1:{
RCRTCBeautyEngine.getInstance().setBeautyFilter(RCRTCBeautyFilter.ESTHETIC); // 唯美
break;
}
case 2:{
RCRTCBeautyEngine.getInstance().setBeautyFilter(RCRTCBeautyFilter.FRESH); // 清新
break;
}
case 3:{
RCRTCBeautyEngine.getInstance().setBeautyFilter(RCRTCBeautyFilter.ROMANTIC); // 浪漫
break;
}
default:{
Log.e(TAG, "onCheckedChanged: [group, checkedId]" + checkedId);
break;
}
}