美颜
简介
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);
