Audio Tracks
Audio Tracks are a function of HTML5 video for providing alternative audio track selections to the user, so that a track other than the main track can be played. Video.js makes audio tracks work across all browsers. There are currently five types of tracks:
- Alternative: alternative audio for the main video track
- Descriptions: descriptions of what is happening in the video track
- Main: the main audio track for this video
- Translation: a translation of the main audio track
- Commentary: commentary on the video, usually the director of the content talking about design choices
Missing Funtionality
- It is currently impossible to add AudioTracks in a non-programtic way
- Literal switching of AudioTracks for playback is not handled by video.js and must be handled by something else. video.js only stores the track representation
Adding to Video.js
Right now adding audio tracks in the HTML is unsupported. Audio Tracks must be added programatically.
You must add audio tracks programatically for the time being.
Attributes
Audio Track propertites and settings
kind
One of the five track types listed above. Kind defaults to empty string if no kind is included, or an invalid kind is used.
label
The label for the track that will be show to the user, for example in a menu that list the different languages available for audio tracks.
language
The two-letter code (valid BCP 47 language tag) for the language of the audio track, for example "en" for English. A list of language codes is available here.
enabled
If this track should be playing or not. In video.js we only allow one track to be enabled at a time. so if you enable more than one the last one to be enabled will end up being the only one.
Interacting with Audio Tracks
Doing something when a track becomes enabled
When a new track is enabled (other than the main track) an event is fired on the AudioTrackList
called change
you can listen to that event and do something with it.
Here's an example:
// get the current players AudioTrackList object
let tracks = player.audioTracks();
// listen to the change event
tracks.addEventListener('change', function() {
// print the currently enabled AudioTrack label
for (let i = 0; i < tracks.length; i++) {
let track = tracks[i];
if (track.enabled) {
console.log(track.label);
return;
}
}
});
API
player.audioTracks() -> AudioTrackList
This is the main interface into the audio tracks of the player.
It returns an AudioTrackList which is an array like object that contains all the AudioTrack
on the player.
player.audioTracks().addTrack(AudioTrack)
Add an existing AudioTrack to the players internal list of AudioTracks.
player.audioTracks().removeTrack(AudioTrack)
Remove a track from the AudioTrackList currently on the player. if no track exists this will do nothing.