mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-06 03:50:04 +02:00
Chromecast moved to PlayerSkins plugin
aisplay option added on PlayerSkins
This commit is contained in:
parent
480ae72b99
commit
efd0665a44
286 changed files with 72588 additions and 1487 deletions
142
node_modules/video.js/dist/alt/video.debug.js
generated
vendored
142
node_modules/video.js/dist/alt/video.debug.js
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @license
|
||||
* Video.js 8.18.1 <http://videojs.com/>
|
||||
* Video.js 8.19.1 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
||||
|
@ -16,7 +16,7 @@
|
|||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.videojs = factory());
|
||||
})(this, (function () { 'use strict';
|
||||
|
||||
var version$5 = "8.18.1";
|
||||
var version$5 = "8.19.1";
|
||||
|
||||
/**
|
||||
* An Object that contains lifecycle hooks as keys which point to an array
|
||||
|
@ -22602,6 +22602,59 @@
|
|||
this.setSrc(src);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a <source> element to the <video> element.
|
||||
*
|
||||
* @param {string} srcUrl
|
||||
* The URL of the video source.
|
||||
*
|
||||
* @param {string} [mimeType]
|
||||
* The MIME type of the video source. Optional but recommended.
|
||||
*
|
||||
* @return {boolean}
|
||||
* Returns true if the source element was successfully added, false otherwise.
|
||||
*/
|
||||
addSourceElement(srcUrl, mimeType) {
|
||||
if (!srcUrl) {
|
||||
log$1.error('Invalid source URL.');
|
||||
return false;
|
||||
}
|
||||
const sourceAttributes = {
|
||||
src: srcUrl
|
||||
};
|
||||
if (mimeType) {
|
||||
sourceAttributes.type = mimeType;
|
||||
}
|
||||
const sourceElement = createEl('source', {}, sourceAttributes);
|
||||
this.el_.appendChild(sourceElement);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a <source> element from the <video> element by its URL.
|
||||
*
|
||||
* @param {string} srcUrl
|
||||
* The URL of the source to remove.
|
||||
*
|
||||
* @return {boolean}
|
||||
* Returns true if the source element was successfully removed, false otherwise.
|
||||
*/
|
||||
removeSourceElement(srcUrl) {
|
||||
if (!srcUrl) {
|
||||
log$1.error('Source URL is required to remove the source element.');
|
||||
return false;
|
||||
}
|
||||
const sourceElements = this.el_.querySelectorAll('source');
|
||||
for (const sourceElement of sourceElements) {
|
||||
if (sourceElement.src === srcUrl) {
|
||||
this.el_.removeChild(sourceElement);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
log$1.warn(`No matching source element found with src: ${srcUrl}`);
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset the tech by removing all sources and then calling
|
||||
* {@link Html5.resetMediaElement}.
|
||||
|
@ -25626,7 +25679,8 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* Handle a double-click on the media element to enter/exit fullscreen
|
||||
* Handle a double-click on the media element to enter/exit fullscreen,
|
||||
* or exit documentPictureInPicture mode
|
||||
*
|
||||
* @param {Event} event
|
||||
* the event that caused this function to trigger
|
||||
|
@ -25653,6 +25707,12 @@
|
|||
if (this.options_ === undefined || this.options_.userActions === undefined || this.options_.userActions.doubleClick === undefined || this.options_.userActions.doubleClick !== false) {
|
||||
if (this.options_ !== undefined && this.options_.userActions !== undefined && typeof this.options_.userActions.doubleClick === 'function') {
|
||||
this.options_.userActions.doubleClick.call(this, event);
|
||||
} else if (this.isInPictureInPicture() && !document.pictureInPictureElement) {
|
||||
// Checking the presence of `window.documentPictureInPicture.window` complicates
|
||||
// tests, checking `document.pictureInPictureElement` also works. It wouldn't
|
||||
// be null in regular picture in picture.
|
||||
// Exit picture in picture mode. This gesture can't trigger pip on the main window.
|
||||
this.exitPictureInPicture();
|
||||
} else if (this.isFullscreen()) {
|
||||
this.exitFullscreen();
|
||||
} else {
|
||||
|
@ -27225,6 +27285,41 @@
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a <source> element to the <video> element.
|
||||
*
|
||||
* @param {string} srcUrl
|
||||
* The URL of the video source.
|
||||
*
|
||||
* @param {string} [mimeType]
|
||||
* The MIME type of the video source. Optional but recommended.
|
||||
*
|
||||
* @return {boolean}
|
||||
* Returns true if the source element was successfully added, false otherwise.
|
||||
*/
|
||||
addSourceElement(srcUrl, mimeType) {
|
||||
if (!this.tech_) {
|
||||
return false;
|
||||
}
|
||||
return this.tech_.addSourceElement(srcUrl, mimeType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a <source> element from the <video> element by its URL.
|
||||
*
|
||||
* @param {string} srcUrl
|
||||
* The URL of the source to remove.
|
||||
*
|
||||
* @return {boolean}
|
||||
* Returns true if the source element was successfully removed, false otherwise.
|
||||
*/
|
||||
removeSourceElement(srcUrl) {
|
||||
if (!this.tech_) {
|
||||
return false;
|
||||
}
|
||||
return this.tech_.removeSourceElement(srcUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Begin loading the src data.
|
||||
*/
|
||||
|
@ -37632,7 +37727,7 @@
|
|||
|
||||
var DOMParser = domParser.DOMParser;
|
||||
|
||||
/*! @name mpd-parser @version 1.3.0 @license Apache-2.0 */
|
||||
/*! @name mpd-parser @version 1.3.1 @license Apache-2.0 */
|
||||
const isObject = obj => {
|
||||
return !!obj && typeof obj === 'object';
|
||||
};
|
||||
|
@ -38513,9 +38608,10 @@
|
|||
const organizeVttPlaylists = (playlists, sidxMapping = {}) => {
|
||||
return playlists.reduce((a, playlist) => {
|
||||
const label = playlist.attributes.label || playlist.attributes.lang || 'text';
|
||||
const language = playlist.attributes.lang || 'und';
|
||||
if (!a[label]) {
|
||||
a[label] = {
|
||||
language: label,
|
||||
language,
|
||||
default: false,
|
||||
autoselect: false,
|
||||
playlists: [],
|
||||
|
@ -40799,7 +40895,7 @@
|
|||
};
|
||||
var clock_1 = clock.ONE_SECOND_IN_TS;
|
||||
|
||||
/*! @name @videojs/http-streaming @version 3.14.2 @license Apache-2.0 */
|
||||
/*! @name @videojs/http-streaming @version 3.15.0 @license Apache-2.0 */
|
||||
|
||||
/**
|
||||
* @file resolve-url.js - Handling how URLs are resolved and manipulated
|
||||
|
@ -63432,10 +63528,14 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
this.handleDurationChange_ = this.handleDurationChange_.bind(this);
|
||||
this.handleSourceOpen_ = this.handleSourceOpen_.bind(this);
|
||||
this.handleSourceEnded_ = this.handleSourceEnded_.bind(this);
|
||||
this.load = this.load.bind(this);
|
||||
this.pause = this.pause.bind(this);
|
||||
this.mediaSource.addEventListener('durationchange', this.handleDurationChange_); // load the media source into the player
|
||||
|
||||
this.mediaSource.addEventListener('sourceopen', this.handleSourceOpen_);
|
||||
this.mediaSource.addEventListener('sourceended', this.handleSourceEnded_); // we don't have to handle sourceclose since dispose will handle termination of
|
||||
this.mediaSource.addEventListener('sourceended', this.handleSourceEnded_);
|
||||
this.mediaSource.addEventListener('startstreaming', this.load);
|
||||
this.mediaSource.addEventListener('endstreaming', this.pause); // we don't have to handle sourceclose since dispose will handle termination of
|
||||
// everything, and the MediaSource should not be detached without a proper disposal
|
||||
|
||||
this.seekable_ = createTimeRanges();
|
||||
|
@ -64159,6 +64259,19 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
this.subtitleSegmentLoader_.load();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Call pause on our SegmentLoaders
|
||||
*/
|
||||
|
||||
pause() {
|
||||
this.mainSegmentLoader_.pause();
|
||||
if (this.mediaTypes_.AUDIO.activePlaylistLoader) {
|
||||
this.audioSegmentLoader_.pause();
|
||||
}
|
||||
if (this.mediaTypes_.SUBTITLES.activePlaylistLoader) {
|
||||
this.subtitleSegmentLoader_.pause();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Re-tune playback quality level for the current player
|
||||
* conditions. This method will perform destructive actions like removing
|
||||
|
@ -66221,9 +66334,9 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
const reloadSourceOnError = function (options) {
|
||||
initPlugin(this, options);
|
||||
};
|
||||
var version$4 = "3.14.2";
|
||||
var version$4 = "3.15.0";
|
||||
var version$3 = "7.0.3";
|
||||
var version$2 = "1.3.0";
|
||||
var version$2 = "1.3.1";
|
||||
var version$1 = "7.2.0";
|
||||
var version = "4.0.2";
|
||||
const Vhs = {
|
||||
|
@ -67103,8 +67216,15 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
if (!this.tech_.el()) {
|
||||
return;
|
||||
}
|
||||
this.mediaSourceUrl_ = window.URL.createObjectURL(this.playlistController_.mediaSource);
|
||||
this.tech_.src(this.mediaSourceUrl_);
|
||||
this.mediaSourceUrl_ = window.URL.createObjectURL(this.playlistController_.mediaSource); // If we are playing HLS with MSE in Safari, add source elements for both the blob and manifest URLs.
|
||||
// The latter will enable Airplay playback on receiver devices.
|
||||
|
||||
if ((videojs.browser.IS_ANY_SAFARI || videojs.browser.IS_IOS) && this.options_.overrideNative && this.options_.sourceType === 'hls' && typeof this.tech_.addSourceElement === 'function') {
|
||||
this.tech_.addSourceElement(this.mediaSourceUrl_);
|
||||
this.tech_.addSourceElement(this.source_.src);
|
||||
} else {
|
||||
this.tech_.src(this.mediaSourceUrl_);
|
||||
}
|
||||
}
|
||||
createKeySessions_() {
|
||||
const audioPlaylistLoader = this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue