VideoTrackList: change event

Limited availability

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

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 methods like addEventListener(), or set an event handler property.

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

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:

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 Standard
# event-media-change
HTML Standard
# handler-tracklist-onchange

Browser compatibility

BCD tables only load in the browser

See also