阿里云RTC提供背景替换和虚化功能,您可以根据实际场景使用该功能完善RTC使用体验。通过阅读本文,您可以了解到虚拟背景的集成与实现方法。

前提条件

  • 环境中已安装Xcode 9.0或以上版本,下载地址请参见Xcode
  • 您需要持有Apple开发证书或个人账号。

环境要求

iOS端具体环境要求,请参见各平台SDK的使用限制

使用限制

背景替换和虚化功能不能同时开启,使用时只能开启其一。

集成开发环境

  1. 创建Xcode项目。
  2. 集成阿里云RTC SDK,具体操作,请参见集成客户端SDK
    说明 需要集成RTC SDK 2.5及以上版本,SDK下载请参见SDK下载
  3. 集成虚拟背景组件。
    1. 下载并解压虚拟背景组件,下载地址请参见组件下载
    2. 复制bokeh.framework文件至工程中。
      • 如果系统版本为iOS 12或以上,请将iOS_Internal_above_ios12.0目录下的bokeh.framework文件复制到工程中。
      • 如果系统版本为iOS 12以下,请将iOS_Internal_below_ios12.0目录下的bokeh.framework文件复制到工程中,并在Build Phases页签中的Copy Bundle Resources中添加bokeh.framework/mnn.metallib文件。
    3. General页签中的Frameworks, Libraries, and Embedded Content区域添加bokeh.framework,并将对应的Embed属性设置成Embed & Sign
  4. command+B,如果界面提示Build Success,表示虚拟背景组件集成成功。

功能实现——背景替换

您可以通过调用enableBackgroundExchange实现背景替换功能,如下所示:

//开启背景替换
AliRtcBokehScaleModel mode = AliRtcBokehScaleModelCrop;
[self.engine enableBackgroundExchange:YES imagePath:@"xxx.png" scalMode:mode];
//关闭背景替换
[self.engine enableBackgroundExchange:NO imagePath:@"" scalMode:mode];

功能实现——背景虚化

您可以通过调用enableBackgroundBlur实现背景虚化功能,如下所示:

//开启背景虚化
uint32_t degree = 50;// 取值:[0,100]
[self.engine enableBackgroundBlur:YES blurDegree:degree];
//关闭背景虚化
[self.engine enableBackgroundBlur:NO blurDegree:0];