Skip to content

运行示例项目

本文带你跑通“设备端推流 + 客户端连接播放”的端到端体验链路。

你会依次完成:

  • 启动设备端示例,让设备端接入 TiRTC
  • 用 DevTools CLI 启动一个 token 签发 HTTP 服务
  • 在客户端填写配置,连接设备,播放设备端发送的音视频

运行示例项目演示截图

点击查看完整演示视频

前置准备

准备项用在哪里需要准备
应用级凭证启动 token 签发服务AccessKeyIdSecretKeyIdAppId
设备身份启动设备端示例、签发连接 tokendevice_iddevice_secret_key
基础工具拉取示例、安装 DevTools CLIGit、Node.js / npm
设备端运行环境启动 C 设备端示例一台 macOS arm64 电脑,并已安装 Xcode Command Line Tools / make;或一台 Linux x86_64 电脑,并满足 glibc 2.35 或更高版本、已安装 GCC / Make 工具链
客户端运行环境启动客户端示例直接安装预编译 APK 时,Android 手机能安装应用即可;从 Flutter 源码运行 Android 客户端时,需要 Flutter、Android SDK、ADB,并能通过 flutter devices 识别手机;从 HarmonyOS 源码运行时,需要 DevEco Studio / OpenHarmony SDK 和可调试的 HarmonyOS 设备

1. 启动设备端示例

设备端示例支持在 macOS arm64 和 Linux x86_64 上直接运行。

先拉取示例源码:

bash
mkdir -p tirtc-demo
cd tirtc-demo
git clone https://github.com/tangeai/tirtc-example-device.git
cd tirtc-example-device

准备设备身份。后面启动 token 签发服务时也要使用同一组设备信息:

bash
export TIRTC_DEVICE_ID="your_device_id"
export TIRTC_DEVICE_SECRET_KEY="your_device_secret_key"

编译并启动设备端示例:

bash
./script/build.sh
./script/run_demo.sh \
  --device-id "$TIRTC_DEVICE_ID" \
  --device-secret-key "$TIRTC_DEVICE_SECRET_KEY"

./script/build.sh 会按当前宿主平台选择 macos-arm64linux-x86_64,不做交叉编译。如果当前机器不是这两个平台,脚本会提示 unsupported host

看到下面日志后,保持这个终端打开,等待客户端连接:

text
[demo] TiRTC started, waiting for client connections

客户端连接成功后,示例会循环发送仓库内预置的音视频文件。音频使用 stream_id = 10,视频使用 stream_id = 11

2. 启动 token 签发 HTTP 服务

安装 DevTools CLI:

bash
npm install -g tirtc-devtools-cli@latest
tirtc-devtools-cli --help

打开一个新的终端,填入和第 1 步设备端相同的设备信息:

bash
export TIRTC_ACCESS_KEY_ID="your_access_key_id"
export TIRTC_SECRET_KEY_ID="your_secret_key_id"
export TIRTC_APP_ID="your_app_id"
export TIRTC_DEVICE_ID="your_device_id"
export TIRTC_DEVICE_SECRET_KEY="your_device_secret_key"

启动 HTTP 服务:

bash
tirtc-devtools-cli token serve

token serve 默认监听 8966 端口。如果已经被占用,可以指定另一个端口:

bash
tirtc-devtools-cli token serve \
  --port 8967

手机和电脑在同一 Wi-Fi / 局域网下时,后面客户端要填写的 Token 签发服务地址通常是 http://your_computer_lan_ip:8966。如果你指定了其他端口,服务地址也要使用同一个端口。

启动成功后,CLI 会输出:

  • 开发用 token 服务监听地址
  • Token 签发服务地址,例如 http://192.168.1.10:8966
  • HTTP 请求 body 和 cURL 示例

保持这个终端打开。示例客户端进入播放页前,会向这个服务请求一次连接 token。本页连接第 1 步启动的设备端示例时,请求 token 和客户端填写的 remote_id 都使用同一个 TIRTC_DEVICE_ID

3. 启动客户端并播放

选择一种方式启动客户端。最快路径是安装 Android 预编译 APK;

方式 A:安装预编译 APK

在 Android 手机上安装并打开:

方式 B:从源码运行

Flutter Android 客户端:

bash
cd tirtc-demo
git clone https://github.com/tangeai/tirtc-example-flutter.git
cd tirtc-example-flutter

flutter pub get
flutter devices
flutter run -d your_android_device_id

不论哪种方式,待客户端运行起来之后:

  1. AppId 填第 2 步的 TIRTC_APP_ID
  2. remote_id 填第 1 步设备端使用的 device_id
  3. “Token 签发服务地址”填第 2 步服务地址,例如 http://your_computer_lan_ip:8966
  4. audio_stream_idvideo_stream_id 留空,保持默认值 10 / 11
  5. 点击「进入播放页」。

看到视频画面即表示 Demo 跑通。设备端终端会出现类似日志:

text
[demo] client connection accepted
[demo] first video frame sent
[demo] first audio packet sent

常见问题

连接失败

优先检查:

  • 手机和运行 token serve 的电脑是否在同一个网络里。
  • “Token 签发服务地址”是否使用了手机能访问的局域网地址,而不是 127.0.0.1
  • token serve 终端是否仍在运行。
  • TIRTC_DEVICE_ID 是否等于第 1 步启动设备端时使用的 device_id

客户端连接后没有声音或画面

优先检查:

  • 客户端音频是否使用 stream_id = 10,视频是否使用 stream_id = 11
  • 设备端示例终端是否仍在运行。
  • 客户端页面是否已经显示视频视图,并且没有被遮挡或隐藏。

仍然失败时,保留设备端终端输出、token serve 终端输出和客户端日志。对外发送前,先删除或打码连接 token、SecretKeyIddevice_secret_key 等敏感信息。

TiRTC 开发文档