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 |
瀏覽器相容性
載入中…