声网为开发者提供实时互动 API,只需集成声网 SDK,即可快速在应用内构建多种实时互动场景。
开发者集成声网 SDK 后,即可以调用不同 API,实现不同场景的实时互动。
声网 SDK | 实现功能 | 描述 |
---|---|---|
音频 SDK | 语音通话 音频互动直播 |
SDK 包体积较小,只针对纯音频场景。 |
视频 SDK | 视频通话 视频互动直播 |
同时包含语音和视频功能。 |
RTM SDK | 云信令(原实时消息) | 提供稳定可靠、低延时、高并发的全球消息云服务,快速构建实时场景。 |
录制插件 | 本地服务端录制 云端录制 |
可以将语音聊天、视频聊天或直播的内容储存下来,提供给更多人在方便的时间观看。 |
SD-RTN™(Software Defined Real-time Network)软件定义实时网,这是声网自建的底层实时传输网络,实际上,所有通过声网 SDK 接入的实时音视频数据都是通过 SD-RTN™ 传输和调度。这也是全球唯一一个专门针对实时传输设计的基础设施。声网通过智能动态路由算法,确保全球范围内的毫秒级超低延迟传输,端到端优质传输率大于 99%。
特性 | 描述 |
---|---|
全球网络覆盖 | |
接入能力 | |
QoS 能力增强 | |
基于 QoS 的动态路由 | |
技术服务 SLA 保障 | |
全球网络可靠性 | |
全平台互通 | |
底层协议 | 基于 UDP 协议优化多个私有协议 |
抗丢包优化 | 独创弱网优化抗丢包机制算法,音频 80% 丢包可用 |
声网是全球业内唯一使用自研音视频编解码的 RTC 技术服务商。因此,在音视频质量上,有一些独特的优势和特点。
##声网关键概念
使用声网 SDK 之前需要了解的重要概念。
控制台是声网提供给开发者管理声网各项服务的工具。
控制台提供直观的界面,方便开发者在使用声网各项服务时进行充值、查询、管理等操作。注册账号之后,开发者可以通过控制台实现以下主要功能:
此外,声网还提供控制台相关 RESTful API,开发者可以实现从服务端踢人、查询用量、查询在线信息等功能。
App ID 是控制台生成的随机字符串,是声网用于识别开发项目(应用)的唯一标识符。
声网以 App ID 识别开发项目,并根据 App ID 提供计费、数据统计等服务。在控制台注册后,你可以创建多个项目,每个项目都有一个唯一的 App ID。详见获取 App ID。
App 证书也称为 App Certificate,是一串声网提供的随机字符串,用于开启声网 RTC 和 RTM SDK 的 Token 鉴权,并作为生成 Token 的参数之一。
Token 也称为动态密钥,供声网后台对 app 用户进行权限检查,更多信息请查看校验用户权限。
频道是由开发者调用声网提供的 API 创建的用于传输实时数据的通道。
根据实时传输数据的类型,声网的频道又分为 RTC 频道和 RTM 频道。其中,RTC 频道传输音视频数据,RTM 频道传输消息及信令数据。RTC 频道与 RTM 频道互相独立。
声网组件(本地录制、云端录制等)也可以加入 RTC 频道,实现录制、传输加速、媒体播放、内容安全等功能。
声网使用频道名来标识频道。使用相同频道名的用户,可以进入同一个频道进行互动。最后一个用户离开频道时,频道自动消失。
声网 SDK 将根据频道场景应用不同的优化方法。
目前我们有两种频道场景:
频道场景 | 描述 |
---|---|
通信 | 用于一对一通话或群组通话,频道中的所有用户都可以自由通话。 |
直播 | 在直播频道中,用户有两种角色:主播和观众。主播能够发送和接收音视频,观众不能发送,只能接收音视频。 |
在加入频道时需要传入用户 ID(UID)用于标识频道中的用户。同一频道中的每个用户都应具有唯一的用户 ID。
通常我们提到流或者 Stream 的时候指的是一个包含音视频数据的对象。加入频道的用户可以发布本地的音视频流,订阅其他用户的音视频流。
发布是指频道中的用户将音视频数据发送到频道的操作。通常发布的对象是由用户的麦克风和摄像头采集的音视频数据创建的流,开发者也可以发布由其他来源(如在线音乐文件和用户的屏幕画面)创建的音视频流等。
发布成功后,SDK 会持续向频道中的其他用户发送音视频数据,频道中的其他用户可以订阅发布的音视频流。通过发布自己的音视频流,订阅其他用户的音视频流,用户之间就可以进行实时音视频通信了。
订阅是指频道中的用户接收频道内已发布的音视频流的操作。如果频道中其他用户发布了音视频流,用户就可以通过订阅流来接收音视频数据。一个用户可以同时订阅多个用户的音视频流。订阅成功的流可以直接播放或进行其他处理,例如录制或截图等。