MediaStreamTrack: ended 事件

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本使用。自 2017 年 9 月以來,它已在瀏覽器中提供。

ended 事件是 MediaStreamTrack 介面的事件,當媒體播放或流因到達媒體末尾或沒有更多可用資料而停止時觸發。

此事件不可取消,也不會冒泡。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("ended", (event) => { })

onended = (event) => { }

事件型別

一個通用的 Event

用法說明

當媒體流軌道的源永久停止在流上傳送資料時,會觸發 ended 事件。這可能發生的各種方式包括:

  • 沒有更多資料可傳送。
  • 使用者撤銷了傳送資料所需的許可權。
  • 生成源資料的硬體已被移除或彈出。
  • 遠端對等端已永久停止傳送資料。
  • 軌道結束但未觸發 ended 事件的唯一情況是呼叫 MediaStreamTrack.stop 時。

暫停媒體不會生成 ended 事件。

示例

此示例設定了一個 ended 事件的事件處理程式,該處理程式會更改螢幕上的圖示,以指示軌道不再處於活動狀態。

js
track.addEventListener("ended", () => {
  let statusElem = document.getElementById("status-icon");
  statusElem.src = "/images/stopped-icon.png";
});

您也可以使用 onended 屬性設定事件處理程式。

js
track.onended = () => {
  let statusElem = document.getElementById("status-icon");

  statusElem.src = "/images/stopped-icon.png";
};

規範

規範
媒體捕獲和流
# dom-mediastreamtrack-onended

瀏覽器相容性

另見