MediaStreamTrack.stop()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.

**MediaStreamTrack.stop()**方法停止跟踪。

语法

track.stop()

说明

调用stop()告诉user agentMediaStreamTrack不再需要轨道的来源,无论该来源是什么,包括文件,网络流,本地摄像机或麦克风。由于多个音轨可能使用同一音源(例如,如果两个选项卡使用设备的麦克风),则音源本身并不一定会立即停止。而是从轨道取消关联,并且停止跟踪对象。一旦没有媒体轨道正在使用源,则实际上可能会完全停止该源。

调用stop()之后,readyState属性立即设置为ended

示例

停止视频流

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

js
function stopStreamedVideo(videoElem) {
  const stream = videoElem.srcObject;
  const tracks = stream.getTracks();

  tracks.forEach(function (track) {
    track.stop();
  });

  videoElem.srcObject = null;
}

这是通过从其srcObject 属性获得视频元素的流来实现的。然后,通过调用其getTracks()方法来获取流的轨道列表。从那里开始,剩下要做的就是使用forEach()遍历轨道列表并调用每个轨道的stop()方法。

最后,将srcObject设置为null以切断与MediaStream 对象的链接,以便将其释放。

Finally, srcObject is set to null to sever the link to the MediaStream object so it can be released.

规范

Specification
Media Capture and Streams
# dom-mediastreamtrack-stop

浏览器兼容性

BCD tables only load in the browser

看看别的