实现音视频通话
在本教程中,您可以体验集成融云 Web 端音视频通话(呼叫)SDK CallLib 的集成流程。 CallLib 支持单人音视频呼叫和基于群组的多人呼叫场景。
示例项目
融云音视频通话 QuickDemo(GitHub · Gitee)演示了融云产品音视频通话在 Web 端的功能,以便开发者体验产品,快速集成,实现单群聊、音视频通话等场景需求。
QuickDemo 开放源代码,您可以对感兴趣的部分进行代码改造,以便进一步了解细节。具体实现详见运行示例项目。
前置条件
注意
浏览器页面地址必须为 https 协议地址,或使用 localhost 域名。
CallLib 概念说明
注意
通过 onSessionClose 监听函数获得通话结束。
步骤 1:开通服务
您在融云创建的应用不会默认启用音视频服务。在使用融云提供的任何音视频服务前,您需要前往控制台,为应用开通音视频服务。
具体步骤请参阅控制台文档开通音视频服务。
注意
服务开通、关闭等设置完成后 15 分钟后生效。
步骤 2:导入 SDK
您可以使用 NPM 安装 CallLib 与其依赖的 IMLib 与 RTCLib,或者使用 CDN 方式安装。
CallLib 相关业务依赖 IMLib 作为信令通道。因此,开发音视频通话必须安装融云音视频核心能力库 RTCLib,即时通讯能力库 IMLib。您可选用 2.X 或 4.X 或 5.X 版本的 IMLib。
本部分仅针对新集成客户简要说明 NPM 方式安装方法。以下步骤中均以 IMLib 5.X 为例说明。
注意
CallLib 配合使用 IMLib 2.X,4.X 的详细说明,以及 CDN 方式安装方法,请参阅 安装 CallLib SDK。
-
安装 5.X 版本 IMLib(推荐新集成客户使用 IMLib 5.X)。
shell# 安装 IMLib v5
npm install @rongcloud/engine@latest @rongcloud/imlib-next --save -
安装 RTCLib 5.X。
shell# 安装 RTCLib
npm install @rongcloud/plugin-rtc --save -
安装 CallLib 5.X。
shell# 安装 CallLib
npm install @rongcloud/plugin-call --save -
全部下载安装完成后,即可在代码中导入 IMLib(5.X)、RTCLib 与 CallLib 库。
typescript
// 导入 IMLib 5.X
import * as RongIMLib from "@rongcloud/imlib-next";
// 导入 RTCLib
import { installer as rtcInstaller, RCRTCClient, RCTrack, RCFrameRate, RCResolution } from "@rongcloud/plugin-rtc";
// 导入 CallLib
import { installer as callInstaller, RCCallClient, RCCallSession, RCCallErrorCode, ISessionListener, IEndSummary, ISenderInfo, IMuteUser, IInvitedUsers, RCCallLanguage, RCCallEndReason, RCCallMediaType, IOfflineRecord, RCCallSessionState } from "@rongcloud/plugin-call";
步骤 3:初始化
本部分仅针对新集成客户简要说明使用 IMLib 5.X 时,IM 客户端、RTC 客户端与 CallLib 客户端的初始化方式。
注意
注意,CallLib 配合使用 IMLib 2.X,4.X 时,IM、RTC 与 CallLib 客户端初始化方式均有不同。详见初始化。
请依次初始化 IM 客户端、RTC 客户端与 CallLib 客户端。
-
调用 IMLib 的
init
方法,初始化 IM 客户端(IMLib 5.X)。appkey
即您的融云应用的 App Key。typescript// IM 客户端初始化(IMLib 5.X)
RongIMLib.init({
appkey: '<your-app-key>',
});