Back to Content

RTCPeerConnection: removeStream() method

files/en-us/web/api/rtcpeerconnection/removestream/index.md

latest1.6 KB
Original Source

{{APIRef("WebRTC")}}{{Deprecated_Header}}{{Non-standard_Header}}

The removeStream() method of the {{domxref("RTCPeerConnection")}} interface removes a {{domxref("MediaStream")}} as a local source of audio or video. If the negotiation already happened, a new one will be needed for the remote peer to be able to use it. Because this method has been deprecated, you should instead use {{domxref("RTCPeerConnection.removeTrack", "removeTrack()")}} if your target browser versions have implemented it.

If the {{domxref("RTCPeerConnection.signalingState", "signalingState")}} is set to "closed", an InvalidStateError is raised. If the {{domxref("RTCPeerConnection.signalingState", "signalingState")}} is set to "stable", the event {{DOMxRef("RTCPeerConnection/negotiationneeded_event", "negotiationneeded")}} is sent on the {{domxref("RTCPeerConnection")}}.

Syntax

js-nolint
removeStream(mediaStream)

Parameters

  • mediaStream
    • : A {{domxref("MediaStream")}} specifying the stream to remove from the connection.

Return value

{{jsxref("undefined")}}.

Example

js
let pc;
let videoStream;
navigator.getUserMedia({ video: true }, (stream) => {
  pc = new RTCPeerConnection();
  videoStream = stream;
  pc.addStream(stream);
});
document.getElementById("closeButton").addEventListener("click", (event) => {
  pc.removeStream(videoStream);
  pc.close();
});

Browser compatibility

{{Compat}}

See also

  • WebRTC
  • {{domxref("RTCPeerConnection.removeTrack()")}}
  • {{domxref("RTCPeerConnection.addTrack()")}}
  • {{domxref("RTCPeerConnection.addStream()")}}