跳到主要内容

初始化

在使用 SDK 其它功能前,必须先进行初始化。本文中将详细说明初始化的方法。

注意事项

  • 必须在应用生命周期内调用初始化方法,只需要调用一次。

准备 App Key

您必须拥有正确的 App Key,才能进行初始化。

您可以登录融云控制台,从服务管理页面,查看您已创建的各个应用的 App Key。

如果您拥有多个应用,请注意选择应用名称(下图中标号 1)。另外,融云的每个应用都提供用于隔离生产和开发环境的两套独立 App Key / Secret。在获取应用的 App Key 时,请注意区分环境(生产 / 开发,下图中标号 2)。

  • 如果您并非应用创建者,我们建议在获取 App Key 时确认页面上显示的数据中心是否符合预期。
  • 如果您尚未向融云申请应用上线,仅可使用开发环境。

appkey

初始化之前

部分配置必须在初始化之前完成,否则 SDK 功能无法正常工作。

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

权限配置

iOS 需要在项目的 manifest.json 中 App权限配置 - iOS隐私信息访问的许可描述中加入摄像头和麦克风的使用描述

Android 需要在项目的 manifest.json 中 App权限配置 - Android权限配置中勾选相机、麦克风和网络的使用权限

xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />

初始化 IMLib

音视频 SDK 是基于即时通信 SDK 作为信令通道的,所以要先初始化 IM SDK。如果不换 AppKey,在整个应用生命周期中,初始化一次即可。

方法

JavaScript
RCIMIWEngine.create();

参数说明

参数类型必填说明
appKeyString从控制台申请的 AppKey
optionsObject初始化配置选项

示例代码

JavaScript
// IMLib 初始化
let appKey = '从控制台申请的 AppKey';
let options = {};
let IMEngine = null;
RCIMIWEngine.create(appKey, options).then((res) => {
// 本地代码保存引擎
IMEngine = res;
console.log('IMLib 初始化成功');
});

连接 IM 服务

音视频用户之间的信令传输依赖于融云的即时通信(IM)服务,因此需要先调用 connect 与 IM 服务建立好 TCP 长连接。建议在功能模块的加载位置处调用,之后再进行音视频业务。当模块退出后调用 disconnectlogout 断开该连接。详见连接 IM 服务

连接 IM 服务

方法

JavaScript
connect(
token: string,
timeout: number,
callback: RCIMIWConnectCallback
): Promise<number>;

参数说明

参数名参数类型描述
tokenstring调用 server api 获取到的 token
timeoutnumber连接超时时间,单位:秒。
callbackRCIMIWConnectCallback连接事件回调。SDK 从 5.3.1 版本开始支持 callback 方式回调。从 5.4.0 版本废弃该接口的其他回调方式。如果传入了 callback 参数,仅触发 callback 回调。

返回值

返回值描述
Promise<number>当次接口操作的状态码。0 代表接口调用成功,具体业务结果需要从接口回调获取,非 0 代表当前接口调用操作失败,不会触发接口回调,详细错误参考状态码文档。

示例代码

JavaScript
let callback = {
onDatabaseOpened:(res) => {
//...
},
onConnected:(res) => {
//...
}};
let code = await engine.connect(token, timeout, callback);

初始化 RTC 引擎

在成功连接 IM 服务之后,您可以通过以下代码,初始化 RTC 引擎。

方法

JavaScript
RCRTCEngine.create();

参数说明

参数类型必填说明
setupRCRTCEngineSetup引擎配置项

示例代码

基础初始化

JavaScript
let engine = RCRTCEngine.create();
console.log('RTC 引擎初始化成功');

带配置初始化

或者通过以下方式传递配置项创建引擎。详细说明请参见引擎配置

JavaScript
let setup = {
reconnectable: false,
statsReportInterval: 1000
};
let engine = RCRTCEngine.create(setup);
console.log('RTC 引擎初始化成功,配置:', setup);