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.