Files
v10/dist/dev/core/predicate.js
T

78 lines
3.1 KiB
JavaScript

import { EMPTY_REMOTE, EMPTY_TEXT_TRACKS, EMPTY_TIME_RANGES } from "./constants.js";
import { isFunction, isObject, isUndefined } from "@videojs/utils/predicate";
//#region src/core/predicate.ts
function hasMetadata(media) {
return media.readyState >= 1;
}
function isMediaPauseCapable(value) {
if (!isObject(value)) return false;
const media = value;
return !isUndefined(media.paused) && !isUndefined(media.ended) && isFunction(media.pause);
}
function isMediaSeekCapable(value) {
if (!isObject(value)) return false;
const media = value;
return !isUndefined(media.currentTime) && !isUndefined(media.duration) && !isUndefined(media.seeking);
}
function isMediaSourceCapable(value) {
if (!isObject(value)) return false;
const media = value;
return !isUndefined(media.src) && !isUndefined(media.currentSrc) && !isUndefined(media.readyState) && isFunction(media.load);
}
function isMediaVolumeCapable(value) {
if (!isObject(value)) return false;
const media = value;
return !isUndefined(media.volume) && !isUndefined(media.muted);
}
function isMediaPlaybackRateCapable(value) {
if (!isObject(value)) return false;
return !isUndefined(value.playbackRate);
}
function isMediaBufferCapable(value) {
if (!isObject(value)) return false;
const media = value;
return !isUndefined(media.buffered) && media.buffered !== EMPTY_TIME_RANGES && !isUndefined(media.seekable) && media.seekable !== EMPTY_TIME_RANGES;
}
function isMediaErrorCapable(value) {
if (!isObject(value)) return false;
return !isUndefined(value.error);
}
function isMediaTextTrackCapable(value) {
if (!isObject(value)) return false;
const media = value;
return !isUndefined(media.textTracks) && media.textTracks !== EMPTY_TEXT_TRACKS;
}
function isMediaVideoRenditionCapable(value) {
if (!isObject(value)) return false;
return !isUndefined(value.videoRenditions);
}
function isMediaAudioTrackCapable(value) {
if (!isObject(value)) return false;
return !isUndefined(value.audioTracks);
}
function isMediaVideoDimensionsCapable(value) {
if (!isObject(value)) return false;
const media = value;
return !isUndefined(media.videoWidth) && !isUndefined(media.videoHeight);
}
function isMediaRemotePlaybackCapable(value) {
if (!isObject(value)) return false;
const media = value;
return isObject(media.remote) && media.remote !== EMPTY_REMOTE;
}
function isMediaStreamTypeCapable(value) {
if (!isObject(value)) return false;
return !isUndefined(value.streamType);
}
function isMediaLiveCapable(value) {
if (!isObject(value)) return false;
const media = value;
return !isUndefined(media.liveEdgeStart) && !isUndefined(media.targetLiveWindow);
}
function isQuerySelectorAllCapable(value) {
return isObject(value) && "querySelectorAll" in value && isFunction(value.querySelectorAll);
}
//#endregion
export { hasMetadata, isMediaAudioTrackCapable, isMediaBufferCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaPauseCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable, isMediaVolumeCapable, isQuerySelectorAllCapable };
//# sourceMappingURL=predicate.js.map