跳到主要内容

美颜插件

官方美颜插件

从 5.1.4 及之后版本开始,融云 RTCLib SDK 支持美颜和滤镜功能。美颜与滤镜功能以 RongFaceBeautifier 插件库形式提供,并已集成于 SDK 中。

集成使用

RongCloudRTC 升级到 5.1.4 及以后版本,在需要美颜功能的文件中导入美颜插件头文件:

Objective C
#import <RongFaceBeautifier/RongFaceBeautifier.h>

确保在设置美颜和滤镜之前已经初始化 RCRTCEngine 引擎。

使用 RCRTCBeautyEngine 单例的 setBeautyOption:option:setBeautyFilter: 方法设置美颜参数和滤镜。

示例代码

Objective C
// 获取当前美颜参数
RCRTCBeautyOption *option = [[RCRTCBeautyEngine sharedInstance] getCurrentBeautyOption];
// 修改参数
option.whitenessLevel = 0;
option.smoothLevel = 0;
option.ruddyLevel = 0;
option.brightLevel = 5;
// 设置美颜
[[RCRTCBeautyEngine sharedInstance] setBeautyOption:YES option:option];
// 设置滤镜
[[RCRTCBeautyEngine sharedInstance] setBeautyFilter:RCRTCBeautyFilterEsthetic];

设置美颜

Objective C
- (BOOL)setBeautyOption:(BOOL)enable option:(RCRTCBeautyOption *)option;
参数类型必填说明
enabledBOOL是否开启美颜
optionRCRTCBeautyOption支持开发者设置参数 whitenessLevel(美白)、smoothLevel(磨皮)、ruddyLevel(红润)和 brightLevel(亮度),当 enabled 为 NO 时可以传 nil

设置滤镜

Objective C
- (BOOL)setBeautyFilter:(RCRTCBeautyFilter)filter;
参数类型必填说明
filterRCRTCBeautyFilter滤镜类型,支持设置唯美、清新和浪漫三种基础滤镜。

重置参数

因为 RCRTCBeautyEngine 类是单例对象,所以会保留开发者设置的美颜参数或滤镜类型,在需要重置美颜的时候(例如重复进入房间时)需要调用 reset 方法重置所有美颜参数和滤镜。

Objective C
[[RCRTCBeautyEngine sharedInstance] reset];

相芯美颜插件概述

重要说明
  • 从 5.4.0 及之后版本开始,融云 CallLib/CallKit SDK 支持相芯美颜插件
  • 使用相芯美颜需要购买相关授权,详情请咨询融云商务
  • 当前不支持同时使用官方美颜和相芯美颜插件
  • 插件对应的相芯 SDK 版本号为 8.3.0,暂不支持加载用户自定义的 bundle

集成相芯美颜插件

通过 CocoaPods 集成

在 Podfile 文件中添加以下内容:

ruby
pod 'RongFUFaceBeautifier', '~> x.y.z'
版本要求
  • x.y.z 代表美颜插件的具体版本号,插件版本号需要与 RTCLib 版本号一致
  • 您可以在融云下载页或 CocoaPods 仓库进行查询
  • 如果集成了 CallKit,则必须保持 CallKit、CallLib、RongFUFaceBeautifier 插件版本号前三位一致

导入头文件

RongCloudRTC 升级到 5.4.0 及以后版本,在需要美颜功能的文件中导入美颜插件头文件:

Objective C
#import <RongFUFaceBeautifier/RongFUFaceBeautifier.h>

初始化美颜引擎

功能描述

初始化相芯美颜引擎。应用运行期间只需调用一次即可。

接口原型

Objective C
- (BOOL)registerWithAuthPackage:(void *)package
authSize:(int)size;

参数说明

参数名类型是否必填说明
packagevoid*密钥数组,必须配置好密钥,SDK 才能正常工作
sizeint密钥数组大小

代码示例

Objective C
#import <RongFUFaceBeautifier/RongFUFaceBeautifier.h>

// 初始化美颜引擎(应用运行期间只调用一次)
// auth_package 为相芯美颜授权文件
[[RCRTCFUBeautyEngine sharedInstance] registerWithAuthPackage:&auth_package
authSize:sizeof(auth_package)];
注意事项
  • 此方法应在应用启动时调用一次即可
  • 确保授权文件的有效性,否则美颜功能无法正常使用

设置美颜开关

功能描述

控制美颜功能的开关状态。打开美颜开关后设置的美颜效果才会生效;关闭开关美颜会失效。

接口原型

Objective C
- (void)setBeautyEnable:(BOOL)enable;

参数说明

参数名类型是否必填说明
enableBOOLYES:开启美颜,NO:关闭美颜。默认关闭,此处为总开关,设置关闭时给美颜引擎传递任何参数都不生效

代码示例

Objective C
// 开启美颜功能
[[RCRTCFUBeautyEngine sharedInstance] setBeautyEnable:YES];

// 关闭美颜功能
[[RCRTCFUBeautyEngine sharedInstance] setBeautyEnable:NO];
注意事项
  • 必须先开启美颜开关,后续的美颜设置才会生效
  • 关闭美颜开关后,所有美颜效果都会失效

设置滤镜效果

功能描述

设置滤镜效果。滤镜可设置自然、白亮、冷色调、粉嫩、黑白、暖色调、蜜桃等效果。

接口原型

Objective C
- (void)setFilterWithName:(NSString *)name
level:(float)level;

参数说明

参数名类型是否必填说明
nameNSString滤镜名称,参考 RCRTCFUBeautyDefines.h
levelfloat滤镜强度,取值范围 0.0~1.0,1.0 程度最强,默认 1.0

代码示例

Objective C
// 设置滤镜效果
[[RCRTCFUBeautyEngine sharedInstance] setFilterWithName:@"滤镜名称" level:0.5f];


设置瘦脸程度

功能描述

设置瘦脸程度。美型功能可设置瘦脸程度、V 脸程度、窄脸程度、小脸程度、瘦鼻程度、嘴巴调整程度、开眼角强度、眼睛间距、鼻子长度、人中长度、微笑嘴角强度、瘦颧骨强度等效果。

接口原型

Objective C
- (void)setCheekThinningIntensity:(float)level;

参数说明

参数名类型是否必填说明
levelfloat瘦脸程度,取值范围 0.0~1.0,1.0 程度最强

代码示例

Objective C
// 设置瘦脸程度
[[RCRTCFUBeautyEngine sharedInstance] setCheekThinningIntensity:0.3f];


设置磨皮强度

功能描述

设置磨皮强度。美肤功能可设置磨皮、美白、红润、锐化、亮眼、美牙、去除黑眼圈、去除法令纹强度等效果。

接口原型

Objective C
- (void)setBlurIntensity:(float)level;

参数说明

参数名类型是否必填说明
levelfloat磨皮强度,取值范围 0.0~6.0,默认 6.0

代码示例

Objective C
// 设置磨皮强度
[[RCRTCFUBeautyEngine sharedInstance] setBlurIntensity:0.6f];


重置美颜效果

功能描述

重置所有美颜效果。执行此方法后,会重置所有美颜美形效果,并释放素材和模型资源,但不会关闭美颜引擎。

接口原型

Objective C
- (void)reset;

代码示例

Objective C
// 重置所有美颜效果
[[RCRTCFUBeautyEngine sharedInstance] reset];

// 重置后如需继续使用美颜,需要重新调用 setBeautyEnable: 方法
[[RCRTCFUBeautyEngine sharedInstance] setBeautyEnable:YES];
重要提醒
  • 执行 reset 方法后,所有美颜设置都会被清除
  • 下次启用美颜需要重新调用 setBeautyEnable:YES 方法
  • 各种美颜参数也需要重新设置

完整使用示例

以下是相芯美颜插件的完整使用流程:

Objective C
#import <RongFUFaceBeautifier/RongFUFaceBeautifier.h>

@implementation BeautyViewController

- (void)setupBeautyEngine {
// 1. 初始化美颜引擎(应用启动时调用一次)
[[RCRTCFUBeautyEngine sharedInstance] registerWithAuthPackage:&auth_package
authSize:sizeof(auth_package)];

// 2. 开启美颜功能
[[RCRTCFUBeautyEngine sharedInstance] setBeautyEnable:YES];

// 3. 设置滤镜效果
[[RCRTCFUBeautyEngine sharedInstance] setFilterWithName:name level:0.5f];

// 4. 设置美型效果
[[RCRTCFUBeautyEngine sharedInstance] setCheekThinningIntensity:0.3f];

// 5. 设置美肤效果
[[RCRTCFUBeautyEngine sharedInstance] setBlurIntensity:0.6f];
}

- (void)disableBeauty {
// 关闭美颜功能
[[RCRTCFUBeautyEngine sharedInstance] setBeautyEnable:NO];
}

- (void)resetBeautySettings {
// 重置所有美颜效果
[[RCRTCFUBeautyEngine sharedInstance] reset];

// 如需继续使用,重新开启美颜
[[RCRTCFUBeautyEngine sharedInstance] setBeautyEnable:YES];
}

@end