Skip to main content
SRTC 是 Web SDK 的核心入口,通过 new SRTC(initParams) 创建实例。 本页中的频道级方法(发布、订阅、成员查询、leave 等)与 join 返回的 Channel 对象上的同名方法等价,作用于当前(默认)频道;同时加入多个频道时改用各 Channel 对象调用以区分操作目标,详见多频道

constructor


buildInfo

获取 SDK 编译信息。

getEnvInfo

获取当前浏览器的 WebRTC 能力检测结果,建议在初始化后尽早调用。
返回值: EnvWebInfo,详见 EnvWebInfo

onNotifyChannelEvent

频道内事件回调,建议在 join 前注册。
完整事件类型详见 事件参考

onNotifyImEvent

频道外 IM 事件回调。

join

加入频道,返回该频道的 Channel 对象。频道信息通过 channel.getInfo() 获取。
可多次调用同时加入多个频道;单频道应用可忽略返回值,继续使用 srtc 实例上的频道级方法(作用于当前频道)。Channel 对象的方法与多频道用法详见多频道
从旧版本迁移:join 原先返回 ChannelInfo,现改为返回 Channel 对象,原返回值等价于 (await srtc.join(token)).getInfo()

leave

主动离开频道。对于本地轨道,SDK 会在离会后自动停止采集、停止播放或移除播放视图。
多频道时作用于最早加入的频道,等价于该频道的 channel.leave();退某个特定频道请直接调用其 Channel 对象的 leave()

getChannelInfo

获取当前频道信息。未加入频道时返回 null

getUserInfo

获取频道内指定用户信息。

getUsersInfo

获取频道内所有用户信息,支持数组和映射两种返回格式。

getStreamMetric

获取当前流媒体全量 metric 快照,包含网络总体统计以及每条本地/远端轨道的 TrackMetric
未加入频道时调用会抛出异常。详细字段含义见 网络质量

getNetworkStats

获取当前网络总体统计,只关心网络全景(码率、丢包、RTT、可用带宽)时用,比 getStreamMetric 更轻量。
未加入频道时调用会抛出异常。

getConnectionQuality

获取当前连接质量评估结果,返回上下行等级、总体等级、MOS 和触发原因。SDK 内部以 2 秒为周期滑动窗口评估。
未加入频道时调用会抛出异常。业务层更推荐订阅 ChannelEventType.CONNECTION_QUALITY_CHANGED 事件被动感知变化。

getDevices

枚举媒体设备列表。

createLocalMicTrack

创建麦克风音频轨道。

createLocalCustomAudioTrack

使用自定义 MediaStreamTrack 创建本地音频轨道。

createLocalCameraTrack

创建摄像头视频轨道。

createLocalScreenTrack

创建屏幕共享视频轨道。
默认会同时创建系统音频轨道。真正能否采集到系统音频,还取决于浏览器能力和用户是否在系统分享弹窗中勾选“分享音频”。

createLocalCustomVideoTrack

使用自定义 MediaStreamTrack 创建本地视频轨道。

createLocalCompositeRecorder

创建本地合成录制器,用于在浏览器端把当前页面需要录制的视频宫格和音频轨道合成为本地录制文件。
返回的 LocalCompositeRecorder 只负责媒体合成与 MediaRecorder 生命周期;会议宫格、分页、主讲人布局、共享屏幕优先级等业务视角由应用层计算后,通过 videoItemsupdateVideoItems(...) 传入。
详细用法见 本地合成录制

publishLocalTrack

将本地轨道发布到频道,发布后远端用户可以订阅。
返回值: TrackInfo,本次发布在频道内的轨道描述快照;后续要拿最新值请用 channel.getPublishInfo(track)
同一个频道内,一个 desc 只能有一条轨道处于发布状态。用另一条轨道重复发布同一个 desc(例如已经发着一条 mic,又发布第二条 mic)会抛错;同一条轨道重复发布不受影响,仍是幂等的。所以开麦、开摄像头这类入口要自行串行:上一次 publishLocalTrack 还没 await 完就再发一次,两条轨道会同时推流,而你手上通常只留得下后创建的那条引用,先发的那条就再也取消不掉了。

unpublishLocalTrack

停止发布本地轨道,远端用户将收到 USER_TRACK_REMOVE 事件。

enableLocalTrack

恢复已暂停的本地轨道数据发送。
远端会收到 TRACK_UNMUTED 事件。与 publishLocalTrack 的区别详见 静音 vs 停止发布

disableLocalTrack

暂停本地轨道数据发送,但不取消发布。
远端会收到 TRACK_MUTED 事件。与 unpublishLocalTrack 的区别详见 静音 vs 停止发布

subscribeRemoteAudioMixTrack

订阅全频道混音流。

subscribeRemoteAudioTrack

订阅指定用户的单路音频流。

subscribeRemoteVideoTrack

订阅指定用户的视频流。

subscribeRemoteVideoMcuTrack

订阅远端视频合成流。
RemoteVideoMcuTrack 继承自 RemoteVideoTrack,可按普通远端视频轨道使用。

unsubscribeRemoteTrack

取消订阅远端流。

getRemoteTrack

通过用户 ID 与轨道 ID 或轨道描述获取已订阅的远端轨道实例。
iddesc 至少要传一个,否则会抛出异常。

enableIm

启用频道外 IM 消息功能。
返回值: Promise<string>,返回 IM 会话 sid

disableIm

关闭频道外 IM 消息功能。

destroy

彻底释放 SRTC 实例:依次离开所有频道、关闭 IM,并解除实例在浏览器全局对象上注册的监听(设备插拔、页面可见性)。幂等,重复调用直接返回;调用后再使用该实例的方法会抛错。
不调用 destroy() 时,全局监听会一直持有实例引用、使其无法被回收。因此在 SPA 路由切走音视频页面、组件卸载、或重建新 SRTC 实例之前必须调用;实例与页面同生命周期的应用可以不调。 日常进出频道用 leave()(或 channel.leave())即可,实例可复用继续 join