Skip to content

Web API 参考

本页介绍 TiRTC Web SDK 的 API,帮助你在网页中接入并播放设备的实时音视频。

如果你还没有完成前置接入,先看 集成到客户端播放音视频。页面里提到的 AppIdremote_idtokenstream_id 等术语,以 名词解释 为准。当前 Web 示例里,connect({ deviceId }) 里的 deviceId 在常见设备连接场景下,就对应目标设备的 remote_id / device_id

对象总览

对象作用结束方式
TiRtcInitOptions组织 SDK 初始化参数无需显式清理
TiRtc初始化 SDK,等待视频播放依赖准备完成无显式关闭 API
TiRtcConn连接设备、断开连接、手动订阅媒体流disconnect()
TiRtcAudioOutput播放一条远端音频流detach()
TiRtcVideoOutput播放一条远端视频流detach()

TiRtcInitOptions

TiRtc.initialize(...) 的参数对象。

字段说明
appId你的 AppId。建议传非空字符串。

示例:

js
const options = TiRtcInitOptions({
  appId: 'your-app-id',
});

TiRtc

TiRtc 管理 Web SDK 的初始化和视频播放前置准备。典型调用顺序是:initialize() -> videoOutputReady() -> 创建连接和播放对象 -> 业务结束后断开连接并 detach()

API说明
initialize(options): void初始化 SDK 运行环境。调用后才能继续使用连接对象和播放对象。
videoOutputReady(): Promise<void>等待视频解码和渲染依赖准备完成。建议在创建视频播放链路前先 await 它。

示例:

js
TiRtc.initialize(TiRtcInitOptions({ appId: 'your-app-id' }));
await TiRtc.videoOutputReady();

TiRtcConn

本节所有 streamId 参数按 stream_id 的公开约定使用 0..15。当前公开示例默认使用音频 10、视频 11

方法

API说明
TiRtcConn()创建一个连接对象。它本身不会自动发起建连。
connect({ deviceId, token }): Promise<void>发起到目标设备的连接。deviceId 是目标设备 ID;常见场景下,它就是 remote_id。连接成功时 Promise resolve,失败时 Promise reject。
disconnect(): void断开当前连接,但不会自动 detach() 已创建的音频或视频输出对象。
subscribeAudio({ streamId }): void请求远端开始发送指定 streamId 的音频流。它不会自动创建本地播放。
unsubscribeAudio({ streamId }): void取消指定 streamId 的音频订阅。它不等于 TiRtcAudioOutput.detach()
subscribeVideo({ streamId }): void请求远端开始发送指定 streamId 的视频流。它不会自动创建本地播放。
unsubscribeVideo({ streamId }): void取消指定 streamId 的视频订阅。它不等于 TiRtcVideoOutput.detach()

TiRtcAudioOutput

TiRtcAudioOutput({ connection, streamId }) 创建一个音频输出对象。

参数说明
connection要绑定的 TiRtcConn
streamId目标音频流编号,取值范围同上
API说明
attach(): void开始接收并播放当前绑定的远端音频流。它只决定本地播放哪一路音频;如果远端按订阅后才发流,还要配合 connection.subscribeAudio()
detach(): void解除当前音频播放绑定。对象本身仍可继续复用。

示例:

js
const audioOutput = TiRtcAudioOutput({
  connection,
  streamId: 10,
});

TiRtcVideoOutput

TiRtcVideoOutput({ connection, streamId }) 创建一个视频输出对象。

参数说明
connection要绑定的 TiRtcConn
streamId目标视频流编号,取值范围同上
API说明
attach(): void开始接收并渲染当前绑定的远端视频流。它只决定本地播放哪一路视频;如果远端按订阅后才发流,还要配合 connection.subscribeVideo()
detach(): void解除当前视频播放绑定。对象本身仍可继续复用。

当前版本没有单独的 view() 或容器绑定 API。页面里需要先准备一个固定的 canvas 节点:

html
<canvas id="canvas"></canvas>

示例:

js
const videoOutput = TiRtcVideoOutput({
  connection,
  streamId: 11,
});

常见误用

  • 没有先调用 TiRtc.initialize(...),就直接创建 TiRtcConn 或播放对象。
  • 没有先等待 TiRtc.videoOutputReady(),导致视频依赖还没准备好。
  • 页面里没有准备固定 id="canvas"canvas 节点。
  • 还没连上设备就执行 attach()subscribe*()
  • 只做了 attach(),没有按约定配合 subscribeAudio() / subscribeVideo(),结果一直无声或黑屏。
  • attach() 当成向远端发起订阅;实际上它只负责本地播放绑定。
  • 音频和视频使用了和设备侧约定不一致的 streamId
  • 业务结束后只调用 disconnect(),没有对音频和视频输出分别执行 detach()

相关文档

TiRTC 开发文档