UNPKG

react-native-theoplayer

Version:

A THEOplayer video component for react-native.

95 lines (94 loc) 2.22 kB
"use strict"; import { decodeNanInf } from '../../utils/TypeUtils'; export function isDateRangeCue(cue) { return cue.customAttributes != undefined; } export function fromNativeCue(cue) { return { id: cue.id, uid: cue.uid, startTime: decodeNanInf(1e3 * cue.startTime), endTime: decodeNanInf(1e3 * cue.endTime), content: cue.content, ...(isDateRangeCue(cue) && { class: cue.class, startDate: cue.startDate, endDate: cue.endDate, duration: cue.duration ? decodeNanInf(1e3 * cue.duration) : cue.duration, plannedDuration: cue.plannedDuration ? decodeNanInf(1e3 * cue.plannedDuration) : cue.plannedDuration, endOnNext: cue.endOnNext, scte35Cmd: cue.scte35Cmd, scte35Out: cue.scte35Out, scte35In: cue.scte35In, customAttributes: cue.customAttributes }) }; } export function fromNativeTextTrackList(tracks) { return tracks.map(track => fromNativeTextTrack(track)); } export function fromNativeTextTrack(track) { const { id, uid, kind, label, language, mode, type, src, forced } = track; return { id, uid, kind, label, language, mode, type, src, forced, cues: track.cues ? track.cues.map(cue => fromNativeCue(cue)) : [] }; } export function fromNativeMediaTrackList(tracks) { return tracks.map(track => fromNativeMediaTrack(track)); } export function fromNativeMediaTrack(track) { const { id, uid, kind, label, language, activeQuality, qualities, enabled } = track; return { kind, label, language, id, uid, activeQuality, qualities, enabled }; } export function findNativeQualityByUid(mediaTrack, uid) { return mediaTrack.qualities.find(quality => quality.uid === uid); } export function findNativeQualitiesByUid(mediaTrack, uid) { if (uid !== undefined && mediaTrack) { if (Array.isArray(uid)) { return mediaTrack.qualities.filter(quality => uid.includes(quality.uid)); } else { const quality = findNativeQualityByUid(mediaTrack, uid); return quality ? [quality] : undefined; } } return undefined; } //# sourceMappingURL=TrackUtils.js.map