Interface ILocalTrack
LocalTrack
为本地轨道的基础类,为音频轨道 LocalAudioTrack 和视频轨道 LocalVideoTrack 提供一些公共的方法。
Events
track-ended
track-ended(): void
音频或视频轨道被终止,终止的原因可能是:
- 摄像头被拔出
- 麦克风被拔出
- 用户主动停止了屏幕共享
- 用户主动关闭了底层的
MediaStreamTrack
- 媒体设备故障
- 正在使用中的媒体设备的权限被收回
返回值
transceiver-updated
transceiver-updated(transceiver: RTCRtpTransceiver, type?: StreamType): void
当前轨道的 RTCRtpTransceiver
实例更新回调。
参数
参数名 | 描述 |
---|---|
transceiver: RTCRtpTransceiver | |
type: StreamType | 当前轨道所属视频流的类型。详见 StreamType。 |
返回值
Properties
enabled
enabled: boolean
本地轨道当前的启用状态。
isPlaying
isPlaying: boolean
媒体轨道是否正在页面上播放。
-
true
: 媒体轨道正在页面上播放。 -
false
: 媒体轨道没有在页面上播放。
muted
muted: boolean
本地媒体轨道当前的静音状态。
trackMediaType
trackMediaType: "audio" | "video"
媒体轨道的类型:
-
"audio"
: 音频轨道。 -
"video"
: 视频轨道。
Methods
close
getListeners
getMediaStreamTrack
getMediaStreamTrack(): MediaStreamTrack
获取浏览器原生的 MediaStreamTrack 对象。
返回值
一个 MediaStreamTrack 对象。
getRTCRtpTransceiver
getRTCRtpTransceiver(type?: StreamType): RTCRtpTransceiver | undefined
获取当前轨道的 RTCRtpTransceiver 实例。
该方法目前主要用于视频流的端到端加密(Beta)。
如果 SDK 发生断线重连,当前轨道对应的 RTCRtpTransceiver
实例可能会发生变化。你可以通过以下回调来获取新的 RTCRtpTransceiver
实例:
参数
参数名 | 描述 |
---|---|
type: StreamType | 视频流的类型。详见 StreamType。 |
返回值
当前轨道的 RTCRtpTransceiver
实例。
getStats
getStats(): LocalVideoTrackStats | LocalAudioTrackStats
返回值
getTrackId
getTrackLabel
getTrackLabel(): string
获取本地轨道的来源描述。
返回值
可能返回以下值:
- 如果是通过
createMicrophoneAudioTrack
或createCameraVideoTrack
创建的轨道,返回 MediaDeviceInfo.label 字段。 - 如果是通过
createScreenVideoTrack
创建的轨道,返回屏幕共享的sourceId
。 - 如果是
createCustomAudioTrack
或createCustomVideoTrack
创建的轨道,返回 MediaStreamTrack.label 字段。
off
on
on(event: "track-updated", listener: typeof event_track_updated): void
参数
参数名 | 描述 |
---|---|
event: "track-updated" | 事件名称。 |
listener: typeof event_track_updated | 详见 track-updated。 |
返回值
on(event: "track-ended", listener: typeof event_track_ended): void
参数
参数名 | 描述 |
---|---|
event: "track-ended" | 事件名称。 |
listener: typeof event_track_ended | 详见 track-ended。 |
新的
RTCRtpTransceiver
实例。