跳转到主要内容

继承关系

BaseTrack
├── LocalAudioTrack本地音频基类自定义音频流
│   ├── LocalMicTrack麦克风流
│   └── LocalScreenAudioTrack屏幕共享附带的系统音频流
├── LocalVideoTrack本地视频基类自定义视频流
│   ├── LocalCameraTrack摄像头流
│   └── LocalScreenTrack屏幕共享视频流
├── RemoteAudioTrack远端单路音频流
│   └── RemoteAudioMixTrack远端全频道混音流
└── RemoteVideoTrack远端视频流

BaseTrack

所有轨道的基类,提供轨道元信息访问。

id

get id(): string
轨道 ID,在频道内唯一标识该轨道。

kind

get kind(): TrackKind
轨道类型:'audio''video'

desc

get desc(): string
轨道描述,由发布时指定,例如 'camera_big''screen'

getInfo

获取完整轨道信息,例如分辨率、码率、采样率等。
getInfo(): TrackInfo
返回值: TrackInfo,详见 类型定义

getUid

获取轨道所属用户的 UID。
getUid(): string

getMediaStreamTrack

获取底层 MediaStreamTrack,可用于 Web Audio API、自定义后处理等场景。
getMediaStreamTrack(): MediaStreamTrack | undefined

LocalAudioTrack

本地音频轨道基类,也用于自定义音频流,例如 srtc.createLocalCustomAudioTrack(...) 的返回值。 继承自 BaseTrack

startPlay

播放音频,可用于本地监听。
startPlay(opt?: AudioOutputOptions): Promise<void>
参数类型必填说明
optAudioOutputOptions播放配置,可指定扬声器设备

stopPlay

停止播放,释放对播放设备的占用。
stopPlay(): void

getVolume

获取当前音频输入音量,范围 0 ~ 100
getVolume(): number

isPlaying

当前是否正在播放。
isPlaying(): boolean

LocalMicTrack

本地麦克风轨道,继承自 LocalAudioTrack,通过 srtc.createLocalMicTrack 创建。

startCapture

开始采集,会向用户请求麦克风权限。
startCapture(opt?: Partial<MicCaptureOptions>): Promise<void>
参数类型必填说明
optPartial<MicCaptureOptions>采集配置,可指定设备 ID、回声消除等

stopCapture

停止采集,释放麦克风设备。
stopCapture(): void

changeDeviceId

热切换麦克风设备。
changeDeviceId(deviceId: string): Promise<void>
参数类型必填说明
deviceIdstring目标设备 ID,可通过 getDevices('audioinput') 获取

LocalScreenAudioTrack

屏幕共享附带的系统音频轨道,继承自 LocalAudioTrack 这个类通常不直接手动创建,而是通过 LocalScreenTrack.getAudioTrack() 获取。

stopCapture

停止系统音频采集。
stopCapture(): void
其余播放相关方法继承自 LocalAudioTrack,例如 startPlay()stopPlay()isPlaying()

LocalVideoTrack

本地视频轨道基类,也用于自定义视频流,例如 srtc.createLocalCustomVideoTrack(...) 的返回值。 继承自 BaseTrack

addPlayView

将视频渲染到指定 HTML 容器元素。
addPlayView(container: HTMLElement): void

hasPlayView

判断是否已有渲染容器。
hasPlayView(): boolean

removePlayView

移除指定渲染容器。
removePlayView(container: HTMLElement): void

removeAllPlayViews

移除所有渲染容器。
removeAllPlayViews(): void

enterPictureInPicture

让指定容器对应的视频进入画中画模式。
enterPictureInPicture(container: HTMLElement, options?: PipOptions): Promise<PipHandle>
参数类型必填说明
containerHTMLElement已通过 addPlayView 绑定的视频容器
optionsPipOptions画中画配置,可指定窗口尺寸、是否优先使用 Document PiP、是否隐藏原始视图
默认优先使用 Document PiP。若浏览器不支持,会自动降级到传统 video.requestPictureInPicture()

exitPictureInPicture

退出指定容器的画中画模式。
exitPictureInPicture(container: HTMLElement): Promise<void>

isPictureInPicture

判断指定容器是否处于画中画模式。
isPictureInPicture(container: HTMLElement): boolean

popOutToWindow

将指定容器对应的视频弹出到独立浏览器窗口。
popOutToWindow(container: HTMLElement, options?: PopOutOptions): PopOutHandle
参数类型必填说明
containerHTMLElement已通过 addPlayView 绑定的视频容器
optionsPopOutOptions弹窗配置,可指定窗口尺寸、标题、是否隐藏原始视图

closePopOutWindow

关闭指定容器对应的弹出窗口。
closePopOutWindow(container: HTMLElement): void

