虚拟背景
EnableVirtualBackground
开启/关闭虚拟背景。
C++
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
int EnableVirtualBackground(bool enabled, FVirtualBackgroundSource backgroundSource, FSegmentationProperty segproperty, EMEDIA_SOURCE_TYPE type);
详情
虚拟背景功能支持将本地用户原来的背景替换为静态图片、动态视频、将背景虚化,或者将人像与背景分割以实现人像画中画。成功开启虚拟背景功能后,频道内所有用户都能看到自定义的背景。
请在 EnableVideo 或 StartPreview 之后调用该方法。
注意
- 该功能对设备性能要求较高,调用该方法时 SDK 会自动对当前设备能力进行检查。建议你在搭载如下芯片的设备上使用:
- 骁龙 700 系列 750G 及以上
- 骁龙 800 系列 835 及以上
- 天玑 700 系列 720 及以上
- 麒麟 800 系列 810 及以上
- 麒麟 900 系列 980 及以上
- CPU 为 i5 及更好的设备
- 搭载 A9 及以上芯片的如下设备:
- iPhone 6S 及以上
- iPad Air 第三代及以上
- iPad 第五代及以上
- iPad Pro 第一代及以上
- iPad mini 第五代及以上
- 建议你在满足如下条件的场景中使用该功能:
- 使用高清摄像设备、摄像环境光照均匀。
- 摄像画面中,物件较少,用户的人像为半身人像且基本无遮挡,背景色较单一且与用户着装颜色不同。
- 该方法依赖于虚拟背景动态库
libagora_segmentation_extension.dll
,如果删除该动态库会导致无法正常开启该功能。
参数
- enabled
- 是否开启虚拟背景:
true
: 开启虚拟背景。false
: 关闭虚拟背景。
- backgroundSource
- 自定义的背景。详见 FVirtualBackgroundSource。为将自定义背景图的分辨率与 SDK 的视频采集分辨率适配,SDK 会在保证自定义背景图不变形的前提下,对自定义背景图进行缩放和裁剪。
- segproperty
- 背景图像的处理属性。详见 FSegmentationProperty。
- type
- 视频源类型。详见 EMEDIA_SOURCE_TYPE。注意在该方法中,该参数仅支持以下两种设置:
- 默认值为 PRIMARY_CAMERA_SOURCE。
- 如果要使用第二个摄像头采集视频,将该参数设置为 SECONDARY_CAMERA_SOURCE。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
- -4:设备能力不满足虚拟背景的使用要求,建议更换性能更高的设备。