MediaStreamTrack: stop() 方法

基线 广泛可用

此功能非常成熟,可在多种设备和浏览器版本上正常使用。它自 2017 年 9 月.

报告反馈

语法

stop() 方法是 MediaStreamTrack 接口的方法,用于停止轨道。
stop()

js

参数

无。

返回值

描述

无 (undefined)。

调用 stop() 会告诉 用户代理,轨道源(无论源是什么,包括文件、网络流或本地摄像头或麦克风)不再需要 MediaStreamTrack

示例

由于多个轨道可能使用相同的源(例如,如果两个选项卡使用设备的麦克风),源本身不一定立即停止。相反,它将与轨道分离,并且轨道对象将停止。一旦没有媒体轨道使用该源,该源实际上可能会完全停止。

在调用 stop() 后,readyState 属性将设置为 ended。请注意,在这种情况下不会触发 ended 事件。

stop() 方法是 MediaStreamTrack 接口的方法,用于停止轨道。
function stopStreamedVideo(videoElem) {
  const stream = videoElem.srcObject;
  const tracks = stream.getTracks();

  tracks.forEach((track) => {
    track.stop();
  });

  videoElem.srcObject = null;
}

停止视频流

在此示例中,我们看到一个函数,它通过对给定 <video> 上的每个轨道调用 stop() 来停止流式视频。

规范

这是通过从视频元素的 srcObject 属性获取视频元素的流来实现的。然后,通过调用流的 getTracks() 方法获取流的轨道列表。从这里,剩下的就是使用 forEach() 遍历轨道列表并调用每个轨道的 stop() 方法。
最后,srcObject 设置为 null 以切断与 MediaStream 对象的链接,以便可以释放它。
# 规范

浏览器兼容性

媒体捕获和流

另请参阅