初始化
在使用 SDK 其他功能前,必须先进行初始化。本文档将详细说明初始化的方法。
注意事项
- 必须在应用生命周期内调用初始化方法,只需要调用一次。
- 初始化后,会启动应用主进程、与应用包名相关的 IPC 进程以及融云默认推送进程。
准备 App Key
您必须拥有正确的 App Key,才能进行初始化。
您可以登录融云控制台,从服务管理页面,查看您已创建的各个应用的 App Key。
如果您拥有多个应用,请注意选择应用名称(下图中标号 1)。另外,融云的每个应用都提供用于隔离生产和开发环境的两套独立 App Key / Secret。在获取应用的 App Key 时,请注意区分环境(生产 / 开发,下图中标号 2)。
提示
- 如果您并非应用创建者,我们建议在获取 App Key 时确认页面上显示的数据中心是否符合预期。
- 如果您尚未向融云申请应用上线,仅可使用开发环境。

初始化之前
部分配置必须在初始化之前完成,否则 SDK 功能无法正常工作。
- 开通音视频服务:音视频服务需要手动开通。请根据应用的具体业务类型,开通对应的音视频服务。详细说明请参见开通音视频服务。
- 海外数据中心:因为音视频业务依赖即时通讯(IM)业务 IMLib 提供信令通道,如果您的应用使用海外数据中心,必须在初始化之前修改 IMLib SDK 默认连接的服务地址为海外数据中心地址。否则 SDK 默认连接中国(北京)数据中心服务地址。详细说明请参见配置海外数据中心服务地址。
初始化
音视频 SDK 基于即时通讯(IM)SDK 作为信令通道,因此需要先初始化 IM SDK。
加载 RTCLib 模块
重要提示
从 1.9.0 版本开始,必须先调用 RCRTCEngineInstance.install() 方法加载 RTCLib 模块,且该方法必须在 IM 初始化之前调用。
TypeScript
//1.9.0 版本新增方法:加载 RTCLib 模块,必需在 IM 初始化之前调用。
RCRTCEngineInstance.install();
初始化 IM SDK
在 UIAbility 的 onCreate() 方法中,调用初始化方法,传入 生产 或 开发 环境的 App Key。
TypeScript
// 在 UIAbility 中获取 context
let context = this.context
let initOption = new InitOption();
let appKey = "从融云后台获取的 App Key";
IMEngine.getInstance().init(context, appKey, initOption);
初始化配置 InitOption 中封装了区域码 areaCode、导航服务地址 naviServer、统计服务地址 statisticServer、文件下载路径 mediaSavePath。
- 如果 App Key 属于中国(北京)数据中心,您无需传入任 何配置,SDK 会使用默认配置。
- 如果 App Key 属于海外数据中心,则必须传入有效的区域码(
AreaCode)配置。请务必在控制台核验当前 App Key 所属海外数据中心后,找到AreaCode中对应的枚举值进行配置。
例如,使用新加坡数据中心的应用的生产或开发环境的 App Key:
TypeScript
// 在 UIAbility 中获取 context
let context = this.context
let initOption = new InitOption();
initOption.areaCode = AreaCode.SG;
let appKey = "Singapore_dev_AppKey";
IMEngine.getInstance().init(context, appKey, initOption);
除区域码外,初始化配置(InitOption)中还封装了以下配置:
- 导航服务地址(
naviServer):一般情况下不建议单独配置。SDK 内部默认使用与区域码对应的地址。 - 数据统计服务地址(
statisticServer):一般情况下不建议单独配置。SDK 内部默认使用与区域码对应的地址。 - 文件下载路径(
mediaSavePath):SDK 内部默认使用应用的 RongCloud/Media 目录。
TypeScript
// 在 UIAbility 中获取 context
let context = this.context
let initOption = new InitOption();
initOption.areaCode = AreaCode.BJ;
initOption.naviServer = "http(s)://naviServer";
initOption.statisticServer = "http(s)://StatisticServer";
let appKey = "Your_AppKey";
IMEngine.getInstance().init(context, appKey, initOption);