The VideoTrack
interface represents a single video track from a <video>
element. The most common use for accessing a VideoTrack
object is to toggle its selected
property in order to make it the active video track for its <video>
element.
selected
true
for one track while another track is active will make that other track inactive.id
Read only
DOMString
which uniquely identifies the track within the media. This ID can be used to locate a specific track within a video track list by calling VideoTrackList.getTrackById()
. The ID can also be used as the fragment part of the URL if the media supports seeking by media fragment per the Media Fragments URI specification.kind
Read only
DOMString
specifying the category into which the track falls. For example, the main video track would have a kind
of "main"
.label
Read only
DOMString
providing a human-readable label for the track. For example, a track whose kind
is "sign"
might have a label
of "A sign-language interpretation"
. This string is empty if no label is provided.language
Read only
DOMString
specifying the video track's primary language, or an empty string if unknown. The language is specified as a BCP 47 (RFC 5646) language code, such as "en-US"
or "pt-BR"
.sourceBuffer
Read only
SourceBuffer
that created the track. Returns null if the track was not created by a SourceBuffer
or the SourceBuffer
has been removed from the MediaSource.sourceBuffers
attribute of its parent media source.To get a VideoTrack
for a given media element, use the element's videoTracks
property, which returns a VideoTrackList
object from which you can get the individual tracks contained in the media:
var el = document.querySelector("video"); var tracks = el.videoTracks;
You can then access the media's individual tracks using either array syntax or functions such as forEach()
.
This first example gets the first video track on the media:
var firstTrack = tracks[0];
The next example scans through all of the media's video tracks, activating the first video track that is in the user's preferred language (taken from a variable userLanguage
).
for (var i = 0; i < tracks.length; i++) { if (tracks[i].language === userLanguage) { track.selected = true; break; } });
The language
is in standard (RFC 5646) format. For US English, this would be "en-US"
, for example.
Specification | Status | Comment |
---|---|---|
HTML Living Standard The definition of 'VideoTrack' in that specification. | Living Standard |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | ? | ? | ? | ? | ? | ? |
id |
? | ? | ? | ? | ? | ? |
kind |
? | ? | ? | ? | ? | ? |
label |
? | ? | ? | ? | ? | ? |
language |
? | ? | ? | ? | ? | ? |
selected |
? | ? | ? | ? | ? | ? |
sourceBuffer |
? | ? | ? | ? | ? | ? |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | ? | ? | ? | ? | ? | ? | ? |
id |
? | ? | ? | ? | ? | ? | ? |
kind |
? | ? | ? | ? | ? | ? | ? |
label |
? | ? | ? | ? | ? | ? | ? |
language |
? | ? | ? | ? | ? | ? | ? |
selected |
? | ? | ? | ? | ? | ? | ? |
sourceBuffer |
? | ? | ? | ? | ? | ? | ? |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack