自从
4.8.0
提示 HTML <video>
标签的可见状态和不可见原因。SDK 每 30 秒触发一次该事件。
调用 localVideoTrack.play
后 SDK 会创建 HTML <video>
标签用于播放视频轨道。当 localVideoTrack.isPlaying
为 true
却看不到图像时,你可通过此事件来进行问题排查。
<video>
标签的可见状态信息。
本地轨道当前的启用状态。
媒体轨道是否正在页面上播放。
true
: 媒体轨道正在页面上播放。false
: 媒体轨道没有在页面上播放。本地媒体轨道当前的静音状态。
自从
4.10.0
本地视频轨道上当前媒体处理链路的最终节点。
媒体轨道的类型:
"audio"
: 音频轨道。"video"
: 视频轨道。关闭本地轨道,并释放相关采集设备。
一旦本地轨道被关闭,就无法再次使用。如需再次使用本地轨道,需要重新创建。
存储了 RGBA 数据的 ImageData
对象。该对象为浏览器原生对象,详见 ImageData。
指定一个事件名,获取当前所有监听这个事件的回调函数。
事件名称。
获取浏览器原生的 MediaStreamTrack 对象。
一个 MediaStreamTrack 对象。
获取本地视频轨道的相关信息。
DEPRECATED 自 v4.1.0 起废弃,请使用 AgoraRTCClient.getLocalVideoStats 和 AgoraRTCClient.getLocalAudioStats。
获取由 SDK 生成的对于媒体轨道来说的唯一 ID。
媒体轨道 ID。
获取本地轨道的来源描述。
可能返回以下值:
createMicrophoneAudioTrack
或 createCameraVideoTrack
创建的轨道,返回 MediaDeviceInfo.label 字段。createScreenVideoTrack
创建的轨道,返回屏幕共享的 sourceId
。createCustomAudioTrack
或 createCustomVideoTrack
创建的轨道,返回 MediaStreamTrack.label 字段。获取 HTML <video>
标签的可见状态和不可见原因。
调用 localVideoTrack.play
后 SDK 会创建 HTML <video>
标签用于播放视频轨道。当 localVideoTrack.isPlaying
为 true
却看不到图像时,你可调用该方法进行问题排查。
CheckVideoVisibleResult 对象。如果该方法返回 undefined
,可能为以下原因:
localVideoTrack.isPlaying
为 false
。<video>
标签不存在。<video>
标签不是通过 play
方法调用产生的。取消一个指定事件的监听。
指定事件的名称。
监听事件时传入的回调函数。
事件含义详见 event_track_ended。
监听一个指定的事件,当事件触发时会调用传入的回调函数。
当监听后事件第一次触发时,该监听和回调函数就会被立刻移除,也就是只监听一次指定事件。
指定事件的名称。
传入的回调函数。
自从
4.10.0
将 Processor
注入本地视频轨道。
Processor
实例。每个插件均有对应类型的 Processor
。
Processor
实例。
在页面上播放本地视频轨道。
指定一个 DOM 元素,SDK 将在这个元素下创建 <video>
元素播放视频轨道,支持 2 种类型:
string
: 指定该 DOM 元素的 ID 值。HTMLElement
: 直接传入一个 DOM 元素对象。设置播放参数(镜像/显示模式)。详见 VideoPlayerConfig。对于本地视频轨道,镜像模式默认开启。
指定一个事件,取消其所有的监听。
指定事件的名称,如果没有指定事件,则取消所有事件的所有监听。
自从
4.17.0
替换本地视频轨道。
该方法在本地视频流发布前或发布后都可以调用:
新的视频轨道可以通过 ILocalVideoTrack.getMediaStreamTrack 或者 mediaStream.getVideoTracks
方法获取。你可以选择是否停止被替换的视频轨道。
注意事项:
- 支持 Chrome 65+,Safari 以及最新版 Firefox 浏览器。
- 部分移动设备上该方法可能不生效。
- 建议在相同类型、相同编码配置的视频轨道之间进行替换,原因如下:
- 如果视频轨道类型不同,例如用
ScreenVideoTrack
对象替换CameraVideoTrack
对象,由于CameraVideoTrack
默认开启镜像(详见 VideoPlayerConfig.mirror),会导致画面发生镜像翻转。- 如果编码配置(
encoderConfig
)不同,可能导致实际发送的分辨率或帧率不准。- 订阅端无法知悉视频轨道被替换。
- 如果需要切换媒体输入设备,推荐使用 ICameraVideoTrack.setDevice 方法。
示例代码
// 原有的本地视频轨道
const localVideoTrack = await AgoraRTC.createCameraVideoTrack();
// 获取新的视频轨道(方式一)
const newTrack = localVideoTrack.getMediaStreamTrack();
// 获取新的视频轨道(方式二)
const newTrack = await navigator.mediaDevices.getUserMedia({audio: true, video: true}).then(mediaStream => mediaStream.getVideoTracks()[0]);
// 替换本地视频轨道,并且停止原有的视频轨道
await localVideoTrack.replaceTrack(newTrack, true);
新的视频轨道。需要传入一个 MediaStreamTrack 对象。
是否停止原有的视频轨道:
自从
4.0.0
启用/禁用该轨道。
轨道禁用后,播放和发布都将被停止。
- 禁用轨道不会触发 LocalTrack.on("track-ended") 事件。
- 如果该轨道已发布,禁用轨道后,远端会触发 user-unpublished 事件。重新启用后,远端会触发 user-published 事件。
setEnabled
和setMuted
不能同时调用。
是否启用该轨道:
true
: 启用该轨道。false
: 禁用该轨道。设置视频的编码参数,包括分辨率、帧率、码率。
你可以传入 SDK 预设的视频编码配置 VideoEncoderConfigurationPreset,也可以传入自定义的 VideoEncoderConfiguration 对象。
发送或暂停发送该轨道的媒体数据。
自从
4.6.0
如果该轨道已发布,调用 setMuted(true)
后,远端会触发 user-unpublished 事件。再调用 setMuted(false)
后,远端会触发 user-published 事件。
- 与 setEnabled 相比,调用该方法响应速度更快且不影响视频采集状态,详见 setEnabled 和 setMuted 有什么区别?。
setEnabled
和setMuted
不能同时调用。
是否发送该轨道的媒体数据:
true
: 暂停发送该轨道的媒体数据。false
: 恢复发送该轨道的媒体数据。自从
4.2.0
设置视频传输优化模式。
你可以在视频通话、视频直播或屏幕共享过程中调用此方法动态调整视频的传输优化模式。例如你想要把屏幕共享内容从演示文稿切换为视频时,你可以将传输优化模式从 "detail"
切换为 "motion"
,确保视频画面在网络波动时不会出现卡顿。
注意事项:该方法只支持 Chrome 浏览器。
视频传输优化模式:
"balanced"
: 使用默认的传输优化模式:"detail"
: 清晰优先。"motion"
: 流畅优先。停止播放。
自从
4.10.0
取消本地视频轨道上注入的 Processor
。
LocalVideoTrack
为本地视频轨道的基础类,提供了本地视频轨道的主要功能。你可以通过 AgoraRTC.createCustomVideoTrack 或者 AgoraRTC.createScreenVideoTrack 来获取
LocalVideoTrack
。通过摄像头采集到的本地视频轨道对象 CameraVideoTrack 继承于此接口,并在本接口的基础上提供了一些摄像头独有的功能。