MediaStreamTrack: enabled 属性

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本使用。自 2017 年 9 月以来,它已在浏览器中提供。

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

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

对于音频而言,禁用的轨道会生成静音帧(即,所有样本值均为 0 的帧)。对于视频轨道,每帧将完全填充黑色像素。

本质上,enabled 的值代表了普通用户对轨道静音状态的认知,而 muted 属性则表示轨道暂时无法输出数据的状态,例如在传输过程中丢失帧的场景。

注意: 如果轨道已被断开连接,则可以更改此属性的值,但这将不起作用。

true 时,enabled 表示轨道被允许将其实际媒体渲染到输出。当 enabled 被设置为 false 时,轨道仅生成空帧。

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

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

用法说明

如果 MediaStreamTrack 代表来自摄像头的视频输入,通过将 enabled 设置为 false 来禁用该轨道,同时也会更新设备活动指示器,以显示摄像头当前未在录制或流式传输。例如,在 iMac 和 MacBook 电脑上,摄像头旁边的绿色“正在使用”指示灯会在轨道被这样静音时关闭。

示例

此示例演示了一个用于暂停按钮的 click 事件处理程序。

js
pauseButton.onclick = (evt) => {
  const newState = !myAudioTrack.enabled;

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

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

最后,保存 enabled 的新值,使更改生效。

规范

规范
媒体捕获和流
# dom-mediastreamtrack-enabled

浏览器兼容性

另见