跳到主要内容

CallLib 3.X 升级到 5.X

本文描述 CallLib SDK 的升级步骤。

升级概述

CallLib SDK 5.X 是基于 AndroidX 开发的新版 SDK,功能更丰富,更稳定,并在之前版本上修复了大量问题,建议尽早升级至新版 CallLib SDK。

前置条件

  • CallLib SDK 依赖 IMLib 请您确保已将 IMLib 升级至 5.X
  • 已遵照 IMLib 升级要求将您的工程升级至 AndroidX。

修改依赖方式

以下仅介绍 maven CallLib 还支持本地依赖方式,请参考导入 CallLib SDK

修改 Maven 仓库地址

maven {url "https://dl.bintray.com/rongcloud/maven"}  // 3.X
maven {url "https://maven.rongcloud.cn/repository/maven-releases/"}  // 5.X

修改依赖命名

dependencies {
// x.y.z,请填写具体的 SDK 版本号,新集成用户建议使用最新版。
implementation 'cn.rongcloud.sdk:call_lib:x.y.z'
implementation 'cn.rongcloud.sdk:im_lib:x.y.z'
}

注意

  • 各个 SDK 的最新版本号可能不相同,还可能是 x.y.z.h,可前往 融云官网 SDK 下载页面融云的 Maven 代码库 查询。
  • 从 5.2.0 版本开始,CallKit/CallLib 必须与其依赖的 IMKit/IMLib SDK 保持版本一致(前三位必须保持一致)。

接口变化

设置音视频引擎服务器地址信息

如果您的应用使用海外数据中心或私有化部署,请检查是否使用 setEngineServerInfo

请遵照数据中心替换为以下两个方法:

/**
* 设置 海外 数据中心的导航服务器和媒体服务器地址。
* 此方法要在 {@link #init(Context, String)} 前使用
*
* @param naviServer 海外数据中心的导航服务器地址。
* @param fileServer 海外数据中心的媒体服务器地址,即文件和图片的上传地址。使用独立数据中心时必须填写。
*/
RongIMClient.setServerInfo(final String naviServer, final String fileServer);
// 设置音视频媒体服务器地址
RCRTCEngine.getInstance().setMediaServerUrl(String mediaServerUrl);

修改视频属性设置

3.X 的 RongRTCConfig 包含了视频属性,音频属性,硬件采集属性设置。在 5.X 中视频属性单独使用 RCRTCVideoStreamConfig 配置

// 5.X设置分辨率,码率,帧率
RCRTCVideoStreamConfig.Builder rcrtcVideoStreamConfig = RCRTCVideoStreamConfig.Builder.create()
.setVideoResolution(RCRTCVideoResolution.RESOLUTION_480_640)
.setVideoFps(RCRTCVideoFps.Fps_15)
.setMaxRate(1000)
.setMinRate(350);
RongCallClient.getInstance().setVideoConfig(rcrtcVideoStreamConfig);


在 5.X 中音频属性单独使用 RCRTCAudioStreamConfig 配置

RCRTCAudioStreamConfig.Builder builder = RCRTCAudioStreamConfig.Builder.create()
.setNoiseSuppression(RCRTCParamsType.NSMode.NS_MODE3);
RongCallClient.getInstance().setAudioConfig(builder);

3.X RongRTCConfig 中的其他配置可以使用5.X的 RCRTCConfig 进行替换。详见引擎配置

/**
* 视频流采集方式,设置视频流是否采用 texture 采集。一般安卓 5.0 以下系统建议使用 YUV 采集,以避免低版本系统 texture 的兼容性问题。
*
* @param enabled 默认为 true,即 texture 方式采集;当为 false 时,即 yuv 方式采集。
*/
RCRTCConfig.Builder rcrtcConfig = RCRTCConfig.Builder.create()
.enableEncoderTexture(false);

RongCallClient.getInstance().setRTCConfig(rcrtcConfig);