跳转到主要内容
SRTC 是 Web SDK 的核心入口,通过 new SRTC(initParams) 创建实例。

constructor

constructor(initParams: SdkInitParams)
参数类型必填说明
initParamsSdkInitParams初始化参数,详见 SdkInitParams

buildInfo

获取 SDK 编译信息。
buildInfo(): BuildInfo

getEnvInfo

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

onNotifyChannelEvent

频道内事件回调,建议在 join 前注册。
onNotifyChannelEvent?: ((event: ChannelEvent) => void) | null
完整事件类型详见 事件参考

onNotifyImEvent

频道外 IM 事件回调。
onNotifyImEvent?: ((event: ImEvent) => void) | null

join

加入频道。
join(token: string, options?: JoinOptions): Promise<ChannelInfo>
参数类型必填说明
tokenstring服务端签发的加入频道 Token
optionsJoinOptions加入选项,详见 JoinOptions

leave

主动离开频道。对于本地轨道,SDK 会在离会后自动停止采集、停止播放或移除播放视图。
leave(): Promise<void>

getChannelInfo

获取当前频道信息。未加入频道时返回 null
getChannelInfo(): ChannelInfo | null

getUserInfo

获取频道内指定用户信息。
getUserInfo(uid: string): UserInfo
参数类型必填说明
uidstring用户 ID

getUsersInfo

获取频道内所有用户信息,支持数组和映射两种返回格式。
getUsersInfo(map: true): Record<string, UserInfo>
getUsersInfo(map: false): UserInfo[]

getStreamMetric

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

getNetworkStats

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

getConnectionQuality

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

getDevices

枚举媒体设备列表。
getDevices(kind?: MediaDeviceKind, requestPermissions?: boolean): Promise<MediaDeviceInfo[]>
参数类型必填说明
kind'audioinput' | 'audiooutput' | 'videoinput'不传则返回所有类型设备
requestPermissionsboolean是否主动请求媒体权限,默认 true

createLocalMicTrack

创建麦克风音频轨道。
createLocalMicTrack(preset?: MicPreset): LocalMicTrack
参数类型必填说明
presetMicPreset麦克风预设,默认 MicPresets.music

createLocalCustomAudioTrack

使用自定义 MediaStreamTrack 创建本地音频轨道。
createLocalCustomAudioTrack(msTrack: MediaStreamTrack): LocalAudioTrack
参数类型必填说明
msTrackMediaStreamTrack音频类型的 MediaStreamTrack

createLocalCameraTrack

创建摄像头视频轨道。
createLocalCameraTrack(preset?: CameraPreset): LocalCameraTrack
参数类型必填说明
presetCameraPreset摄像头预设,默认 CameraPresets['720p']

createLocalScreenTrack

创建屏幕共享视频轨道。
createLocalScreenTrack(preset?: ScreenPreset, audioPreset?: ScreenAudioPreset): LocalScreenTrack
参数类型必填说明
presetScreenPreset视频预设,默认 ScreenPresets['1080p']
audioPresetScreenAudioPreset系统音频预设,默认 ScreenAudioPresets.default
默认会同时创建系统音频轨道。真正能否采集到系统音频,还取决于浏览器能力和用户是否在系统分享弹窗中勾选“分享音频”。

createLocalCustomVideoTrack

使用自定义 MediaStreamTrack 创建本地视频轨道。
createLocalCustomVideoTrack(msTrack: MediaStreamTrack): LocalVideoTrack
参数类型必填说明
msTrackMediaStreamTrack视频类型的 MediaStreamTrack

publishLocalTrack

将本地轨道发布到频道,发布后远端用户可以订阅。
publishLocalTrack(
  track: LocalAudioTrack | LocalVideoTrack,
  opt?: Partial<AudioPublishOptions> | Partial<VideoPublishOptions>
): Promise<void>
参数类型必填说明
trackLocalAudioTrack | LocalVideoTrack要发布的本地轨道
optPartial<AudioPublishOptions> | Partial<VideoPublishOptions>发布参数,会与创建轨道时的预设参数合并

unpublishLocalTrack

停止发布本地轨道,远端用户将收到 USER_TRACK_REMOVE 事件。
unpublishLocalTrack(track: LocalAudioTrack | LocalVideoTrack): Promise<void>

enableLocalTrack

恢复已暂停的本地轨道数据发送。
enableLocalTrack(track: LocalAudioTrack | LocalVideoTrack): Promise<void>
远端会收到 TRACK_UNMUTED 事件。与 publishLocalTrack 的区别详见 静音 vs 停止发布

disableLocalTrack

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

subscribeRemoteAudioMixTrack

订阅全频道混音流。
subscribeRemoteAudioMixTrack(
  filter?: string[] | ((track: BaseTrack) => boolean)
): Promise<RemoteAudioMixTrack>
参数类型必填说明
filterstring[] | ((track: BaseTrack) => boolean)string[] 时按 UID 排除;传函数时按轨道判断是否过滤

subscribeRemoteAudioTrack

订阅指定用户的单路音频流。
subscribeRemoteAudioTrack(uid: string, id: string): Promise<RemoteAudioTrack>
参数类型必填说明
uidstring用户 ID
idstring轨道 ID,可从 TrackInfo.id 获取

subscribeRemoteVideoTrack

订阅指定用户的视频流。
subscribeRemoteVideoTrack(uid: string, id: string): Promise<RemoteVideoTrack>
参数类型必填说明
uidstring用户 ID
idstring轨道 ID,可从 TrackInfo.id 获取

subscribeRemoteVideoMcuTrack

订阅远端视频合成流。
subscribeRemoteVideoMcuTrack(): Promise<RemoteVideoMcuTrack>
RemoteVideoMcuTrack 继承自 RemoteVideoTrack,可按普通远端视频轨道使用。

unsubscribeRemoteTrack

取消订阅远端流。
unsubscribeRemoteTrack(
  track: RemoteAudioMixTrack | RemoteAudioTrack | RemoteVideoTrack
): Promise<void>

getRemoteTrack

通过用户 ID 与轨道 ID 或轨道描述获取已订阅的远端轨道实例。
getRemoteTrack(uid: string, id?: string, desc?: string): RemoteAudioTrack | RemoteVideoTrack
参数类型必填说明
uidstring用户 ID
idstring轨道 ID,与 desc 二选一
descstring轨道描述,与 id 二选一
iddesc 至少要传一个,否则会抛出异常。

enableIm

启用频道外 IM 消息功能。
enableIm(token: string): Promise<string>
参数类型必填说明
tokenstringIM 启用 Token
返回值: Promise<string>,返回 IM 会话 sid

disableIm

关闭频道外 IM 消息功能。
disableIm(): Promise<void>