NERoom 房间组件
Android
动态与公告
更新日志
产品简介
产品介绍
功能特性
产品优势
使用限制
快速开始
接入流程
开通 NERoom 房间组件
下载 SDK和 Demo
集成 SDK
初始化SDK
搭建直播间
账号集成与登录
房间管理
创建房间
进入房间
监听房间事件
离开房间
删除房间
房间属性
成员管理
查询房间成员信息
移除成员
成员属性
修改成员角色
即时消息
进入和离开聊天室
消息发送
消息接收
音视频通话
加入和退出音视频房间
设置音频属性
本地视频预览
静音和取消静音
开启和关闭视频
屏幕共享
虚拟背景
云信美颜
第三方美颜
伴音和音效
耳返
麦位管理
互动白板
直播
场景实践
PK 直播组件
会议组件
语聊房组件
最佳实践
超大房间直播互动
复用 IM 的账号
错误码
常见问题

云信美颜

更新时间: 2023/04/26 19:33:24

NERoom SDK 提供云信自研的基础美颜和高级美颜功能,帮助用户在音视频通话或互动直播场景中,对人脸进行美肤、美型等美颜调整,或通过画面滤镜改变视频的色调与氛围。

前提条件

  • 请在官网首页右侧通过在线消息、微信或电话联系云信商务经理,获取对应的美颜资源或模型。
  • 已集成 NERoom SDK,并实现了基础音视频通话或互动直播流程。

基础美颜

云信基础美颜可免费使用。

云信基础美颜支持美白、磨皮、红润和锐化 4 种效果,程度可调节,具体参数如下表所示。

分类 枚举值 描述
美肤 美白 Whiten 强度范围 0~1,默认值为 0,推荐值为 0.80
磨皮 Smooth 强度范围 0~1,默认值为 0,推荐值为 0.65
红润 FaceRuddy 强度范围 0~1,默认值为 0,推荐值为 0.30
锐化 FaceSharpen 强度范围 0~1,默认值为 0,推荐值为 0.10

基础美颜的实现方法和高级美颜一样,具体步骤请参见高级美颜中的实现方法

高级美颜

云信高级美颜提供美白、磨皮、瘦脸、大眼等多种美肤、美型效果。NERoom SDK 基础美颜、高级美颜的实现方法如下:

准备工作

向商务经理获取美颜资源,将美颜资源放到 assets 目录下。目录结构类似如下:

美颜资源目录.png

实现预览时开启美颜

  1. 开启预览。

    在开启视频之前,调用 startPreview 开启预览。

  2. 启用美颜模块。

    调用 startBeauty 开启美颜功能模块。开启美颜功能之后才能使用美颜、滤镜等美颜效果。

  3. 调整美颜效果。

    您可以调用 setBeautyEffect 手动设置各种美颜效果,并调整对应的效果强度,具体请参见高级美颜枚举值

    参数
    说明
    beautyType 指定美颜效果。目前支持美白、磨皮等美颜效果。
    level 指定美颜强度。取值范围为 [0,1],各种美颜效果的默认值不同。取值越大,美颜强度越大,请根据业务需要自定义设置美颜强度。

    美白、磨皮等美颜效果可以互相叠加,也可以和滤镜效果互相叠加,但是不能同时使用多款滤镜。

  4. (可选)暂停和恢复美颜。

    您可以调用 enableBeauty暂停或恢复美颜功能,参数说明如下:

    • false: 暂停美颜。暂停后,所有美颜和滤镜效果都会暂时取消,直至重新启用美颜效果。
    • true: 恢复美颜。
  5. 结束美颜模块。

    无需使用美颜效果时,需要调用 stopBeauty 结束美颜功能模块,此时 SDK 会自动销毁美颜引擎并释放资源。

  6. 停止预览。

    调用 stopPreview 停止预览。

实现房间内开启美颜

  1. 开启视频。

    进入房间后,调用unmuteMyVideo接口开启本端视频。

  2. 启用美颜模块。

    调用 startBeauty 开启美颜功能模块。开启美颜功能之后才能使用美颜、滤镜等美颜效果。

  3. 调整美颜效果。

    您可以调用 setBeautyEffect 手动设置各种美颜效果,并调整对应的效果强度,具体请参见高级美颜枚举值

    参数
    说明
    beautyType 指定美颜效果。目前支持美白、磨皮等美颜效果。
    level 指定美颜强度。取值范围为 [0,1],各种美颜效果的默认值不同。取值越大,美颜强度越大,请根据业务需要自定义设置美颜强度。

    美白、磨皮等美颜效果可以互相叠加,也可以和滤镜效果互相叠加,但是不能同时使用多款滤镜。

  4. (可选)暂停和恢复美颜。

    您可以调用 enableBeauty暂停或恢复美颜功能,参数说明如下:

    • false: 暂停美颜。暂停后,所有美颜和滤镜效果都会暂时取消,直至重新启用美颜效果。
    • true: 恢复美颜。
  5. 结束美颜模块。

    无需使用美颜效果时,需要调用 stopBeauty 结束美颜功能模块,此时 SDK 会自动销毁美颜引擎并释放资源。

