MediaStreamTrack: ended 事件

当媒体播放或流传输由于达到媒体结尾或没有更多可用数据而停止时,MediaStreamTrack 接口的 ended 事件将被触发。

此事件不可取消且不会冒泡。

语法

在诸如 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

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