跳到主要内容

美颜处理

本页介绍如何在融云音视频 SDK 基础上实现美颜功能。

官方美颜插件

您可以使用融云官方提供的基础美颜插件。

步骤 1:插件集成

需使用 CallLib 或 RTCLib 版本 ≥ 5.1.4。支持以下两种集成方式:

Maven 集成

app/build.gradle 中添加依赖:

Groovy
dependencies {
...
// x.y.z 请填写具体版本号,需与 CallLib 或 RTCLib 的版本保持一致
implementation 'cn.rongcloud.sdk:face_beautifier:x.y.z' // 美颜插件
}

本地集成

  1. 前往融云官网 SDK 下载页面,勾选美颜选项并下载。
  2. 将下载的 FaceBeautifier 模块引入工程,并在使用美颜的 module 中添加依赖:
Groovy
implementation project(':FaceBeautifier')

步骤 2:插件使用

当前仅支持 Texture 纹理类型为 RGB 的视频格式。请在初始化时开启 enableEncoderTexture,否则美颜不生效:

Java
RCRTCEngine.getInstance().init(getApplicationContext(), RCRTCConfig.Builder.create().enableEncoderTexture(true).build());

美颜参数分为基础参数和滤镜参数。详细参数与接口请参考接口文档

美颜基础参数

基础参数包括:美白、磨皮、亮度、红润。取值范围为 [0-10],0 表示无效果,10 表示最大效果:

Java
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); // 设置红润
}
// true:启用美颜;false:关闭美颜
RCRTCBeautyEngine.getInstance().setBeautyOption(true, beautyOption);

美颜滤镜设置

滤镜包括:唯美、清新、浪漫三种风格:

Java
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;
}
}

相芯美颜插件

提示

SDK 自 5.2.5.3 版本起 RTCLib SDK 支持相芯美颜插件。使用相芯美颜需要购买授权,详情请咨询融云商务。

相芯美颜插件支持美颜、滤镜、美形与美肤功能。后续版本将完善对相芯 SDK 的封装;如需更多特效,可直接集成相芯 SDK。

当前不支持同时使用官方美颜与相芯美颜插件。

插件对应的相芯 SDK 版本为 8.3.0。暂不支持加载用户自定义 bundle。

集成相芯美颜插件

自 5.2.5.3 起支持通过融云 Maven 集成,请在 app/build.gradle 中添加:

Groovy
dependencies {
...
// x.y.z 请填写具体版本号,需与 CallLib 或 RTCLib 的版本保持一致
implementation 'cn.rongcloud.sdk:fu_beautifier:x.y.z' // 相芯美颜插件
}
提示

x.y.z 表示当前 RTCLib 的具体版本号,您可以在融云下载页或融云 Maven 仓库查询。

初始化

若 SDK 版本 < 5.4.0,需先初始化 RCRTCEngine 引擎,再初始化相芯美颜插件。

初始化相芯美颜插件时需提供有效授权文件(请联系融云商务购买)。应用运行期间仅需调用一次,建议在 Application#onCreate 中初始化:

Java
RCRTCFUBeautifierEngine.getInstance().register(null, authpack.A());

美颜开关

打开美颜开关后设置的美颜效果才会生效;关闭开关美颜会失效。

Java
RCRTCFUBeautifierEngine.getInstance().setBeautyEnable(enabled);

滤镜设置

可设置自然、白亮、冷色调、粉嫩、黑白、暖色调、蜜桃等效果。参数分为滤镜类别与滤镜级别:

Java
RCRTCFUBeautifierEngine.getInstance().setFilter(FaceBeautyFilterEnum.FENNEN_1, (float) val);

美型设置

可设置瘦脸、V 脸、窄脸、小脸、瘦鼻、嘴巴调整、开眼角、眼距、鼻子长度、人中长度、微笑嘴角、瘦颧骨等效果。以下示例为设置瘦脸程度;更多接口参见相芯美颜插件 Javadoc 文档。

Java
RCRTCFUBeautifierEngine.getInstance().setCheekThinningLevel((float) val);

美肤设置

可设置磨皮、美白、红润、锐化、亮眼、美牙、去黑眼圈、去法令纹等效果。以下示例为设置磨皮强度;更多接口参见相芯美颜插件 Javadoc 文档。

Java
// 设置磨皮强度
RCRTCFUBeautifierEngine.getInstance().setSkinBlurLevel((float) val);

重置所有美颜效果

执行此方法后,将重置所有美颜/美形效果,并释放素材与模型资源;不会关闭美颜引擎。下次启用美颜时需重新配置:

Java
RCRTCFUBeautifierEngine.getInstance().reset();