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 |
浏览器兼容性
加载中…