跳到主要内容

初始化

本文档将指导您正确完成 RTCLib SDK 的初始化配置。在使用 SDK 的任何功能前,您必须先完成初始化设置。

重要提醒
  • 初始化方法在整个应用生命周期内只需调用一次
  • 初始化完成后,系统将启动应用主进程、IPC 通信进程和推送服务进程
  • 建议在 ApplicationonCreate() 方法中进行初始化

准备 App Key

初始化 SDK 前,您需要从融云控制台获取应用的 App Key。

获取步骤:

  1. 登录融云控制台,进入服务管理页面
  2. 选择您的应用(如果您拥有多个应用,请注意选择应用名称,下图中标号 1)
  3. 根据环境需求选择对应的 App Key(融云的每个应用都提供用于隔离生产和开发环境的两套独立 App Key / Secret。在获取应用的 App Key 时,请注意区分环境,下图中标号 2)

环境说明:

  • 开发环境:用于开发和测试阶段
  • 生产环境:用于正式发布的应用(需先申请应用上线)

appkey

重要提醒
  • 如果您不是应用创建者,请确认控制台显示的数据中心是否符合预期
  • 未申请应用上线的情况下,只能使用开发环境的 App Key

初始化前的准备工作

在进行 SDK 初始化之前,您需要完成以下必要的配置,否则 SDK 功能可能无法正常工作。

必要配置项:

  • 开通音视频服务:音视频服务需要在控制台手动开通。请根据您的应用业务类型,开通相应的音视频服务。配置方法参见开通音视频服务详细说明

  • 海外数据中心:因音视频业务依赖即时通讯业务 IMLib 提供信令通道,如果您的应用使用海外数据中心,必须在初始化之前修改 IMLib SDK 默认连接的服务地址为海外数据中心地址。否则 SDK 默认连接中国国内数据中心服务地址。详细说明请参见配置海外数据中心服务地址

初始化 SDK

RTCLib SDK 基于即时通信 SDK 作为信令通道,因此需要分别初始化 IM SDK 和 RTC SDK。

初始化顺序: 初始化 IM SDK → 建立连接 → 初始化 RTC SDK

初始化 IM SDK

在 Application 的 onCreate() 方法中初始化 IM SDK,整个应用生命周期内只需初始化一次。

示例代码:(适用于 SDK 版本 ≥ 5.4.2)

Java
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();

// 使用您从控制台获取的 App Key
String appKey = "YourAppKey"; // 示例:bos9p5rlcm2ba
InitOption initOption = new InitOption.Builder().build();

// 初始化 IM SDK
RongCoreClient.init(this, appKey, initOption);
}
}

配置说明:

InitOption 包含区域码、服务地址等配置选项。SDK 将通过区域码获取导航服务地址、文件服务地址、数据统计服务地址、和日志服务地址等配置。

区域码配置:

  • 中国数据中心:无需传入配置,SDK 使用默认设置
  • 海外数据中心:必须传入有效的区域码配置

海外数据中心配置示例(新加坡):

Java
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();

String appKey = "Singapore_dev_AppKey";

// 配置新加坡数据中心
InitOption initOption = new InitOption.Builder()
.setAreaCode(AreaCode.SG)
.build();

RongIMClient.init(this, appKey, initOption);
}
}

高级配置选项:

除区域码外,InitOption 还支持以下配置:

参数类型说明
enablePushboolean是否开启推送功能
isMainProcessboolean是否为主进程(通常由 SDK 自动判断)
naviServerString导航服务地址(一般使用默认配置)
fileServerString文件服务地址(仅私有云使用)
statisticServerString数据统计服务地址(一般使用默认配置)

完整配置示例:

Java
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();

String appKey = "Your_AppKey";

InitOption initOption = new InitOption.Builder()
.setAreaCode(AreaCode.BJ)
.enablePush(true)
.setFileServer("http(s)://fileServer")
.setNaviServer("http(s)://naviServer")
.setStatisticServer("http(s)://StatisticServer")
.build();

RongIMClient.init(this, appKey, initOption);
}
}
配置建议
  • 大多数情况下只需配置区域码即可
  • 导航服务和统计服务地址建议使用默认配置
  • 文件服务地址仅在私有云部署时需要配置

初始化 RTC SDK

音视频用户之间的信令传输依赖于融云的即时通信(IM)服务,因此需要先与融云服务器建立 IM 连接,在连接成功后可以初始化 RTC SDK。

示例代码:

Java
// 使用从您服务器获取的 Token 建立连接
RongIMClient.connect("从您服务器端获取的 Token", new RongIMClient.ConnectCallback() {
@Override
public void onSuccess(String userId) {
// IM 连接成功,初始化 RTC SDK
RCRTCConfig.Builder config = RCRTCConfig.Builder.create();
RCRTCEngine.getInstance().init(context, config.build());
}

@Override
public void onError(RongIMClient.ConnectionErrorCode code) {
// 连接失败,处理错误
Log.e("RTC", "IM 连接失败: " + code);
}

@Override
public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus status) {
// 数据库状态回调
}
});
引擎配置

更多 RTC 引擎配置选项请参考:引擎配置文档