Interface ILocalTrack
- React
更新时间不可用
LocalTrack 为本地轨道的基础类,为音频轨道 LocalAudioTrack 和视频轨道 LocalVideoTrack 提供一些公共的方法。
Events
track-ended
track-ended(): void音频或视频轨道被终止,终止的原因可能是:
- 摄像头被拔出
- 麦克风被拔出
- 用户主动停止了屏幕共享
- 用户主动关闭了底层的
MediaStreamTrack - 媒体设备故障
- 正在使用中的媒体设备的权限被收回
| 返回类型 | 描述 |
|---|---|
void |
transceiver-updated
transceiver-updated(transceiver: RTCRtpTransceiver, type?: StreamType): void当前轨道的 RTCRtpTransceiver 实例更新回调。
| 参数名 | 描述 |
|---|---|
transceiverRTCRtpTransceiver | 新的 |
typeStreamType | 当前轨道所属视频流的类型。详见 StreamType。 |
| 返回类型 | 描述 |
|---|---|
void |
Properties
enabled
enabled: boolean本地轨道当前的启用状态。
isPlaying
isPlaying: booleanInherited from IBufferSourceAudioTrack.isPlaying
媒体轨道是否正在页面上播放。
true: 媒体轨道正在页面上播放。false: 媒体轨道没有在页面上播放。
muted
muted: boolean本地媒体轨道当前的静音状态。
trackMediaType
trackMediaType: "audio"|"video"Inherited from IBufferSourceAudioTrack.trackMediaType
媒体轨道的类型:
"audio": 音频轨道。"video": 视频轨道。
Methods
close
close(): void关闭本地轨道,并释放相关采集设备。
一旦本地轨道被关闭,就无法再次使用。如需再次使用本地轨道,需要重新创建。
| 返回类型 | 描述 |
|---|---|
void |
getListeners
getListeners(event: string): Function[]Inherited from EventEmitter.getListeners
指定一个事件名,获取当前所有监听这个事件的回调函数。
| 参数名 | 描述 |
|---|---|
eventstring | 事件名称。 |
| 返回类型 | 描述 |
|---|---|
Function[] |
getMediaStreamTrack
getMediaStreamTrack(): MediaStreamTrackInherited from IBufferSourceAudioTrack.getMediaStreamTrack
获取浏览器原生的 MediaStreamTrack 对象。
| 返回类型 | 描述 |
|---|---|
MediaStreamTrack | 一个 MediaStreamTrack 对象。 |
getRTCRtpTransceiver
getRTCRtpTransceiver(type?: StreamType): RTCRtpTransceiver | undefinedInherited from IBufferSourceAudioTrack.getRTCRtpTransceiver
获取当前轨道的 RTCRtpTransceiver 实例。
该方法目前主要用于视频流的端到端加密(Beta)。
如果 SDK 发生断线重连,当前轨道对应的
RTCRtpTransceiver实例可能会发生变化。你可以通过以下回调来获取新的RTCRtpTransceiver实例:
| 参数名 | 描述 |
|---|---|
typeStreamType | 视频流的类型。详见 StreamType。 |
| 返回类型 | 描述 |
|---|---|
RTCRtpTransceiver | undefined | 当前轨道的 |
getStats
getStats(): LocalVideoTrackStats | LocalAudioTrackStatsdeprecated
自 v4.1.0 起废弃,请使用 AgoraRTCClient.getLocalVideoStats 和 AgoraRTCClient.getLocalAudioStats。
获取本地轨道相关信息。
注意事项
获取本地视频轨道数据时,iOS 上无法获取到 encodeDelay 字段。
| 返回类型 | 描述 |
|---|---|
getTrackId
getTrackId(): stringInherited from IBufferSourceAudioTrack.getTrackId
获取由 SDK 生成的对于媒体轨道来说的唯一 ID。
| 返回类型 | 描述 |
|---|---|
string | 媒体轨道 ID。 |
getTrackLabel
getTrackLabel(): string获取本地轨道的来源描述。
| 返回类型 | 描述 |
|---|---|
string | 可能返回以下值:
|
off
off(event: string, listener: Function): voidInherited from EventEmitter.off
取消一个指定事件的监听。
| 参数名 | 描述 |
|---|---|
eventstring | 指定事件的名称。 |
listenerFunction | 监听事件时传入的回调函数。 |
| 返回类型 | 描述 |
|---|---|
void |
on
on [1/3]
on(event: "track-updated", listener: typeof event_track_updated): voidOverrides EventEmitter.on
| 参数名 | 描述 |
|---|---|
event"track-updated" | 事件名称。 |
listenertypeof event_track_updated | 详见 track-updated。 |
| 返回类型 | 描述 |
|---|---|
void |
on [2/3]
on(event: "track-ended", listener: typeof event_track_ended): voidOverrides EventEmitter.on
| 参数名 | 描述 |
|---|---|
event"track-ended" | 事件名称。 |
listenertypeof event_track_ended | 详见 track-ended。 |
| 返回类型 | 描述 |
|---|---|
void |
on [3/3]
on(event: "transceiver-updated", listener: typeof event_transceiver_updated): voidOverrides EventEmitter.on
添加事件监听器。
| 参数名 | 描述 |
|---|---|
event"transceiver-updated" | 事件名称。 |
listenertypeof event_transceiver_updated |
| 返回类型 | 描述 |
|---|---|
void |
once
once(event: string, listener: Function): voidInherited from EventEmitter.once
监听一个指定的事件,当事件触发时会调用传入的回调函数。
当监听后事件第一次触发时,该监听和回调函数就会被立刻移除,也就是只监听一次指定事件。
| 参数名 | 描述 |
|---|---|
eventstring | 指定事件的名称。 |
listenerFunction | 传入的回调函数。 |
| 返回类型 | 描述 |
|---|---|
void |
play
play(element?: string | HTMLElement): voidInherited from ILocalTrack.play
在页面上播放媒体轨道。
| 参数名 | 描述 |
|---|---|
elementstring | HTMLElement | 指定一个 DOM 元素,SDK 将在这个元素下创建
|
| 返回类型 | 描述 |
|---|---|
void |
removeAllListeners
removeAllListeners(event?: string): voidInherited from EventEmitter.removeAllListeners
指定一个事件,取消其所有的监听。
| 参数名 | 描述 |
|---|---|
eventstring | 指定事件的名称,如果没有指定事件,则取消所有事件的所有监听。 |
| 返回类型 | 描述 |
|---|---|
void |
setEnabled
setEnabled(enabled: boolean): Promise<void>自从
4.0.0
启用/禁用该轨道。
轨道禁用后,播放和发布都将被停止。
- 禁用轨道不会触发 LocalTrack.on("track-ended") 事件。
- 如果该轨道已发布,禁用轨道后,远端会触发 user-unpublished 事件。重新启用后,远端会触发 user-published 事件。
setEnabled和setMuted不能同时调用。
| 参数名 | 描述 |
|---|---|
enabledboolean | 是否启用该轨道:
|
| 返回类型 | 描述 |
|---|---|
Promise<void> |
setMuted
setMuted(muted: boolean): Promise<void>发送或暂停发送该轨道的媒体数据。
自从
4.6.0
如果该轨道已发布,调用 setMuted(true) 后,远端会触发 user-unpublished 事件。再调用 setMuted(false) 后,远端会触发 user-published 事件。
- 与 setEnabled 相比,调用该方法响应速度更快且不影响视频采集状态,详见 setEnabled 和 setMuted 有什么区别?。
setEnabled和setMuted不能同时调用。
| 参数名 | 描述 |
|---|---|
mutedboolean | 是否发送该轨道的媒体数据:
|
| 返回类型 | 描述 |
|---|---|
Promise<void> |
stop
stop(): voidInherited from IBufferSourceAudioTrack.stop
停止播放。
| 返回类型 | 描述 |
|---|---|
void |