Skip to main content

Track selection

Track Selection

Track types

Each playback can have four types of tracks - AUDIO , VIDEO, CLOSED CAPTION and SUBTITILE. These different track types are denoted using TrackVariantInf.type.

export type TrackVariantTypeValue = 'AUDIO' | 'VIDEO' | 'TEXT' | 'CLOSED CAPTION' | 'UNKNOWN';

Available Tracks

All the available tracks of each type of track can be obtained using the getAvailableTrackVariants API on the player. This API returns an Array of TrackVariantInfo objects.

const playerListener = {
async onTrackAvailabilityChanged(): Promise<void> {
console.log('track availability changed');
// get all video tracks
const availableVideoTracks = player.getAvailableTrackVariants('VIDEO')

//get all audio tracks
const availableAudioTracks = player.getAvailableTrackVariants('AUDIO')

//get all subtitle tracks
const availableTextTracks = player.getAvailableTrackVariants('TEXT')

// get all closed caption tracks
const availableClosedCaptionTracks = player.getAvailableTrackVariants('CLOSED CAPTION')
},
}

Get active Track

The currently active track in each type can be obtained from the Player using the activeTrackVariant API. This API returns the active track of any given Type as a TrackVariantInfo object and TrackVariantInfo.UNKNOWN if active variant is not known.

const playerListener = {
async onTrackVariantChanged(): Promise<void> {
console.log('track variant changed');
const selectedTextTrack = await player.getSelectedTrack('TEXT');
const selectedAudioTrack = await player.getSelectedTrack('AUDIO');
const selectedClosedCaptionTrack = await player.getSelectedTrack('CLOSED CAPTION');
const selectedVideoTrack = await player.getselectedTrack('VIDEO');
}
}

Set a track

Set player's preferred track variant given variant type.

///From list of available tracks for `AUDIO` , `VIDEO`, `CLOSED CAPTION` and `SUBTITILE` , users can choose any track and select it using the setPreferredTrackVariant API.

let subtitleTracks = await player.getAvailableTrackVariants('TEXT');
// Send the selected subtitle track to the player
let selectedTrack = subtitleTracks[selectedIndex]
await player.setPreferredTrackVariant('TEXT', selectedTrack);

let audioTrack = await player.getAvailableTrackVariants('AUDIO')
// Send the selected audio track to the player
let selectedTrack = subtitleTracks[selectedIndex]
await player.setPreferredTrackVariant('AUDIO', selectedTrack);

// NOTE: similar selection for ClosedCaption.

///To unselect a track pass undefined to the setPreferredTrackVariant API, it will unselect the track
await player.setPreferredTrackVariant('TEXT', undefined )
// for audio
await player.setPreferredTrackVariant('AUDIO', undefined )

Note: Ensure all listeners are attached to the player before initiating playback.