Skip to main content
Version: 10.14.0

How to programmatically detect video track qualities

This article describes how you can use the API to detect video track qualities.

The VideoTrack API, which is a sub-API of the MediaTrack API, can be used to implement this functionality. Implementing this functionality is a common use-case for developers who want to build their own UI to visualize the available video track qualities.

SDKs​

Web SDKAndroid SDKiOS SDKtvOS SDKAndroid TV SDKChromecast SDK
YesYesYesYesYesYes

Code examples​

The code examples below how to implement the detection of video track qualities across SDK.

Web SDK​

The Web SDK leverages the MediaTrack API.

function handleAddTrackEvent(addTrackEvent) {
var videoTrackQualities = addTrackEvent.track.qualities;
}
player.videoTracks.addEventListener('addtrack', handleAddTrackEvent);
Android (TV) SDK​

The Android SDK leverages the MediaTrack API.

EventListener<AddTrackEvent> handleAddTrackEvent = new EventListener<AddTrackEvent>() {
@Override
public void handleEvent(AddTrackEvent addTrackEvent) {
QualityList videoTrackQualities = addTrackEvent.getTrack().getQualities();
}
};
tpv.getPlayer().getVideoTracks().addEventListener(VideoTrackListEventTypes.ADDTRACK, handleAddTrackEvent);
iOS (/tvOS) SDK​
player.videoTracks.addEventListener(type: VideoTrackListEventTypes.ADD_TRACK, listener: { addTrackEvent in
guard let videoTrack = addTrackEvent.track as? VideoTrack else { return }
for i in 0..<videoTrack.qualities.count {
let quality = videoTrack.qualities[i]
var msg = "Quality added: bandwidth = \(quality.bandwidth)"
if let videoQuality = quality as? VideoQuality {
msg.append(", width = \(videoQuality.width), height = \(videoQuality.height)")
}
print(msg)
}
})

Remarks​