美颜
简介
Pano SDK 自带基础美颜,也支持回调视频数据给开发者,使用第三方美颜进行处理。
关于自带美颜的各端 SDK 相关接口,请查看下列介绍:
自带美颜的美颜强度取值范围为0-1,默认值为0.5。
Windows (C++)
通过 RtcEngine
实例的 setOption
方法,OptionType
设置为 FaceBeautify
表示美颜,param
设置为 FaceBeautifyOption
。
在 FaceBeautifyOption
中设置 enable
为 true
开启美颜,intensity
表示美颜强度。
示例代码:
bool enbaleFB = true;
float intensity = 0.5f;
FaceBeautifyOption fbOption = { enbaleFB, intensity };
rtcEngine_->setOption(OptionType::FaceBeautify, &fbOption, sizeof(fbOption));
[注意] 上述接口只对当前选中的一个摄像头生效。如果有多个摄像头同时发送视频,或者同时预览和发送不同摄像头的视频等复杂场景,请更换为指定目标设备的方式:
- 先调用
RtcEngine
实例的getVideoDeviceManager
方法获取视频设备管理器(VideoDeviceManager
)- 通过其
enumerateCaptureDevices
方法枚举视频采集设备,通过回调函数获取deviceId
- 再通过其
setDeviceBoundOption
方法进行设置
macOS/iOS (Objective-C)
通过 PanoRtcEngineKit
实例的 - setOption:forType:
方法,设置 PanoOptionType
为 kPanoOptionFaceBeautify
,option
对象类型为 PanoFaceBeautifyOption
。
在 PanoFaceBeautifyOption
中设置 enable
为 YES
开启美颜,intensity
表示美颜强度。
[注意] 上述接口只对当前选中的一个摄像头生效。如果有多个摄像头同时发送视频,或者同时预览和发送不同摄像头的视频等复杂场景,请更换为指定目标设备的方式:
- 先通过
PanoRtcEngineKit
实例的- enumerateDevices:
方法(macOS) 或- getCameraDeviceId:
方法(iOS) 获取摄像头的deviceId
- 再通过
- setDeviceBoundOption:forType:forDevice:
方法进行设置
示例代码:
PanoFaceBeautifyOption * faceBeautifyOption = [[PanoFaceBeautifyOption alloc] init];
faceBeautifyOption.enable = YES; // 开启美颜
faceBeautifyOption.intensity = 1.0F; // 设置美颜强度
[self.engineKit setOption:faceBeautifyOption forType:kPanoOptionFaceBeautify];
faceBeautifyOption.intensity = 0.8F; // 调整美颜强度
[self.engineKit setOption:faceBeautifyOption forType:kPanoOptionFaceBeautify];
faceBeautifyOption.enable = NO; // 关闭美颜
[self.engineKit setOption:faceBeautifyOption forType:kPanoOptionFaceBeautify];
Android (Java)
通过 RtcEngine
实例的 setFaceBeautify
方法开启美颜,setFaceBeautifyIntensity
方法设置美颜强度。
示例代码:
mRtcEngine.setFaceBeautify(true); // 开启美颜
mRtcEngine.setFaceBeautifyIntensity(1.0F); // 设置美颜强度
mRtcEngine.setFaceBeautifyIntensity(0.8F); // 调整美颜强度
mRtcEngine.setFaceBeautify(false); // 关闭美颜
[注意] 上述接口只对当前选中的一个摄像头生效。如果有多个摄像头同时发送视频,或者同时预览和发送不同摄像头的视频等复杂场景,请更换为指定目标设备的方式:
- 先调用
RtcEngine
实例的getVideoDeviceManager
方法获取视频设备管理器(RtcVideoDeviceManager
),通过其getCaptureDeviceList
方法获取视频采集设备列表(RtcDeviceInfo
),其中包含deviceId
- 再通过
RtcEngine
实例的setDeviceBoundOption(String deviceId, PanoOptionType type, Object value)
方法进行设置,PanoOptionType
参数为FaceBeautify
时开关美颜,Object
参数为FaceBeautifyParams
类型(具体请见下面示例代码)
示例代码:
RtcVideoDeviceManager rtcVideoDeviceManager = mRtcEngine.getVideoDeviceManager();
RtcDeviceInfo[] rtcDeviceInfos = rtcVideoDeviceManager.getCaptureDeviceList();
String deviceId = rtcDeviceInfos[0].deviceId; // 此处处于演示目的,直接获取第一个元素,实际使用请按需获取
FaceBeautifyParams faceBeautifyParams = new FaceBeautifyParams();
faceBeautifyParams.enable = true; // 开启美颜
faceBeautifyParams.intensity = 0.8F; // 设置美颜强度
mRtcEngine.setDeviceBoundOption(deviceId, Constants.PanoOptionType.FaceBeautify, faceBeautifyParams);