MediaStreamTrack: enabled 属性

基线 广泛可用

此功能已经相当成熟,并且在许多设备和浏览器版本上都能正常运行。它自 2017 年 9 月.

报告反馈

The enabled 属性是 MediaStreamTrack 接口的一个布尔值,如果允许跟踪渲染源流,则为 true,否则为 false。这可用于有意静音跟踪。

当启用时,跟踪数据将从源输出到目标;否则,将输出空帧。

对于音频,禁用的跟踪会生成静音帧(即每个样本的值都为 0 的帧)。对于视频跟踪,每帧都完全填充黑色像素。

实质上,enabled 的值代表典型用户对跟踪静音状态的理解,而 muted 属性则指示跟踪暂时无法输出数据的状态,例如帧在传输过程中丢失的场景。

注意: 如果跟踪已断开连接,则可以更改此属性的值,但不会产生任何影响。

true 时,enabled 表示允许跟踪将其实际媒体渲染到输出。当 enabled 设置为 false 时,跟踪只会生成空帧。

空音频帧的每个样本值都设置为 0。空视频帧的每个像素都设置为黑色。

使用说明

注意: 在实现静音/取消静音功能时,应使用 enabled 属性。

示例

如果 MediaStreamTrack 代表来自摄像头的视频输入,则通过将 enabled 设置为 false 来禁用跟踪也会更新设备活动指示器,以表明摄像头当前未录制或流式传输。例如,iMac 和 MacBook 计算机中摄像头旁边的绿色“正在使用”指示灯会在此方式静音跟踪期间关闭。

此示例演示了暂停按钮的 click 事件处理程序。
pauseButton.onclick = (evt) => {
  const newState = !myAudioTrack.enabled;

  pauseButton.innerHTML = newState ? "▶️" : "⏸️";
  myAudioTrack.enabled = newState;
};

js

这将创建一个变量 newState,该变量是 enabled 当前值的相反值,然后使用它选择“播放”图标的 Emoji 字符或“暂停”图标的字符作为暂停按钮元素的新 innerHTML

规范

最后,将保存 enabled 的新值,使更改生效。
规范
# 媒体捕获和流

浏览器兼容性

dom-mediastreamtrack-enabled

另请参见