MediaStreamTrack: stop() 方法
MediaStreamTrack 接口的 stop() 方法用于停止该轨道。
语法
js
stop()
参数
无。
返回值
无(undefined)。
描述
调用 stop() 方法会告知 用户代理,MediaStreamTrack 不再需要该轨道的源——无论源是什么,包括文件、网络流或本地摄像头或麦克风。由于多个轨道可能使用同一源(例如,当两个标签页都在使用设备的麦克风时),因此源本身不一定会立即停止。它会被与该轨道分离,并且该轨道对象会被停止。一旦没有媒体轨道在使用该源,该源可能会被完全停止。
调用 stop() 后,readyState 属性会被立即设置为 ended。请注意,在这种情况下,不会触发 ended 事件。
示例
停止视频流
在此示例中,我们展示了一个函数,该函数通过调用给定 <video> 元素上每个轨道的 stop() 方法来停止流式视频。
js
function stopStreamedVideo(videoElem) {
const stream = videoElem.srcObject;
const tracks = stream.getTracks();
tracks.forEach((track) => {
track.stop();
});
videoElem.srcObject = null;
}
这可以通过获取视频元素的 srcObject 属性的流来实现。然后,通过调用其 getTracks() 方法来获取流的轨道列表。之后,只需使用 forEach() 遍历轨道列表并调用每个轨道的 stop() 方法即可。
最后,将 srcObject 设置为 null,以切断与 MediaStream 对象的连接,以便可以释放该对象。
规范
| 规范 |
|---|
| 媒体捕获和流 # dom-mediastreamtrack-stop |
浏览器兼容性
加载中…