Interface ICameraVideoTrack
本地摄像头视频轨道,继承于 LocalVideoTrack,并在此基础上提供了更换采集设备/调整编码参数的功能。
可以通过 AgoraRTC.createCameraVideoTrack 来获取。
Properties
enabled
enabled: boolean
本地轨道当前的启用状态。
isPlaying
isPlaying: boolean
媒体轨道是否正在页面上播放。
-
true
: 媒体轨道正在页面上播放。 -
false
: 媒体轨道没有在页面上播放。
muted
muted: boolean
本地媒体轨道当前的静音状态。
processorDestination
processorDestination: IBaseProcessor
4.10.0
本地视频轨道上当前媒体处理链路的最终节点。
trackMediaType
trackMediaType: "audio" | "video"
媒体轨道的类型:
-
"audio"
: 音频轨道。 -
"video"
: 视频轨道。
Methods
clone
clone(config?: VideoEncoderConfiguration | VideoEncoderConfigurationPreset, cloneTrack?: boolean): ICameraVideoTrack
参数
参数名 | 描述 |
---|---|
cloneTrack: boolean | 是否克隆当前轨道。默认为 |
返回值
新生成的视频轨道。
close
getCurrentFrameData
getListeners
getMediaStreamTrack
getMediaStreamTrack(): MediaStreamTrack
获取浏览器原生的 MediaStreamTrack 对象。
返回值
一个 MediaStreamTrack 对象。
getRTCRtpTransceiver
getRTCRtpTransceiver(type?: StreamType): RTCRtpTransceiver | undefined
获取当前轨道的 RTCRtpTransceiver 实例。
该方法目前主要用于视频流的端到端加密(Beta)。
如果 SDK 发生断线重连,当前轨道对应的 RTCRtpTransceiver
实例可能会发生变化。你可以通过以下回调来获取新的 RTCRtpTransceiver
实例:
参数
参数名 | 描述 |
---|---|
type: StreamType | 视频流的类型。详见 StreamType。 |
返回值
当前轨道的 RTCRtpTransceiver
实例。
getStats
getTrackId
getTrackLabel
getTrackLabel(): string
获取本地轨道的来源描述。
返回值
可能返回以下值:
- 如果是通过
createMicrophoneAudioTrack
或createCameraVideoTrack
创建的轨道,返回 MediaDeviceInfo.label 字段。 - 如果是通过
createScreenVideoTrack
创建的轨道,返回屏幕共享的sourceId
。 - 如果是
createCustomAudioTrack
或createCustomVideoTrack
创建的轨道,返回 MediaStreamTrack.label 字段。
getVideoElementVisibleStatus
getVideoElementVisibleStatus(): CheckVideoVisibleResult | undefined
- @自从
4.8.0
获取 HTML <video>
标签的可见状态和不可见原因。
调用 localVideoTrack.play
后 SDK 会创建 HTML <video>
标签用于播放视频轨道。当 localVideoTrack.isPlaying
为 true
却看不到图像时,你可调用该方法进行问题排查。
返回值
CheckVideoVisibleResult 对象。如果该方法返回 undefined
,可能为以下原因:
localVideoTrack.isPlaying
为false
。<video>
标签不存在。<video>
标签不是通过play
方法调用产生的。
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。 |
返回值
once
pipe
play
play(element: string | HTMLElement, config?: VideoPlayerConfig): void
在页面上播放远端视频轨道。
参数
参数名 | 描述 |
---|---|
element: string | HTMLElement | 指定一个 DOM 元素,SDK 将在这个元素下创建
|
config: VideoPlayerConfig | 设置播放参数(镜像/显示模式)。详见 VideoPlayerConfig。对于本地视频轨道,镜像模式默认开启。 |
返回值
removeAllListeners
replaceTrack
replaceTrack(track: MediaStreamTrack, stopOldTrack: boolean): Promise<void>
参数
参数名 | 描述 |
---|---|
track: MediaStreamTrack | 新的视频轨道。需要传入一个 MediaStreamTrack 对象。 |
stopOldTrack: boolean | 是否停止原有的视频轨道:
|
返回值
sendSeiData
setDevice
setDevice(deviceId: string | RequiredOnlyOneOf<object>): Promise<void>
设置负责采集视频数据的摄像头设备。
在发布前和发布后均可调用此方法。
参数
参数名 | 描述 |
---|---|
设备 ID,支持通过以下方式传入:
|
返回值
setEnabled
setEncoderConfiguration
setEncoderConfiguration(config: VideoEncoderConfiguration | VideoEncoderConfigurationPreset): Promise<void>
设置视频的编码参数,包括分辨率、帧率、码率。
参数
参数名 | 描述 |
---|---|
你可以传入 SDK 预设的视频编码配置 VideoEncoderConfigurationPreset,也可以传入自定义的 VideoEncoderConfiguration 对象。 |
返回值
setMuted
setOptimizationMode
setOptimizationMode(mode: "balanced" | "motion" | "detail"): Promise<void>
参数
参数名 | 描述 |
---|---|
mode: "balanced" | "motion" | "detail" | 视频传输优化模式:
|
新生成视频轨道的编码配置。你可以通过 VideoEncoderConfiguration 传入 SDK 内置的编码配置;也可以通过传入一个 VideoEncoderConfigurationPreset 来自定义视频编码配置。