react-native-theoplayer
Version:
A THEOplayer video component for react-native.
59 lines (54 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.addTrack = addTrack;
exports.hasTrack = hasTrack;
exports.removeTrack = removeTrack;
exports.sortTracks = sortTracks;
/**
* Represents a track of a media resource.
*
* @remarks
* <br/> - A specific track type (e.g. {@link TextTrack}) will always be used.
*
* @category Media and Text Tracks
* @public
*/
/**
* Checks whether a track list contains a given track.
*
* @category Media and Text Tracks
* @internal
*/
function hasTrack(trackList, track) {
return !!(trackList && track && trackList.find(t => t.uid === track.uid));
}
/**
* Removes a track from a track list.
*
* @category Media and Text Tracks
* @internal
*/
function removeTrack(trackList, track) {
return trackList && track ? trackList.filter(t => t.uid !== track.uid) : trackList;
}
/**
* Adds a track to a track list.
*
* @category Media and Text Tracks
* @internal
*/
function addTrack(trackList, track) {
return trackList && track && !hasTrack(trackList, track) ? sortTracks([...trackList, track]) : trackList;
}
/**
* Sort a track list based on the track's uids, which is how they are listed in the manifest.
*
* @category Media and Text Tracks
* @internal
*/
function sortTracks(trackList) {
return trackList?.sort((t1, t2) => t1.uid - t2.uid) || [];
}
//# sourceMappingURL=Track.js.map