跳到主要内容

实时音视频开发指导

欢迎使用融云实时音视频(RTC)。RTC 服务基于房间模型设计,可以支持一对一音视频通信、和多人音视频通信。底层基于融云 IM 信令通讯,可保障在长时间音视频通话及弱网情况下保持正常连通。

本页面简单介绍融云 RTC 服务能力和 SDK 产品。

客户端 SDK

融云客户端 SDK 提供丰富的接口,大部分能力支持开箱即用。配合 RTC 服务端 API 接口,可满足丰富的业务特性要求。

提示

前往融云产品文档 · 客户端 SDK 体系 · RTCLib · CallKit · CallLib · CallPlus »

SDK 适用场景

CallPlus、CallLib/Kit、RTCLib 是融云 RTC 服务提供的三款经典的客户端 SDK。其中 CallPlus、CallLib/Kit 用于开发音视频通话(呼叫)业务。RTCLib 是音视频基础能力库,可满足类似会议、直播等业务场景需求,具备较高的扩展与定制属性。

业务分类适用的 SDK流程差异场景描述
通话(呼叫)CallPlus、CallLib/KitSDK 内部呼叫流程自动处理房间号拨打音视频电话(类比微信音视频通话)
会议RTCLib与会者需要约定房间号,参会需进入同一房间线上会议、小班课、在线视频面试、远程面签等
直播RTCLib支持区分主播、观众角色。观众可通过连麦进行发言。直播社交、大型发布会、语聊房、线上大班课等

如何选择 SDK

不同 SDK 适用的业务场景差异较大,请您谨慎选择并决策。

  • CallPlusCallLib/Kit 用于实现通话(呼叫)功能的客户端库。封装了拨打、振铃、接听、挂断等一整套呼叫流程,支持一对一及群组内多人呼叫的通话能力。CallPlus、CallLib/Kit 均依赖 RTCLib,两者区别如下:
    • 【推荐】CallPlus 是融云新一代针对音视频呼叫场景的 SDK,后续新的产品特性和持续迭代均以 CallPlus 为重点。
    • CallLib/Kit 是老版本的音视频通话 SDK,CallLib 不含任何 UI 界面组件,CallKit 提供了呼叫相关的通用 UI 组件库。
    • CallPlus 与 CallLib/Kit 使用完全不同的后端服务架构实现音视频通话(呼叫)功能,因此与 CallLib/Kit 并不互通。暂不支持从 CallLib/Kit 平滑迁移至 CallPlus。
  • RTCLib 是融云音视频核心能力库。应用开发者可将 RTCLib 用于支持直播、会议业务场景。

具体选择建议如下:

  • 不需要通话(呼叫)功能,可使用 RTCLib,即您仅需要融云为您的 App 提供实时音视频(RTC)核心能力。
  • 需要开发支持通话(呼叫)的音视频应用,但不希望自行实现呼叫 UI,可使用 CallKit。直接利用融云提供的呼叫 UI,节省开发时间。
  • 需要开发支持通话(呼叫)的音视频应用,不希望 SDK 带任何 UI 组件,可使用 CallPlus、 CallLib,推荐您使用 CallPlus。
  • 通过融云提供的独立功能插件扩展客户端 SDK 的功能。

在使用融云 SDK 进行开发之前,我们建议使用快速上手教程与示例项目进行评估。

高级和扩展功能

RTC 服务支持的高级与扩展功能,包括但不限于以下项目:

  • 跨房间连麦:支持多主播跨房间连麦 PK 直播。
  • 通话数据统计:按照指定的时间间隔上报通话的详细数据。
  • 屏幕共享:通过自定义视频流的方式在房间内发起屏幕共享功能。
  • 自定义加密:可选择对媒体流进行加密,从而保障用户的数据安全。
  • 插件支持:支持通过插件实现美颜、CDN 播放器等功能。
  • 云端录制:在音视频通话(呼叫)、直播、会议时分别录制每个参与者的音视频、或合并后进行录制。
  • 内容审核:融云媒体服务器(RTC Server)把收到的音视频流转码后送审,审核结果返回应用服务器。

部分功能需配合 RTC 服务端 API 使用。具体支持的功能与平台相关。具体使用方法请参见客户端 SDK 开发文档或服务端开发文档。

平台兼容性

CallKit、CallLib、RTCLib 均支持主流移动操作平台,客户端功能在多端基本保持一致,支持多平台互通。CallPlus 暂仅支持 Android、iOS、Web 平台。

平台/框架接口语种支持架构说明
AndroidJavaarmeabi-v7a、arm64-v8a、x86、x86-64系统版本 4.4 及以上
iOSObjective-C---系统版本 9.0 及以上
WindowsC++、Electronx86、x86-64Windows 7 及以上
LinuxC、Electron---推荐 Ubuntu 16.04 及以上;其他发行版需求请咨询商务
MacOSElectron---系统版本 10.10 及以上
WebJavascript---详见客户端文档「Web 兼容性」
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)---

版本支持

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

SDK/平台AndroidiOSWebElectronFlutterUnityuni-app小程序React NativeWindows - C++Linux - C
RTCLib5.6.x5.6.x5.6.x5.6.x5.2.x5.2.x5.2.x5.0.x5.2.x5.1.x注1
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------------------------

注 1:关于 Linux 平台的支持,请咨询融云的商务。

SDK 体积对比

Android 端

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

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

iOS 端

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

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

实时音视频服务端

实时音视频服务端 API 可以协助您构建集成融云音视频能力的 App 后台服务系统。

您可以使用服务端 API 将融云服务集成到您的实时音视频服务体系中。例如,向融云获取用户身份令牌 (Token),从应用服务端封禁用户、移出房间等。

提示

前往融云服务端开发文档 · 集成必读 »

控制台

使用融云控制台,您可以对开发者账户和应用进行管理,开通音视频服务,以及其他高级服务,查看应用数据报表,和计费数据。

提示

音视频服务必须要从控制台开通后方可使用。参见开通音视频服务

实时音视频数据

您可以前往融云控制台数据统计页面,查询、查看音视频用量、业务健康检查等数据。开通相应服务后,还能获取如业务数据分析等数据。

融云还提供通话质量实时的监控工具,以图表形式展示每一通音视频通话的质量数据,帮助定位通话问题,提高问题解决效率。

融云不会利用客户的数据。同时融云提供完善的数据隐私保护策略。参见 SDK 隐私政策