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 agent ,MediaStreamTrack
不再需要轨道的来源,无论该来源是什么,包括文件,网络流,本地摄像机或麦克风。由于多个音轨可能使用同一音源(例如,如果两个选项卡使用设备的麦克风),则音源本身并不一定会立即停止。而是从轨道取消关联,并且停止跟踪对象。一旦没有媒体轨道正在使用源,则实际上可能会完全停止该源。
调用stop()
之后,readyState
属性立即设置为ended
。
示例
停止视频流
在此示例中,我们看到一个函数,该函数通过在给定<video>
的每个轨道上调用stop()
来停止流式视频。
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