UNPKG

@theoplayer/react-native-ui

Version:

A React Native UI for @theoplayer/react-native

65 lines (63 loc) 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.calculateQualityLabelParams = calculateQualityLabelParams; exports.filterRenderableTracks = filterRenderableTracks; exports.getTrackLabel = getTrackLabel; exports.stringFromTextTrackListEvent = stringFromTextTrackListEvent; var _reactNativeTheoplayer = require("react-native-theoplayer"); var _Language = require("../../utils/language/Language"); function getTrackLabel(track) { if (track.label) { return track.label; } const languageCode = track.language; if (languageCode) { const iso639Language = (0, _Language.getISO639LanguageByCode)(languageCode); if (iso639Language) { return iso639Language.local; } } return languageCode || ''; } function stringFromTextTrackListEvent(type) { switch (type) { case _reactNativeTheoplayer.TrackListEventType.ADD_TRACK: return 'AddTrack'; case _reactNativeTheoplayer.TrackListEventType.REMOVE_TRACK: return 'RemoveTrack'; case _reactNativeTheoplayer.TrackListEventType.CHANGE_TRACK: return 'ChangeTrack'; } } /** * Retain renderable tracks. * https://html.spec.whatwg.org/multipage/embedded-content.html#text-track-showing */ function filterRenderableTracks(textTracks) { return textTracks.filter(textTrack => textTrack.kind === 'subtitles' || textTrack.kind === 'captions'); } function calculateQualityLabelParams(quality) { let bitrate; let unit; if (quality.bandwidth > 1e7) { bitrate = (quality.bandwidth / 1e6).toFixed(0); unit = 'Mbps'; } else if (quality.bandwidth > 1e6) { bitrate = (quality.bandwidth / 1e6).toFixed(1); unit = 'Mbps'; } else { bitrate = (quality.bandwidth / 1e3).toFixed(0); unit = 'kbps'; } return { quality: quality, label: quality.label, width: quality.width, height: quality.height, bitrate, unit }; } //# sourceMappingURL=TrackUtils.js.map