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

瀏覽器相容性

另見