AudioTrack

The AudioTrack interface represents a single audio track from one of the HTML media elements, <audio> or <video>.

The most common use for accessing an AudioTrack object is to toggle its enabled property in order to mute and unmute the track.

Properties

enabled

A Boolean value which controls whether or not the audio track's sound is enabled. Setting this value to false mutes the track's audio.

id Read only

A DOMString which uniquely identifies the track within the media. This ID can be used to locate a specific track within an audio track list by calling AudioTrackList.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

A DOMString specifying the category into which the track falls. For example, the main audio track would have a kind of "main".

label Read only

A DOMString providing a human-readable label for the track. For example, an audio commentary track for a movie might have a label of "Commentary with director John Q. Public and actors John Doe and Jane Eod." This string is empty if no label is provided.

language Read only

A DOMString specifying the audio 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

The 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.

Usage notes

To get an AudioTrack for a given media element, use the element's audioTracks property, which returns an AudioTrackList object from which you can get the individual tracks contained in the media:

var el = document.querySelector("video");
var tracks = el.audioTracks;

You can then access the media's individual tracks using either array syntax or functions such as forEach().

This first example gets the first audio track on the media:

var firstTrack = tracks[0];

The next example scans through all of the media's audio tracks, enabling any that are in the user's preferred language (taken from a variable userLanguage) and disabling any others.

tracks.forEach(function(track) {
  if (track.language === userLanguage) {
    track.enabled = true;
  } else {
    track.enabled = false;
  }
});

The language is in standard (RFC 5646) format. For US English, this would be "en-US", for example.

Example

See AudioTrack.label for a simple example that shows how to get a array of track kinds and labels for a specified media element, filtered by kind.

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
AudioTrack
37
79
12-79
33
10
24
7
No
37
33
24
7
No
enabled
37
79
12-79
33
10
24
7
No
37
33
24
7
No
id
37
79
12-79
33
10
24
7
No
37
33
24
7
No
kind
37
79
12-79
33
10
24
7
No
37
33
24
7
No
label
37
79
12-79
33
10
24
7
No
37
33
24
7
No
language
37
79
12-79
33
10
24
7
No
37
33
24
7
No
sourceBuffer
51
79
12-79
No
11
38
7
No
51
No
41
13
Exposed in Mobile Safari on iPad but not on iPhone.
No

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack