The MediaStream.onremovetrack property is an event handler which specifies a function to be called when the removetrack event occurs on a MediaStream instance. This happens when a track of any kind is removed from the media stream.

This event is fired when the browser removes a track from the stream (such as when a RTCPeerConnection is renegotiated or a stream being captured using HTMLMediaElement.captureStream() gets a new set of tracks because the media element being captured loaded a new source.

The removetrack event does not get fired when JavaScript code explicitly removes tracks from the stream (by calling removeTrack()).


MediaStream.onremovetrack = eventHandler;


This should be set to a function which you provide that accepts as input a MediaStreamTrackEvent object representing the removetrack event which has occurred. The MediaStreamTrack representing the track which was removed is specified in the event's track property.


This example adds a listener which, when a track is removed from the stream, logs the track that was removed.

stream.onremovetrack = function(event) {
  let trackList = document.getElementById("tracks");
  let label = document.createElement("li");

  label.textContent = `Removed: ${event.track.kind}: ${event.track.label}`;


Media Capture and Streams
# dom-mediastream-onremovetrack

Browser compatibility

BCD tables only load in the browser

See also