高级美颜枚举值

高级美颜目前有 23 种效果,程度可调节,且包含了基础美颜的 4 种效果。

分类 枚举值 描述
美肤 美白 Whiten 强度范围 0~1,默认值为 0,推荐值为 0.80
磨皮 Smooth 强度范围 0~1,默认值为 0,推荐值为 0.65
红润 FaceRuddy 强度范围 0~1,默认值为 0,推荐值为 0.30
锐化 FaceSharpen 强度范围 0~1,默认值为 0,推荐值为 0.10
脸型 瘦脸 ThinFace 强度范围 0~1,默认值为 0,推荐值为 0.35
V 脸 VFace 强度范围 0~1,默认值为 0,推荐值为 0.00
窄脸 NarrowFace 强度范围 0~1,默认值为 0,推荐值为 0.00
小脸 SmallFace 强度范围 0~1,默认值为 0,推荐值为 0.10
面部 瘦颧骨 CheekBone 强度范围 0~1,默认值为 0,推荐值为 0.30
瘦下颌 UnderJaw 强度范围 0~1,默认值为 0,推荐值为 0.30
瘦下巴 Jaw 强度范围 0~1,默认值为 0,推荐值为 0.40
人中调整 Philtrum 强度范围 0~1,默认值为 0.50,推荐值为 0.50
眼睛 大眼 BigEye 强度范围 0~1,默认值为 0,推荐值为 0.30
圆眼 RoundEye 强度范围 0~1,默认值为 0,推荐值为 0.80
亮眼 LightEye 强度范围 0~1,默认值为 0,推荐值为 0.60
开眼角 EyeCorner 强度范围 0~1,默认值为 0,推荐值为 0.30
眼距调整 EyeDis 强度范围 0~1,默认值为 0.50,推荐值为 0.50
眼角调整 EyeAngle 强度范围 0~1,默认值为 0.50,推荐值为 0.50
鼻子 小鼻 SmallNose 强度范围 0~1,默认值为 0,推荐值为 0.40
鼻长调整 LongNose 强度范围 0~1,默认值为 0.50,推荐值为 0.50
嘴巴 美牙 WhiteTeeth 强度范围 0~1,默认值为 0,推荐值为 0.30
嘴角调整 MouthAngle 强度范围 0~1,默认值为 0.50,推荐值为 0.50
嘴型调整 Mouth 强度范围 0~1,默认值为 0.50,推荐值为 0.50

滤镜

云信美颜支持通过美颜资源或模型打造多种个性化的滤镜,用户可以在视频预览时或者加入房间后,开启滤镜,实现方法如下:

准备工作

请向云信商务经理获取对应的滤镜资源。将滤镜资源放到 assets 目录下,App 启动后再把 assets\filter_portrait 目录下您需要的滤镜效果拷贝到 SD 卡上,下图以 filter_style_FN1 滤镜为例。

滤镜资源目录.png

实现预览时开启滤镜

  1. 开启预览。 在开启视频之前,调用 startPreview 开启预览。

  2. 启用美颜模块。

    调用 startBeauty 开启美颜功能模块。开启美颜功能之后才能使用美颜、滤镜等美颜效果。

  3. 调用 addBeautyFilter 添加滤镜效果。

    您可以通过setBeautyFilterLevel 设置滤镜强度。

    滤镜效果可以和美颜等效果互相叠加,但是不支持叠加多个滤镜。

    需要更换滤镜时,重复调用此接口使用新的滤镜资源即可。

    参数 说明
    path 指定滤镜模型所在路径。
    level 指定滤镜强度,取值范围为 [0,1],默认为 0.5。取值越大,滤镜越明显,请根据业务需要自定义设置滤镜强度
  4. 不需要使用滤镜效果时,调用 removeBeautyFilter 移除滤镜。

  5. 结束美颜模块。

    无需使用美颜效果时,需要调用 stopBeauty 结束美颜功能模块,此时 SDK 会自动销毁美颜引擎并释放资源。

  6. 停止预览。

    调用 stopPreview 停止预览。

