react-native-theoplayer
Version:
A THEOplayer video component for react-native.
106 lines (105 loc) • 2.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.findNativeQualitiesByUid = findNativeQualitiesByUid;
exports.findNativeQualityByUid = findNativeQualityByUid;
exports.fromNativeCue = fromNativeCue;
exports.fromNativeMediaTrack = fromNativeMediaTrack;
exports.fromNativeMediaTrackList = fromNativeMediaTrackList;
exports.fromNativeTextTrack = fromNativeTextTrack;
exports.fromNativeTextTrackList = fromNativeTextTrackList;
exports.isDateRangeCue = isDateRangeCue;
var _TypeUtils = require("../../utils/TypeUtils");
function isDateRangeCue(cue) {
return cue.customAttributes != undefined;
}
function fromNativeCue(cue) {
return {
id: cue.id,
uid: cue.uid,
startTime: (0, _TypeUtils.decodeNanInf)(1e3 * cue.startTime),
endTime: (0, _TypeUtils.decodeNanInf)(1e3 * cue.endTime),
content: cue.content,
...(isDateRangeCue(cue) && {
class: cue.class,
startDate: cue.startDate,
endDate: cue.endDate,
duration: cue.duration ? (0, _TypeUtils.decodeNanInf)(1e3 * cue.duration) : cue.duration,
plannedDuration: cue.plannedDuration ? (0, _TypeUtils.decodeNanInf)(1e3 * cue.plannedDuration) : cue.plannedDuration,
endOnNext: cue.endOnNext,
scte35Cmd: cue.scte35Cmd,
scte35Out: cue.scte35Out,
scte35In: cue.scte35In,
customAttributes: cue.customAttributes
})
};
}
function fromNativeTextTrackList(tracks) {
return tracks.map(track => fromNativeTextTrack(track));
}
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)) : []
};
}
function fromNativeMediaTrackList(tracks) {
return tracks.map(track => fromNativeMediaTrack(track));
}
function fromNativeMediaTrack(track) {
const {
id,
uid,
kind,
label,
language,
activeQuality,
qualities,
enabled
} = track;
return {
kind,
label,
language,
id,
uid,
activeQuality,
qualities,
enabled
};
}
function findNativeQualityByUid(mediaTrack, uid) {
return mediaTrack.qualities.find(quality => quality.uid === uid);
}
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