概览
接入 TiRTC 时,设备端、客户端和业务服务端需要分别完成一部分工作。先用本页了解各端如何建立连接,再根据当前任务进入具体指南。
只想先运行官方 Demo、快速查看效果时,从运行示例项目开始。准备把 TiRTC 接入自己的产品时,按下面的步骤完成 SDK 接入和连接。
先完成 SDK 接入和连接
音视频、对讲和消息都需要使用一条已经建立的 TiRTC 连接。开始实现这些功能前,先完成三步:
- 接入并初始化 SDK。 设备端和客户端分别按照目标平台完成工程配置,并确认 SDK 可以正常初始化或启动。
- 准备连接条件。 设备端启动并进入可连接状态。业务服务端完成登录鉴权和设备归属判断,再为客户端签发连接
token。这两项可以同时准备;客户端发起连接前,两项都要完成。 - 建立连接。 客户端用目标设备的
device_id作为remote_id发起连接。客户端按照当前平台的连接建立标志确认结果,设备端以收到on_conn_accepted(hconn)为准。两端都确认成功后,这条连接才可以用于音视频、对讲和消息。
连接建立后,根据产品需要播放音视频、实现语音对讲、收发命令消息或流消息。这些功能互不依赖,可以单独实现,也可以组合使用。不同客户端 SDK 支持的功能有所不同,进入具体指南前先确认适用平台。
接下来做什么
第一次接入 TiRTC
如果设备端或客户端还没有接入 SDK,从这里开始:
- 设备端按照 C SDK 接入完成工程配置和启动准备。
- 客户端根据使用的平台,完成 Web、Flutter、React Native、Android、iOS 或 HarmonyOS SDK 接入。
- 两端都准备好后,按照连接设备完成设备启动、
token签发和连接确认。
已经建立连接
连接成功后,直接进入需要实现的功能:
- 播放设备端发送的音视频:播放音视频。
- 把客户端麦克风采集的声音发送给设备端:语音对讲。
- 在两端之间收发带命令字的控制数据:收发命令消息。
- 沿指定的流编号
stream_id收发自定义数据:收发流消息,适用于 Flutter、React Native、Android、HarmonyOS、iOS 和 C SDK。
需要自行部署 RTC 服务
只有自行部署和运维 RTC 服务时,才需要接入自定义 RTC 服务。客户端直接连接设备端时,可以跳过这部分。
需要模拟设备进行联调
没有真实设备,或者希望先在可控环境中验证连接和各项功能时,使用 CLI 进行接入联调。
接入结果不符合预期
按照排查接入问题逐步检查,先找出最早没有完成的步骤。
各端需要完成什么
- 设备端: 配置设备身份并启动 TiRTC C SDK。设备应用负责采集和编码媒体,再把完整媒体帧交给 SDK 传输;同时按照产品需要收发音视频和消息。
- 客户端: 接入 Web、Flutter、React Native、Android、iOS 或 HarmonyOS SDK,取得连接
token并连接目标设备。连接成功后,使用 SDK 提供的音视频输出、本地音频输入和消息 API 实现播放、对讲或消息功能。界面和本地数据处理由应用实现。 - 业务服务端: 校验客户端身份和设备归属,使用应用级凭证为获准访问的目标设备签发短期连接
token。应用级密钥不放在客户端或设备端。 - TiRTC: 建立并维护两端连接,在连接上承载实时音视频、命令和流消息传输。
确认 SDK、连接和功能状态
SDK 启动、连接建立和功能可用是三个不同的结果,需要分别确认:
- SDK 已经启动。 C SDK 以收到
TIRTC_EVENT_SYS_STARTED为准;TiRtcStart()返回0只表示启动请求已提交。客户端按照对应平台初始化接口的结果判断。 - 连接已经建立。 客户端按照当前平台的连接建立标志判断,设备端以收到
on_conn_accepted(hconn)为准。 - 功能已经可用。 按照对应指南中的返回值、状态、回调和可观察结果判断。连接成功不代表订阅、送流、播放或其他功能已经完成。
如果某一步没有达到上述结果,先处理这一步。不要在 SDK 尚未启动或连接尚未建立时,直接排查后面的订阅、编解码或渲染。