实时音视频开发指导
欢迎使用融云实时音视频(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/Kit | SDK 内部呼叫流程自动处理房间号 | 拨打音视频电话(类比微信音 视频通话) |
会议 | RTCLib | 与会者需要约定房间号,参会需进入同一房间 | 线上会议、小班课、在线视频面试、远程面签等 |
直播 | RTCLib | 支持区分主播、观众角色。观众可通过连麦进行发言。 | 直播社交、大型发布会、语聊房、线上大班课等 |
如何选择 SDK
不同 SDK 适用的业务场景差异较大,请您谨慎选择并决策。
- CallPlus 与 CallLib/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 平台。
平台/框架 | 接口语种 | 支持架构 | 说明 |
---|---|---|---|
Android | Java | armeabi-v7a、arm64-v8a、x86、x86-64 | 系统版本 4.4 及以上 |
iOS | Objective-C | --- | 系统版本 9.0 及以上 |
Windows | C++、Electron | x86、x86-64 | Windows 7 及以上 |
Linux | C、Electron | --- | 推荐 Ubuntu 16.04 及以上;其他发行版需求请咨询商务 |
MacOS | Electron | --- | 系统版本 10.10 及以上 |
Web | Javascript | --- | 详见客户端文档「Web 兼容性」 |
Flutter | dart | --- | Flutter 2.0.0 及以上 |
uni-app | Javascript | --- | uni-app 2.8.1 及以上 |
React Native | Javascript | --- | React Native 0.65 及以上 |
Unity | C# | Android(armeabi-v7a、arm64-v8a) iOS(arm64,armv7) | --- |
版本支持
RTC 服务客户端 SDK 针对各平台/框架提供的最新版本如下(---
表示暂未支持):
SDK/平台 | Android | iOS | Web | Electron | Flutter | Unity | uni-app | 小程序 | React Native | Windows - C++ | Linux - C |
---|---|---|---|---|---|---|---|---|---|---|---|
RTCLib | 5.6.x | 5.6.x | 5.6.x | 5.6.x | 5.2.x | 5.2.x | 5.2.x | 5.0.x | 5.2.x | 5.1.x | 见注1 |
CallLib | 5.6.x | 5.6.x | 5.0.x | 5.1.x | 5.1.x | --- | 5.1.x | 3.2.x | 5.1.x | --- | --- |
CallKit | 5.6.x | 5.6.x | --- | --- | --- | --- | --- | --- | --- | --- | --- |
CallPlus | 2.x | 2.x | 2.x | --- | --- | --- | --- | --- | --- | --- | --- |
注 1:关于 Linux 平台的支持,请咨询融云的商务。
SDK 体积对比
Android 端
以下数据基于 RTC 5.X 版本。
CPU 架构 | 集成 RTCLib 增量 | 集成 CallLib 增量 | 集成 CallKit 增量 |
---|---|---|---|
armeabi | 4.5MB | 4.6MB | 7.4MB |
arm64-v8a | 5.1MB | 5.1MB | 8.0MB |
x86 | 5.4MB | 5.4MB | 8.3MB |
全平台 | 17.2MB | 17.2MB | 20.1MB |
iOS 端
以下数据基于 RongCloudRTC 5.X 版本。
CPU 架构 | 集成 RTCLib 增量 | 集成 CallLib 增量 | 集成 CallKit 增量 |
---|---|---|---|
arm64 | 4.3M | 4.4M | 8.9M |
arm64 + armv7 | 8.6M | 8.9M | 14.8M |
实时音视频服务端
实时音视频服务端 API 可以协助 您构建集成融云音视频能力的 App 后台服务系统。
您可以使用服务端 API 将融云服务集成到您的实时音视频服务体系中。例如,向融云获取用户身份令牌 (Token),从应用服务端封禁用户、移出房间等。
前往融云服务端开发文档 · 集成必读 »
控制台
使用融云控制台,您可以对开发者账户和应用进行管理,开通音视频服务,以及其他高级服务,查看应用数据报表,和计费数据。
音视频服务必须要从控制台开通后方可使用。参见开通音视频服务。
实时音视频数据
您可以前往融云控制台数据统计页面,查询、查看音视频用量、业务健康检查等数据。开通相应服务后,还能获取如业务数据分析等数据。
融云还提供通话质量实时的监控工具,以图表形式展示每一通音视频通话的质量数据,帮助定位通话问题,提高问题解决效率。
融云不会利用客户的数据。同时融云提供完善的数据隐私保护策略。参见 SDK 隐私政策。