跳到主要内容

开发指导

本文介绍了基于融云呼叫产品进行开发的必要信息。

开通服务

您在融云创建的应用默认不会启用音视频服务。在开始使用融云实时音视频呼叫产品前,请在控制台开通服务。

客户端 SDK开通方式
CallLib SDK前往控制台音视频通话页面开通服务
CallPlus SDK前往控制台音视频通话页面开通服务
CallKit前往控制台音视频通话页面开通服务

呼叫流程

音视频通话(呼叫)业务是指含呼叫业务流程的音视频通话,主要包含信令通知和音视频传输两部分。其中信令通知利用融云的即时通讯能力(基于 IMLib SDK)。信令传输完成后,开始音视频传输(音视频传输基于融云音视频核心引擎 RTCLib SDK)。

流程图解析

  1. 用户 A 调用呼叫方法,向用户 B 发起音视频通话请求。
  2. B 在线时,收到邀请通话的信息,CallLib SDK 内部自动回复响铃消息。
  3. A 收到响铃消息,得知 B 用户已响铃。
  4. B 用户接受通话邀请。
  5. A 收到 B 发送的邀请已接收信息。
  6. 成功建立音视频通话。

音视频通话(呼叫)业务中的实时音视频通信基于房间模型设计。主叫与被叫方需要进入同一个音视频房间才能实现音视频流的传输。CallLib 已实现的呼叫流程会自动实现与房间相关的逻辑,无需您额外进行处理。

客户端

平台兼容性

平台/框架接口语种支持架构说明
AndroidJavaarmeabi-v7a、arm64-v8a、x86、x86-64系统版本 4.4 及以上
iOSObjective-C---系统版本 9.0 及以上
Flutterdart---Flutter 2.0.0 及以上
uni-appJavascript---uni-app 2.8.1 及以上
React NativeJavascript---React Native 0.65 及以上
UnityC#Android(armeabi-v7a、arm64-v8a) iOS(arm64,armv7) Windows(x86、x86-64)---
WebJavascript---详见客户端文档 Web 兼容性
WindowsElectron、C++x86、x86-64Windows 7 及以上。若有 C++ 接口需求,请咨询商务
LinuxElectron、C---推荐 Ubuntu 16.04 及以上;其他发行版,请咨询商务;若有 C++ 接口需求,请咨询商务。
MacOSElectron---系统版本 10.10 及以上

版本支持

RTC 服务客户端 SDK 针对各平台/框架提供的最新版本如下(--- 表示暂未支持):

SDK/平台AndroidiOSWebElectronFlutterUnityuni-app小程序React NativeWindows - C++Linux - C
CallLib5.6.x5.6.x5.0.x5.1.x5.1.x---5.1.x3.2.x5.1.x详询融云商务详询融云商务
CallKit5.6.x5.6.x---------------------详询融云商务详询融云商务
CallPlus2.x2.x2.x------------------详询融云商务详询融云商务

SDK 体积对比

Android 端

以下数据基于 RTC 5.X 版本。

CPU 架构集成 CallLib 增量集成 CallKit 增量
armeabi4.6MB7.4MB
arm64-v8a5.1MB8.0MB
x865.4MB8.3MB
全平台17.2MB20.1MB

iOS 端

以下数据基于 RongCloudRTC 5.X 版本。

CPU 架构集成 CallLib 增量集成 CallKit 增量
arm644.4M8.9M
arm64 + armv78.9M14.8M

服务端

集成实时音视频服务 API 时,请确保:

  • 已在[控制台]创建应用,并获取了开发环境或者生产环境下有效的 App Key / App Secret。
  • 由于音视频服务依赖即时通讯服务作为信令通道,因此客户端必须与融云服务器建立 IM 连接。因此,您的后端必须实现从融云获取 Token 的流程,即您的后端必须调用 IM Server API 的[获取 Token]接口,并将有效的 Token 分发至客户端。
  • 已准备好自己的客户端,并已搭建相关的业务场景。例如,可以获得有效 Token,与融云建立 IM 连接。

部分高级扩展特性仅在 RTC Server API 中提供,例如云端截图、云播放器等。

音视频服务提供服务端回调(Webhook),支持将业务的数据、状态通知同步到您设置的回调地址。所有服务端回调均需要在控制台启用。

关键概念

应用

注册为融云控制台账号后,您可以创建融云应用。每个融云应用均区分开发环境与生产环境,提供不同的 App Key,两套环境之间数据隔离。

您可以在控制台 App Key 页面中查看应用在当前环境的详细信息。

聊天SDK|800x500

如果您的应用存在多种角色的客户端(如教育类应用包括教师端和学生端)时,可通过设置多个应用标识,生成多种使用相同 App Key 的最终应用。

用户

在即时通讯服务中,您的后端应向融云服务端提供用户 ID(userId),以换取唯一用户 Token。对融云来说,这个以 userId 获取 Token 的步骤即注册用户,且必须通过调用 Server API 的 获取 Token 接口来完成。

用户必须持有有效 Token,才能通过 IM SDK 成功连接到融云服务端,使用融云即时通讯服务。

音视频房间

在音视频服务中,音视频房间指通过进行音视频通信的虚拟空间,同一房间内的用户可以互相收、发实时音视频媒体流。

音视频房间具有以下特点:

  • 音视频房间是在服务端内部自动创建的,不支持由应用程序直接创建。
  • 第一个用户在客户端发起加入音视频房间请求后,融云服务端会自动创建音视频房间。
  • 服务端会根据客户端的请求,创建呼叫模式、会议模式,或直播模式的音视频房间。
  • 服务端会为每一个音视频房间生成服务端唯一标识,称为 Session ID(Session ID 非音视频房间 ID)。Session ID 从第一个人进入房间时生成,到所有人退出房间销毁,也称为会话 ID。
  • 一个用户同一时间只能在一个音视频房间内。如果要进入另一个房间,必须从前一个房间内退出。
  • 考虑移动设备的带宽(主要是在多路视频情况下),建议单次通话或房间内,视频不超过 16 人,纯音频不超过 32 人。超过此上限可能影响通话效果。

呼叫

在音视频服务中,呼叫模式的音视频房间是区分主叫、被叫角色的音视频房间。对应的客户端 SDK 包括 CallLib SDKCallPlus SDKCallKit

  • 第一个用户(主叫用户)进入房间时,SDK 自动创建音视频房间的 Room ID,该 ID 等同于 Call ID。
  • 接听时,被叫用户使用 Call ID 加入音视频房间。
  • 每个房间在创建之初,融云服务生成一个全网唯一的 SessionId,可用于后台业务查询或与融云进行问题沟通。当房间内的所有人退出或被服务器判定掉线后,此 Session 结束。