isPopOut

判断指定容器是否已经弹出到独立窗口。
isPopOut(container: HTMLElement): boolean

getSimulcastTrack

基于给定的联播发布参数创建或获取一个联播子轨道。
getSimulcastTrack(opt: VideoPublishOptions, owidth?: number, oheight?: number): LocalVideoTrack
参数类型必填说明
optVideoPublishOptions联播子轨道的发布参数,desc 不能为空
owidthnumber原始视频宽度,用于计算编码缩放比例
oheightnumber原始视频高度,用于计算编码缩放比例
对于 LocalCameraTrackLocalScreenTrackRemoteVideoTrack,以上 PiP / 弹窗方法均可使用。 options.hideOriginViewtrue(默认值)时:
  • Document PiP弹出窗口 会隐藏主页面中的原始播放视图,避免双重渲染
  • 传统 video PiP 仍依赖原始 video 元素,因此不会隐藏原始视图

LocalCameraTrack

本地摄像头视频轨道,继承自 LocalVideoTrack,通过 srtc.createLocalCameraTrack 创建。

startCapture

开始采集,会向用户请求摄像头权限。
startCapture(opt?: Partial<CameraCaptureOptions>): Promise<void>
参数类型必填说明
optPartial<CameraCaptureOptions>采集配置,可指定设备 ID、分辨率、帧率

stopCapture

停止采集,释放摄像头设备。
stopCapture(): void

changeDeviceId

热切换摄像头设备。
changeDeviceId(deviceId: string): Promise<void>

switchFacingMode

在前置/后置摄像头之间切换,仅移动端生效。
switchFacingMode(): Promise<void>

LocalScreenTrack

本地屏幕共享视频轨道,继承自 LocalVideoTrack,通过 srtc.createLocalScreenTrack 创建。

startCapture

开始屏幕采集,浏览器会弹出屏幕选择窗口。
startCapture(opt?: Partial<ScreenCaptureOptions>): Promise<void>
参数类型必填说明
optPartial<ScreenCaptureOptions>采集配置,可指定分辨率、帧率、contentHint

stopCapture

停止屏幕采集。
stopCapture(): void

getAudioTrack

获取同时采集的系统音频轨道。仅当 createLocalScreenTrack 传入了 audioPreset 且浏览器支持时有效。
getAudioTrack(): LocalScreenAudioTrack | undefined
详细用法见 屏幕共享 - 同时采集系统音频

RemoteAudioTrack

远端单路音频轨道,通过 srtc.subscribeRemoteAudioTrack 订阅。 继承自 BaseTrack

startPlay

播放远端音频。
startPlay(opt?: AudioOutputOptions): Promise<void>
参数类型必填说明
optAudioOutputOptions可指定扬声器设备

stopPlay

停止播放,释放对播放设备的占用。
stopPlay(): void

isPlaying

当前是否正在播放。
isPlaying(): boolean

RemoteAudioMixTrack

远端全频道混音流,继承自 RemoteAudioTrack,通过 srtc.subscribeRemoteAudioMixTrack 订阅。 大多数场景下只需要订阅这一路混音流,而无需订阅每个用户的单独音频流。

getFilterUids

获取当前从混音中排除的用户 ID 列表。
getFilterUids(): string[]
播放相关方法继承自 RemoteAudioTrack,例如 startPlay()stopPlay()isPlaying()

RemoteVideoTrack

远端视频轨道,通过 srtc.subscribeRemoteVideoTrack 订阅。 继承自 BaseTrack

addPlayView

将远端视频渲染到指定 HTML 容器元素。
addPlayView(container: HTMLElement): void

hasPlayView

判断是否已有渲染容器。
hasPlayView(): boolean

removePlayView

移除指定渲染容器。
removePlayView(container: HTMLElement): void

removeAllPlayViews

移除所有渲染容器。
removeAllPlayViews(): void

enterPictureInPicture

让指定容器对应的远端视频进入画中画模式。
enterPictureInPicture(container: HTMLElement, options?: PipOptions): Promise<PipHandle>

exitPictureInPicture

退出指定容器的画中画模式。
exitPictureInPicture(container: HTMLElement): Promise<void>

isPictureInPicture

判断指定容器是否处于画中画模式。
isPictureInPicture(container: HTMLElement): boolean

popOutToWindow

将远端视频弹出到独立窗口。
popOutToWindow(container: HTMLElement, options?: PopOutOptions): PopOutHandle

closePopOutWindow

关闭指定容器对应的弹出窗口。
closePopOutWindow(container: HTMLElement): void

isPopOut

判断指定容器是否已经弹出到独立窗口。
isPopOut(container: HTMLElement): boolean