实现房间内开启滤镜

  1. 开启视频。

    进入房间后,调用unmuteMyVideo接口开启本端视频。

  2. 启用美颜模块。

    调用 startBeauty 开启美颜功能模块。开启美颜功能之后才能使用美颜、滤镜等美颜效果。

  3. 调用 addBeautyFilter 添加滤镜效果。

    您可以通过setBeautyFilterLevel 设置滤镜强度。

    滤镜效果可以和美颜等效果互相叠加,但是不支持叠加多个滤镜。

    需要更换滤镜时,重复调用此接口使用新的滤镜资源即可。

    参数 说明
    path 指定滤镜模型所在路径。
    level 指定滤镜强度,取值范围为 [0,1],默认为 0.5。取值越大,滤镜越明显,请根据业务需要自定义设置滤镜强度
  4. 不需要使用滤镜效果时,调用 removeBeautyFilter 移除滤镜。

  5. 结束美颜模块。

    无需使用美颜效果时,需要调用 stopBeauty 结束美颜功能模块,此时 SDK 会自动销毁美颜引擎并释放资源。

示例代码

实现预览时开启美颜和滤镜

NERoomService service = NERoomKit.getInstance().getService(NERoomService.class);
service.previewRoom(new NEPreviewRoomParams(), new NEPreviewRoomOptions(), new NECallback<NEPreviewRoomContext>() {
    @Override
    public void onResult(int code, @Nullable String message, @Nullable NEPreviewRoomContext previewRoomContext) {
        //1. 开启预览
        previewRoomContext.getPreviewController().startPreview();
        //2. 开启美颜
        previewRoomContext.getPreviewController().startBeauty();
        //3. 根据需要是否暂停美颜功能,false: 暂停美颜,true: 恢复美颜
        previewRoomContext.getPreviewController().enableBeauty(true);
        //4. 根据需要调用setBeautyEffect,addBeautyFilter接口来设置美颜及强度,滤镜效果
        previewRoomContext.getPreviewController().setBeautyEffect(NERoomBeautyEffectType.Whiten, 0.5F);
        //5. 选择本地应用存储路径
        String externalPath = Environment.getExternalStorageDirectory().getAbsolutePath();
        previewRoomContext.getPreviewController().addBeautyFilter(externalPath);
        //6. 根据需要设置filter强度
        previewRoomContext.getPreviewController().setBeautyFilterLevel(1.0F);
        //7. 停止美颜
        previewRoomContext.getPreviewController().stopBeauty();
        //8. 停止预览
        previewRoomContext.getPreviewController().stopPreview();
    }
});       

实现房间内开启美颜和滤镜

NERoomService service = NERoomKit.getInstance().getService(NERoomService.class);
service.joinRoom(new NEJoinRoomParams("roomUuid","userName", "avatar", "role", "password", new HashMap<>()), new NEJoinRoomOptions(), new NECallback<NERoomContext>() {
      @Override
      public void onResult(int code, @Nullable String message, @Nullable NERoomContext roomContext) {
        //1. 开启视频
        roomContext.getRtcController().unmuteMyVideo(callback);
        //2. 开启美颜
        roomContext.getRtcController().startBeauty();
        //3. 根据需要是否暂停美颜功能,false: 暂停美颜,true: 恢复美颜
        roomContext.getRtcController().enableBeauty(true);
        //4. 根据需要调用setBeautyEffect,addBeautyFilter接口来设置美颜及强度,滤镜效果
        roomContext.getRtcController().setBeautyEffect(NERoomBeautyEffectType.Whiten, 0.5F);
        //5. 选择本地应用存储路径
        String externalPath = Environment.getExternalStorageDirectory().getAbsolutePath();
        roomContext.getRtcController().addBeautyFilter(externalPath);
        //6. 根据需要设置filter强度
        roomContext.getRtcController().setBeautyFilterLevel(1.0F);
        //7. 停止美颜
        roomContext.getRtcController().stopBeauty();
      }
    });
        

API 参考

接口 说明
startBeauty 开启美颜功能模块。
stopBeauty 结束美颜功能模块。
enableBeauty 暂停或恢复美颜效果。
setBeautyEffect 设置美颜效果。
addBeautyFilter 添加滤镜效果。
setBeautyFilterLevel 设置滤镜强度。
removeBeautyFilter 移除滤镜。
此文档是否对你有帮助?
有帮助
我要吐槽
  • 前提条件
  • 基础美颜
  • 高级美颜
  • 准备工作
  • 实现预览时开启美颜
  • 实现房间内开启美颜
  • 高级美颜枚举值
  • 滤镜
  • 准备工作
  • 实现预览时开启滤镜
  • 实现房间内开启滤镜
  • 示例代码
  • 实现预览时开启美颜和滤镜
  • 实现房间内开启美颜和滤镜
  • API 参考