VideoTrackList: change event

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Want more browser support for this feature? Tell us why.

The change event is fired when a video track is made active or inactive, for example by changing the track's selected property.

Syntax

Use the event name in addEventListener():

js
addEventListener("change", (event) => { })

Alternatively, assign to the event handler property of the interface:

js
onchange = (event) => { }

Event type

A generic Event with no added properties.

Examples

Using addEventListener():

js
const videoElement = document.querySelector("video");
videoElement.videoTracks.addEventListener("change", (event) => {
  console.log(`'${event.type}' event fired`);
});

// changing the value of `selected` will trigger the `change` event
const toggleTrackButton = document.querySelector(".toggle-track");
toggleTrackButton.addEventListener("click", () => {
  const track = videoElement.videoTracks[0];
  track.selected = !track.selected;
});

Using the onchange event handler property (but note that this replaces other event listeners added using onchange, if any):

js
const videoElement = document.querySelector("video");
videoElement.videoTracks.onchange = (event) => {
  console.log(`'${event.type}' event fired`);
};

// changing the value of `selected` will trigger the `change` event
const toggleTrackButton = document.querySelector(".toggle-track");
toggleTrackButton.addEventListener("click", () => {
  const track = videoElement.videoTracks[0];
  track.selected = !track.selected;
});

Specifications

Specification
HTML
# event-media-change
HTML
# handler-tracklist-onchange

Browser compatibility

See also