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 来自定义视频编码配置。