RTCPeerConnection: removeTrack() 方法
RTCPeerConnection 介面的 removeTrack() 方法指示連線的本地端停止從指定軌道傳送媒體,但不會從 RTCPeerConnection.getSenders() 返回的傳送者列表中實際移除相應的 RTCRtpSender。如果該軌道已停止,或者不在連線的傳送者列表中,則此方法無效。
如果連線已經協商完成(signalingState 設定為 "stable"),它將被標記為需要重新協商;遠端對等方在完成此協商之前不會體驗到此更改。一個 negotiationneeded 事件將被髮送到 RTCPeerConnection,以告知本地端必須進行此協商。
語法
js
removeTrack(sender)
引數
sender-
一個
RTCRtpSender,指定要從連線中移除的傳送者。
返回值
undefined.
異常
InvalidStateErrorDOMException-
如果連線未開啟,則丟擲此異常。
示例
此示例將一個影片軌道新增到連線,併為主傳送者設定一個監聽器,當用戶點選關閉按鈕時移除該軌道。
js
let pc;
let sender;
navigator.getUserMedia({ video: true }, (stream) => {
pc = new RTCPeerConnection();
const [track] = stream.getVideoTracks();
sender = pc.addTrack(track, stream);
});
document.getElementById("closeButton").addEventListener("click", (event) => {
pc.removeTrack(sender);
pc.close();
});
規範
| 規範 |
|---|
| WebRTC:瀏覽器中的即時通訊 # dom-rtcpeerconnection-removetrack |
瀏覽器相容性
載入中…