UNPKG

spectatr-player-sdk

Version:

A custom video player built with Stencil with Shaka Player integration

45 lines (44 loc) 1.63 kB
export function setupTracks(component) { const { player } = component; if (!player) return; const audioTracks = player.getAudioTracks(); // Use a Map to store the first occurrence of each language const uniqueLanguageTracks = new Map(); audioTracks.forEach(track => { const language = track.language; if (!uniqueLanguageTracks.has(language)) { uniqueLanguageTracks.set(language, { index: track.id, language: language, label: track.label || `Audio ${language}`, enabled: track.active, }); } }); // Convert Map values back to an array component.audioTracks = Array.from(uniqueLanguageTracks.values()); // Set the first track as active (or keep existing logic) component.currentAudioTrack = 0; setupQualityTrack(component); } export function setupQualityTrack(component) { const { player } = component; if (!player) return; const tracks = player.getVariantTracks(); component.qualities = tracks .filter(track => !track.label || track.label === component.audioTracks[component.currentAudioTrack]?.label) .reduce((unique, track) => { const qualityLabel = track.height ? `${track.height}p` : `${Math.floor(track.bandwidth / 1000)}kbps`; unique.push({ index: track.id, height: track.height, bitrate: track.bandwidth, name: qualityLabel, }); return unique; }, []); component.currentQuality = -1; } //# sourceMappingURL=tracker-util.js.map