@gcorevideo/player 2.25.9 → 2.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core.js +23 -78
- package/dist/index.css +1193 -1193
- package/dist/index.embed.js +89 -153
- package/dist/index.js +112 -249
- package/dist/player.d.ts +2798 -2785
- package/docs/api/player.bigmutebutton.md +0 -3
- package/docs/api/player.bottomgear.additem.md +0 -3
- package/docs/api/player.bottomgear.md +2 -5
- package/docs/api/player.bottomgear.refresh.md +0 -3
- package/docs/api/player.clapprstats._constructor_.md +0 -3
- package/docs/api/player.clapprstats.clearmetrics.md +0 -3
- package/docs/api/player.clapprstats.exportmetrics.md +1 -4
- package/docs/api/player.clapprstats.md +2 -7
- package/docs/api/player.clapprstatsbitratetrack.md +0 -3
- package/docs/api/player.clapprstatschronograph.md +0 -13
- package/docs/api/player.clapprstatscounter.md +0 -25
- package/docs/api/player.clapprstatsevents.md +1 -4
- package/docs/api/player.clapprstatsmetrics.md +0 -3
- package/docs/api/player.clapprstatssettings.md +1 -4
- package/docs/api/player.clapprstatssettings.runeach.md +0 -3
- package/docs/api/player.clicktopause.md +0 -3
- package/docs/api/player.clips.destroy.md +0 -3
- package/docs/api/player.clips.disable.md +0 -3
- package/docs/api/player.clips.enable.md +0 -3
- package/docs/api/player.clips.gettext.md +0 -3
- package/docs/api/player.clips.md +1 -16
- package/docs/api/player.clips.render.md +0 -3
- package/docs/api/player.clips.supportedversion.md +0 -3
- package/docs/api/player.clips.version.md +0 -3
- package/docs/api/player.clipspluginsettings.md +1 -4
- package/docs/api/player.clipspluginsettings.text.md +0 -3
- package/docs/api/player.closedcaptions.hide.md +0 -3
- package/docs/api/player.closedcaptions.md +6 -5
- package/docs/api/player.closedcaptions.show.md +0 -3
- package/docs/api/player.closedcaptionspluginsettings.md +0 -3
- package/docs/api/player.cmcdconfig._constructor_.md +0 -3
- package/docs/api/player.cmcdconfig.exportids.md +0 -3
- package/docs/api/player.cmcdconfig.md +2 -5
- package/docs/api/player.cmcdconfigoptions.contentid.md +0 -3
- package/docs/api/player.cmcdconfigoptions.md +2 -5
- package/docs/api/player.cmcdconfigoptions.sessionid.md +0 -3
- package/docs/api/player.dvrcontrols.md +0 -3
- package/docs/api/player.extendedevents.md +0 -7
- package/docs/api/player.favicon.md +0 -3
- package/docs/api/player.faviconpluginsettings.faviconcolor.md +0 -3
- package/docs/api/player.faviconpluginsettings.md +1 -4
- package/docs/api/player.gearevents.md +1 -4
- package/docs/api/player.md +24 -43
- package/docs/api/player.mediacontrol.defaultsettings.md +5 -1
- package/docs/api/player.mediacontrol.getavailablepopupheight.md +20 -0
- package/docs/api/player.mediacontrol.md +14 -0
- package/docs/api/player.menuoption.md +0 -3
- package/docs/api/player.nerdstats._constructor_.md +0 -3
- package/docs/api/player.nerdstats.md +1 -4
- package/docs/api/player.pictureinpicture.attributes.md +0 -3
- package/docs/api/player.pictureinpicture.md +2 -7
- package/docs/api/player.playbackrateoption.md +0 -3
- package/docs/api/player.playbackratesettings.md +0 -3
- package/docs/api/player.poster.disable.md +0 -3
- package/docs/api/player.poster.enable.md +0 -3
- package/docs/api/player.poster.md +2 -5
- package/docs/api/player.posterpluginsettings.custom.md +0 -3
- package/docs/api/player.posterpluginsettings.md +4 -7
- package/docs/api/player.posterpluginsettings.showfornoop.md +0 -3
- package/docs/api/player.posterpluginsettings.showonvideoend.md +0 -3
- package/docs/api/player.posterpluginsettings.url.md +0 -3
- package/docs/api/player.qualitylevels.events.md +0 -3
- package/docs/api/player.qualitylevels.md +0 -5
- package/docs/api/player.qualitylevelspluginsettings.labels.md +0 -3
- package/docs/api/player.qualitylevelspluginsettings.md +2 -5
- package/docs/api/player.qualitylevelspluginsettings.restrictresolution.md +0 -3
- package/docs/api/player.skiptime.container.md +0 -3
- package/docs/api/player.skiptime.md +0 -9
- package/docs/api/player.skiptime.name.md +0 -3
- package/docs/api/player.skiptime.supportedversion.md +0 -3
- package/docs/api/player.volumefadeevents.md +0 -5
- package/docs/api/player.volumefadesettings.md +0 -3
- package/docs/api/player.zeptoresult.md +0 -3
- package/lib/Player.d.ts.map +1 -1
- package/lib/Player.js +0 -29
- package/lib/playback/HTML5Video.d.ts.map +1 -1
- package/lib/playback/HTML5Video.js +0 -18
- package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
- package/lib/playback/dash-playback/DashPlayback.js +0 -10
- package/lib/playback/hls-playback/HlsPlayback.d.ts +0 -1
- package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
- package/lib/playback/hls-playback/HlsPlayback.js +22 -20
- package/lib/plugins/big-mute-button/BigMuteButton.d.ts +1 -1
- package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
- package/lib/plugins/big-mute-button/BigMuteButton.js +1 -3
- package/lib/plugins/bottom-gear/BottomGear.d.ts +2 -2
- package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.js +4 -8
- package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts +1 -1
- package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/NerdStats.js +3 -5
- package/lib/plugins/clappr-stats/ClapprStats.d.ts +3 -3
- package/lib/plugins/clappr-stats/ClapprStats.js +2 -2
- package/lib/plugins/clappr-stats/types.d.ts +5 -5
- package/lib/plugins/clappr-stats/types.js +3 -3
- package/lib/plugins/click-to-pause/ClickToPause.d.ts +1 -1
- package/lib/plugins/click-to-pause/ClickToPause.d.ts.map +1 -1
- package/lib/plugins/click-to-pause/ClickToPause.js +3 -7
- package/lib/plugins/clips/Clips.d.ts +2 -2
- package/lib/plugins/clips/Clips.d.ts.map +1 -1
- package/lib/plugins/clips/Clips.js +2 -6
- package/lib/plugins/cmcd-config/CmcdConfig.d.ts +2 -2
- package/lib/plugins/cmcd-config/CmcdConfig.js +1 -1
- package/lib/plugins/context-menu/ContextMenu.d.ts +1 -1
- package/lib/plugins/dvr-controls/DvrControls.d.ts +1 -1
- package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
- package/lib/plugins/dvr-controls/DvrControls.js +3 -4
- package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
- package/lib/plugins/error-screen/ErrorScreen.js +0 -3
- package/lib/plugins/favicon/Favicon.d.ts +2 -2
- package/lib/plugins/favicon/Favicon.js +1 -1
- package/lib/plugins/level-selector/QualityLevels.d.ts +2 -2
- package/lib/plugins/level-selector/QualityLevels.d.ts.map +1 -1
- package/lib/plugins/level-selector/QualityLevels.js +3 -11
- package/lib/plugins/media-control/MediaControl.d.ts +2 -5
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +4 -6
- package/lib/plugins/picture-in-picture/PictureInPicture.d.ts +3 -3
- package/lib/plugins/picture-in-picture/PictureInPicture.js +3 -3
- package/lib/plugins/playback-rate/PlaybackRate.d.ts +2 -2
- package/lib/plugins/playback-rate/PlaybackRate.d.ts.map +1 -1
- package/lib/plugins/playback-rate/PlaybackRate.js +0 -10
- package/lib/plugins/poster/Poster.d.ts +2 -2
- package/lib/plugins/poster/Poster.d.ts.map +1 -1
- package/lib/plugins/poster/Poster.js +3 -19
- package/lib/plugins/seek-time/SeekTime.d.ts.map +1 -1
- package/lib/plugins/seek-time/SeekTime.js +1 -6
- package/lib/plugins/skip-time/SkipTime.d.ts +1 -1
- package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
- package/lib/plugins/skip-time/SkipTime.js +3 -15
- package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
- package/lib/plugins/source-controller/SourceController.js +0 -5
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +2 -18
- package/lib/plugins/subtitles/ClosedCaptions.d.ts +10 -2
- package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
- package/lib/plugins/subtitles/ClosedCaptions.js +12 -2
- package/lib/plugins/volume-fade/VolumeFade.d.ts +2 -2
- package/lib/plugins/volume-fade/VolumeFade.js +1 -1
- package/lib/types.d.ts +1 -1
- package/package.json +1 -1
- package/src/Player.ts +0 -30
- package/src/playback/HTML5Video.ts +0 -18
- package/src/playback/dash-playback/DashPlayback.ts +0 -11
- package/src/playback/hls-playback/HlsPlayback.ts +22 -29
- package/src/plugins/big-mute-button/BigMuteButton.ts +1 -4
- package/src/plugins/bottom-gear/BottomGear.ts +4 -8
- package/src/plugins/clappr-nerd-stats/NerdStats.ts +3 -5
- package/src/plugins/clappr-stats/ClapprStats.ts +3 -3
- package/src/plugins/clappr-stats/types.ts +5 -5
- package/src/plugins/click-to-pause/ClickToPause.ts +3 -8
- package/src/plugins/clips/Clips.ts +4 -7
- package/src/plugins/cmcd-config/CmcdConfig.ts +2 -2
- package/src/plugins/context-menu/ContextMenu.ts +1 -1
- package/src/plugins/dvr-controls/DvrControls.ts +3 -4
- package/src/plugins/error-screen/ErrorScreen.ts +0 -3
- package/src/plugins/favicon/Favicon.ts +2 -2
- package/src/plugins/level-selector/QualityLevels.ts +4 -12
- package/src/plugins/media-control/MediaControl.ts +4 -10
- package/src/plugins/picture-in-picture/PictureInPicture.ts +3 -3
- package/src/plugins/playback-rate/PlaybackRate.ts +2 -14
- package/src/plugins/poster/Poster.ts +4 -21
- package/src/plugins/seek-time/SeekTime.ts +2 -6
- package/src/plugins/skip-time/SkipTime.ts +3 -15
- package/src/plugins/source-controller/SourceController.ts +0 -5
- package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +2 -18
- package/src/plugins/subtitles/ClosedCaptions.ts +13 -3
- package/src/plugins/volume-fade/VolumeFade.ts +2 -2
- package/src/types.ts +1 -1
- package/temp/player.api.json +157 -152
- package/tsconfig.tsbuildinfo +1 -1
- package/docs/api/player.mediacontrolpluginsettings.md +0 -13
package/dist/index.embed.js
CHANGED
|
@@ -12524,7 +12524,6 @@ var PlaybackEvents;
|
|
|
12524
12524
|
// https://github.com/clappr/clappr/blob/8752995ea439321ac7ca3cd35e8c64de7a3c3d17/LICENSE
|
|
12525
12525
|
const AUTO$1 = -1;
|
|
12526
12526
|
const { now: now$2 } = Utils;
|
|
12527
|
-
const T$d = 'playback.dash';
|
|
12528
12527
|
class DashPlayback extends BasePlayback {
|
|
12529
12528
|
_levels = null;
|
|
12530
12529
|
_currentLevel = null;
|
|
@@ -12873,11 +12872,6 @@ class DashPlayback extends BasePlayback {
|
|
|
12873
12872
|
if (!this._dash) {
|
|
12874
12873
|
return false;
|
|
12875
12874
|
}
|
|
12876
|
-
trace(`${T$d} get.dvrEnabled`, {
|
|
12877
|
-
dvrWindowSize: this._dash?.getDVRWindowSize(),
|
|
12878
|
-
minDvrSize: this._minDvrSize,
|
|
12879
|
-
playbackType: this.getPlaybackType(),
|
|
12880
|
-
});
|
|
12881
12875
|
return (this._dash?.getDVRWindowSize() >= this._minDvrSize &&
|
|
12882
12876
|
this.getPlaybackType() === Playback.LIVE);
|
|
12883
12877
|
}
|
|
@@ -12895,7 +12889,6 @@ class DashPlayback extends BasePlayback {
|
|
|
12895
12889
|
this.trigger(Events$1.PLAYBACK_PROGRESS, progress, {});
|
|
12896
12890
|
}
|
|
12897
12891
|
play() {
|
|
12898
|
-
trace(`${T$d} play`, { dash: !!this._dash });
|
|
12899
12892
|
!this._dash && this._setup();
|
|
12900
12893
|
super.play();
|
|
12901
12894
|
this._startTimeUpdateTimer();
|
|
@@ -41688,7 +41681,7 @@ const AUTO = -1;
|
|
|
41688
41681
|
const DEFAULT_RECOVER_ATTEMPTS = 16;
|
|
41689
41682
|
Events$1.register('PLAYBACK_FRAGMENT_CHANGED');
|
|
41690
41683
|
Events$1.register('PLAYBACK_FRAGMENT_PARSING_METADATA');
|
|
41691
|
-
const T$
|
|
41684
|
+
const T$6 = 'playback.hls';
|
|
41692
41685
|
class HlsPlayback extends BasePlayback {
|
|
41693
41686
|
_ccIsSetup = false;
|
|
41694
41687
|
_ccTracksUpdated = false;
|
|
@@ -41961,9 +41954,9 @@ class HlsPlayback extends BasePlayback {
|
|
|
41961
41954
|
this._hls.on(Hls.Events.FRAG_LOADED, (evt, data) => this._onFragmentLoaded(evt, data));
|
|
41962
41955
|
this._hls.on(Hls.Events.FRAG_PARSING_METADATA, (evt, data) => this._onFragmentParsingMetadata(evt, data));
|
|
41963
41956
|
this._hls.on(Hls.Events.ERROR, (evt, data) => this._onHLSJSError(evt, data));
|
|
41964
|
-
// this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, (
|
|
41965
|
-
this.
|
|
41966
|
-
|
|
41957
|
+
// this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, () =>
|
|
41958
|
+
// this._onSubtitleLoaded(),
|
|
41959
|
+
// )
|
|
41967
41960
|
this._hls.on(Events.AUDIO_TRACKS_UPDATED, (evt, data) => this._onAudioTracksUpdated(evt, data));
|
|
41968
41961
|
this._hls.on(Events.AUDIO_TRACK_SWITCHED, (evt, data) => this._onAudioTrackSwitched(evt, data));
|
|
41969
41962
|
this.bindCustomListeners();
|
|
@@ -42012,7 +42005,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42012
42005
|
}
|
|
42013
42006
|
else {
|
|
42014
42007
|
Log.error('hlsjs: failed to recover', { evt, data });
|
|
42015
|
-
trace(`${T$
|
|
42008
|
+
trace(`${T$6} _recover failed to recover`, {
|
|
42016
42009
|
type: data.type,
|
|
42017
42010
|
details: data.details,
|
|
42018
42011
|
});
|
|
@@ -42098,7 +42091,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42098
42091
|
this.trigger(Events$1.PLAYBACK_SETTINGSUPDATE);
|
|
42099
42092
|
}
|
|
42100
42093
|
_onHLSJSError(evt, data) {
|
|
42101
|
-
trace(`${T$
|
|
42094
|
+
trace(`${T$6} _onHLSJSError`, {
|
|
42102
42095
|
fatal: data.fatal,
|
|
42103
42096
|
type: data.type,
|
|
42104
42097
|
details: data.details,
|
|
@@ -42146,7 +42139,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42146
42139
|
evt,
|
|
42147
42140
|
data,
|
|
42148
42141
|
});
|
|
42149
|
-
trace(`${T$
|
|
42142
|
+
trace(`${T$6} _onHLSJSError trying to recover from network error`, {
|
|
42150
42143
|
details: data.details,
|
|
42151
42144
|
});
|
|
42152
42145
|
error.level = PlayerError.Levels.WARN;
|
|
@@ -42159,7 +42152,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42159
42152
|
evt,
|
|
42160
42153
|
data,
|
|
42161
42154
|
});
|
|
42162
|
-
trace(`${T$
|
|
42155
|
+
trace(`${T$6} _onHLSJSError trying to recover from media error`, {
|
|
42163
42156
|
details: data.details,
|
|
42164
42157
|
});
|
|
42165
42158
|
error.level = PlayerError.Levels.WARN;
|
|
@@ -42189,7 +42182,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42189
42182
|
return;
|
|
42190
42183
|
}
|
|
42191
42184
|
Log.warn('hlsjs: non-fatal error occurred', { evt, data });
|
|
42192
|
-
trace(`${T$
|
|
42185
|
+
trace(`${T$6} _onHLSJSError non-fatal error occurred`, {
|
|
42193
42186
|
type: data.type,
|
|
42194
42187
|
details: data.details,
|
|
42195
42188
|
});
|
|
@@ -42293,11 +42286,13 @@ class HlsPlayback extends BasePlayback {
|
|
|
42293
42286
|
this._playbackType = (data.details.live ? Playback.LIVE : Playback.VOD);
|
|
42294
42287
|
this._onLevelUpdated(evt, data);
|
|
42295
42288
|
// Live stream subtitle tracks detection hack (may not immediately available)
|
|
42296
|
-
if (
|
|
42297
|
-
|
|
42298
|
-
|
|
42299
|
-
|
|
42300
|
-
|
|
42289
|
+
// if (
|
|
42290
|
+
// this._ccTracksUpdated &&
|
|
42291
|
+
// this._playbackType === Playback.LIVE &&
|
|
42292
|
+
// this.hasClosedCaptionsTracks
|
|
42293
|
+
// ) {
|
|
42294
|
+
// this._onSubtitleLoaded()
|
|
42295
|
+
// }
|
|
42301
42296
|
if (prevPlaybackType !== this._playbackType) {
|
|
42302
42297
|
this._updateSettings();
|
|
42303
42298
|
}
|
|
@@ -42450,16 +42445,18 @@ class HlsPlayback extends BasePlayback {
|
|
|
42450
42445
|
_onFragmentLoaded(evt, data) {
|
|
42451
42446
|
this.trigger(Events$1.PLAYBACK_FRAGMENT_LOADED, data);
|
|
42452
42447
|
}
|
|
42453
|
-
_onSubtitleLoaded() {
|
|
42454
|
-
|
|
42455
|
-
|
|
42456
|
-
|
|
42457
|
-
|
|
42458
|
-
|
|
42459
|
-
|
|
42460
|
-
|
|
42461
|
-
|
|
42462
|
-
|
|
42448
|
+
// _onSubtitleLoaded() {
|
|
42449
|
+
// trace(`${T} _onSubtitleLoaded`)
|
|
42450
|
+
// // This event may be triggered multiple times
|
|
42451
|
+
// // Setup CC only once (disable CC by default)
|
|
42452
|
+
// if (!this._ccIsSetup) {
|
|
42453
|
+
// this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)
|
|
42454
|
+
// const trackId =
|
|
42455
|
+
// this._playbackType === Playback.LIVE ? -1 : this.closedCaptionsTrackId
|
|
42456
|
+
// this.closedCaptionsTrackId = trackId
|
|
42457
|
+
// this._ccIsSetup = true
|
|
42458
|
+
// }
|
|
42459
|
+
// }
|
|
42463
42460
|
_onLevelSwitch(evt, data) {
|
|
42464
42461
|
if (!this.levels.length) {
|
|
42465
42462
|
this._fillLevels();
|
|
@@ -42546,7 +42543,6 @@ function toClapprTrack(t) {
|
|
|
42546
42543
|
};
|
|
42547
42544
|
}
|
|
42548
42545
|
|
|
42549
|
-
const T$b = 'playback.html5_video';
|
|
42550
42546
|
const STALL_TIMEOUT = 15000;
|
|
42551
42547
|
class HTML5Video extends BasePlayback {
|
|
42552
42548
|
stallTimerId = null;
|
|
@@ -42554,9 +42550,6 @@ class HTML5Video extends BasePlayback {
|
|
|
42554
42550
|
* @internal
|
|
42555
42551
|
*/
|
|
42556
42552
|
createError(errorData, options) {
|
|
42557
|
-
trace(`${T$b} createError`, {
|
|
42558
|
-
errorData: { ...errorData },
|
|
42559
|
-
});
|
|
42560
42553
|
const i18n = this.i18n ||
|
|
42561
42554
|
// @ts-ignore
|
|
42562
42555
|
(this.core && this.core.i18n) ||
|
|
@@ -42580,15 +42573,8 @@ class HTML5Video extends BasePlayback {
|
|
|
42580
42573
|
super._onEnded();
|
|
42581
42574
|
}
|
|
42582
42575
|
_handleBufferingEvents() {
|
|
42583
|
-
trace(`${T$b} _handleBufferingEvents`, {
|
|
42584
|
-
networkState: this.el.networkState,
|
|
42585
|
-
});
|
|
42586
42576
|
if (!this.stallTimerId) {
|
|
42587
42577
|
this.stallTimerId = setTimeout(() => {
|
|
42588
|
-
trace(`${T$b} _handleBufferingEvents stall timeout`, {
|
|
42589
|
-
buffering: this.buffering,
|
|
42590
|
-
ended: this.ended,
|
|
42591
|
-
});
|
|
42592
42578
|
this.stallTimerId = null;
|
|
42593
42579
|
const error = this.createError({
|
|
42594
42580
|
code: PlaybackErrorCode.MediaSourceUnavailable,
|
|
@@ -42671,7 +42657,7 @@ function registerPlaybacks() {
|
|
|
42671
42657
|
Loader.registerPlayback(DashPlayback);
|
|
42672
42658
|
}
|
|
42673
42659
|
|
|
42674
|
-
const T$
|
|
42660
|
+
const T$5 = 'gplayer';
|
|
42675
42661
|
const DEFAULT_OPTIONS = {
|
|
42676
42662
|
autoPlay: false,
|
|
42677
42663
|
debug: 'none',
|
|
@@ -42759,9 +42745,6 @@ class Player {
|
|
|
42759
42745
|
* ```
|
|
42760
42746
|
*/
|
|
42761
42747
|
attachTo(playerElement) {
|
|
42762
|
-
trace(`${T$a} attachTo`, {
|
|
42763
|
-
player: !!this.player,
|
|
42764
|
-
});
|
|
42765
42748
|
assert.ok(!this.player, 'Player already initialized');
|
|
42766
42749
|
assert.ok(playerElement, 'Player container element is required');
|
|
42767
42750
|
if (this.config.debug === 'all' || this.config.debug === 'clappr') {
|
|
@@ -42769,9 +42752,6 @@ class Player {
|
|
|
42769
42752
|
}
|
|
42770
42753
|
const coreOpts = this.buildCoreOptions(playerElement);
|
|
42771
42754
|
const { core, container } = Player.getRegisteredPlugins();
|
|
42772
|
-
trace(`${T$a} init`, {
|
|
42773
|
-
registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.prototype.name),
|
|
42774
|
-
});
|
|
42775
42755
|
coreOpts.plugins = {
|
|
42776
42756
|
core: Object.values(core),
|
|
42777
42757
|
container: Object.values(container),
|
|
@@ -42783,9 +42763,6 @@ class Player {
|
|
|
42783
42763
|
* Destroys the player, releasing all resources and unmounting its UI from the DOM.
|
|
42784
42764
|
*/
|
|
42785
42765
|
destroy() {
|
|
42786
|
-
trace(`${T$a} destroy`, {
|
|
42787
|
-
player: !!this.player,
|
|
42788
|
-
});
|
|
42789
42766
|
if (this.player) {
|
|
42790
42767
|
this.player.destroy();
|
|
42791
42768
|
this.player = null;
|
|
@@ -42970,12 +42947,6 @@ class Player {
|
|
|
42970
42947
|
this.config = $.extend(true, this.config, config);
|
|
42971
42948
|
}
|
|
42972
42949
|
initPlayer(coreOptions) {
|
|
42973
|
-
trace(`${T$a} initPlayer`, {
|
|
42974
|
-
autoPlay: coreOptions.autoPlay,
|
|
42975
|
-
sources: coreOptions.sources,
|
|
42976
|
-
player: !!this.player,
|
|
42977
|
-
// TODO selected options
|
|
42978
|
-
});
|
|
42979
42950
|
const player = new Player$1(coreOptions);
|
|
42980
42951
|
this.player = player;
|
|
42981
42952
|
this.bindCoreListeners();
|
|
@@ -43010,7 +42981,7 @@ class Player {
|
|
|
43010
42981
|
// TODO test
|
|
43011
42982
|
events = {
|
|
43012
42983
|
onReady: () => {
|
|
43013
|
-
trace(`${T$
|
|
42984
|
+
trace(`${T$5} onReady`, {
|
|
43014
42985
|
ready: this.ready,
|
|
43015
42986
|
});
|
|
43016
42987
|
if (this.ready) {
|
|
@@ -43100,12 +43071,6 @@ class Player {
|
|
|
43100
43071
|
assert.ok(this.player, 'Player is not initialized');
|
|
43101
43072
|
const core = this.player.core;
|
|
43102
43073
|
core.on(Events$1.CORE_SCREEN_ORIENTATION_CHANGED, ({ orientation }) => {
|
|
43103
|
-
trace(`${T$a} on CORE_SCREEN_ORIENTATION_CHANGED`, {
|
|
43104
|
-
rootNode: {
|
|
43105
|
-
width: this.rootNode?.clientWidth,
|
|
43106
|
-
height: this.rootNode?.clientHeight,
|
|
43107
|
-
},
|
|
43108
|
-
});
|
|
43109
43074
|
if (Browser.isiOS && this.rootNode) {
|
|
43110
43075
|
core?.resize({
|
|
43111
43076
|
width: this.rootNode.clientWidth,
|
|
@@ -43447,9 +43412,10 @@ const INITIAL_SETTINGS = {
|
|
|
43447
43412
|
default: [],
|
|
43448
43413
|
seekEnabled: false,
|
|
43449
43414
|
};
|
|
43415
|
+
// const T = 'plugins.media_control'
|
|
43450
43416
|
/**
|
|
43451
43417
|
* Extended events for the {@link MediaControl} plugin
|
|
43452
|
-
* @
|
|
43418
|
+
* @public
|
|
43453
43419
|
*/
|
|
43454
43420
|
var ExtendedEvents;
|
|
43455
43421
|
(function (ExtendedEvents) {
|
|
@@ -43533,7 +43499,7 @@ class MediaControl extends UICorePlugin {
|
|
|
43533
43499
|
}
|
|
43534
43500
|
/**
|
|
43535
43501
|
* @returns Default media control layout settings
|
|
43536
|
-
* @
|
|
43502
|
+
* @remarks
|
|
43537
43503
|
* The method can be used to change the default dashboard layout, for example, removing the standard UI elements
|
|
43538
43504
|
* @example
|
|
43539
43505
|
* ```ts
|
|
@@ -44867,11 +44833,11 @@ const templateHtml$2 = "<div class=\"big-mute-icon-wrapper\" data-big-mute id=\"
|
|
|
44867
44833
|
|
|
44868
44834
|
insertStyle(".big-mute-icon-wrapper[data-big-mute] {\n position: absolute;\n z-index: 9998;\n background-color: transparent;\n display: flex;\n justify-content: center;\n width: 100%;\n height: calc(100% - 50px);\n margin: 0 auto;\n opacity: 0.75;\n transition: opacity 0.1s ease;\n pointer-events: auto;\n}\n.big-mute-icon-wrapper[data-big-mute].hide {\n display: none;\n}\n.big-mute-icon-wrapper[data-big-mute]:hover {\n cursor: pointer;\n}\n\n.big-mute-icon[data-big-mute-icon] {\n display: flex;\n align-items: center;\n justify-content: center;\n align-self: center;\n width: 120px;\n height: 120px;\n border: 2px solid white;\n border-radius: 50%;\n filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)\";\n filter: alpha(opacity=60);\n opacity: 1;\n box-shadow: 0 0 1px 0 white;\n background: rgba(240, 243, 247, 0.9411764706);\n z-index: 10000;\n}\n.big-mute-icon[data-big-mute-icon] svg {\n margin-left: 5px;\n width: 80px;\n height: 80px;\n}\n.big-mute-icon[data-big-mute-icon] svg path {\n fill: #1f1e1e !important;\n}\n.big-mute-icon[data-big-mute-icon]:hover {\n background: rgba(240, 243, 247, 0.8784313725);\n}\n.big-mute-icon[data-big-mute-icon]:hover svg path {\n fill: #151515 !important;\n}");
|
|
44869
44835
|
|
|
44870
|
-
const T$
|
|
44836
|
+
const T$4 = 'plugins.big_mute_button';
|
|
44871
44837
|
// TODO rewrite as a container plugin
|
|
44872
44838
|
/**
|
|
44873
44839
|
* `PLUGIN` that displays a big mute button over the video when it's being played muted.
|
|
44874
|
-
* @
|
|
44840
|
+
* @public
|
|
44875
44841
|
* @remarks
|
|
44876
44842
|
* When pressed, it unmutes the video.
|
|
44877
44843
|
* @example
|
|
@@ -44930,7 +44896,7 @@ class BigMuteButton extends UICorePlugin {
|
|
|
44930
44896
|
if (autoPlay) {
|
|
44931
44897
|
this.autoPlay = true;
|
|
44932
44898
|
}
|
|
44933
|
-
trace(`${T$
|
|
44899
|
+
trace(`${T$4} onPlay`, {
|
|
44934
44900
|
autoPlay: this.autoPlay});
|
|
44935
44901
|
if (this.autoPlay && !wasMuted && volume === 0) {
|
|
44936
44902
|
this.mount();
|
|
@@ -45013,10 +44979,11 @@ const gearIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"n
|
|
|
45013
44979
|
const gearHdIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_28_1567)\">\n <path\n d=\"M19.14 12.94C19.18 12.64 19.2 12.33 19.2 12C19.2 11.68 19.18 11.36 19.13 11.06L21.16 9.47999C21.34 9.33999 21.39 9.06999 21.28 8.86999L19.36 5.54999C19.24 5.32999 18.99 5.25999 18.77 5.32999L16.38 6.28999C15.88 5.90999 15.35 5.58999 14.76 5.34999L14.4 2.80999C14.36 2.56999 14.16 2.39999 13.92 2.39999H10.08C9.83999 2.39999 9.64999 2.56999 9.60999 2.80999L9.24999 5.34999C8.65999 5.58999 8.11999 5.91999 7.62999 6.28999L5.23999 5.32999C5.01999 5.24999 4.76999 5.32999 4.64999 5.54999L2.73999 8.86999C2.61999 9.07999 2.65999 9.33999 2.85999 9.47999L4.88999 11.06C4.83999 11.36 4.79999 11.69 4.79999 12C4.79999 12.31 4.81999 12.64 4.86999 12.94L2.83999 14.52C2.65999 14.66 2.60999 14.93 2.71999 15.13L4.63999 18.45C4.75999 18.67 5.00999 18.74 5.22999 18.67L7.61999 17.71C8.11999 18.09 8.64999 18.41 9.23999 18.65L9.59999 21.19C9.64999 21.43 9.83999 21.6 10.08 21.6H13.92C14.16 21.6 14.36 21.43 14.39 21.19L14.75 18.65C15.34 18.41 15.88 18.09 16.37 17.71L18.76 18.67C18.98 18.75 19.23 18.67 19.35 18.45L21.27 15.13C21.39 14.91 21.34 14.66 21.15 14.52L19.14 12.94ZM12 15.6C10.02 15.6 8.39999 13.98 8.39999 12C8.39999 10.02 10.02 8.39999 12 8.39999C13.98 8.39999 15.6 10.02 15.6 12C15.6 13.98 13.98 15.6 12 15.6Z\"\n fill=\"#C9C9C9\"/>\n <rect x=\"13\" width=\"11\" height=\"7\" rx=\"1\" fill=\"#F6413B\"/>\n <path\n d=\"M14.6962 6V1.63636H15.3546V3.53267H17.53V1.63636H18.1905V6H17.53V4.0973H15.3546V6H14.6962ZM20.562 6H19.1493V1.63636H20.6067C21.0343 1.63636 21.4015 1.72372 21.7083 1.89844C22.0151 2.07173 22.2502 2.32102 22.4135 2.64631C22.5783 2.97017 22.6607 3.35866 22.6607 3.81179C22.6607 4.26634 22.5776 4.65696 22.4114 4.98366C22.2466 5.31037 22.008 5.56179 21.6955 5.73793C21.383 5.91264 21.0051 6 20.562 6ZM19.8077 5.42472H20.5257C20.8581 5.42472 21.1344 5.36222 21.3546 5.23722C21.5748 5.1108 21.7395 4.92827 21.8489 4.68963C21.9583 4.44957 22.013 4.15696 22.013 3.81179C22.013 3.46946 21.9583 3.17898 21.8489 2.94034C21.7409 2.7017 21.5797 2.5206 21.3652 2.39702C21.1507 2.27344 20.8844 2.21165 20.5662 2.21165H19.8077V5.42472Z\"\n fill=\"#C9C9C9\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_28_1567\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n</svg>\n";
|
|
45014
44980
|
|
|
45015
44981
|
const VERSION$5 = '2.19.12';
|
|
44982
|
+
// const T = 'plugins.bottom_gear'
|
|
45016
44983
|
const MENU_BACKLINK_HEIGHT = 44;
|
|
45017
44984
|
/**
|
|
45018
44985
|
* Events triggered by the plugin
|
|
45019
|
-
* @
|
|
44986
|
+
* @public
|
|
45020
44987
|
*/
|
|
45021
44988
|
var GearEvents;
|
|
45022
44989
|
(function (GearEvents) {
|
|
@@ -45027,7 +44994,7 @@ var GearEvents;
|
|
|
45027
44994
|
})(GearEvents || (GearEvents = {}));
|
|
45028
44995
|
/**
|
|
45029
44996
|
* `PLUGIN` that adds a button to extend the media controls UI with extra options.
|
|
45030
|
-
* @
|
|
44997
|
+
* @public
|
|
45031
44998
|
* @remarks
|
|
45032
44999
|
* The plugin renders small gear icon to the right of the media controls.
|
|
45033
45000
|
* It provides a base for attaching custom settings UI in the gear menu
|
|
@@ -45281,7 +45248,7 @@ class BottomGear extends UICorePlugin {
|
|
|
45281
45248
|
}
|
|
45282
45249
|
|
|
45283
45250
|
/**
|
|
45284
|
-
* @
|
|
45251
|
+
* @public
|
|
45285
45252
|
*/
|
|
45286
45253
|
var ClapprStatsChronograph;
|
|
45287
45254
|
(function (ClapprStatsChronograph) {
|
|
@@ -45293,7 +45260,7 @@ var ClapprStatsChronograph;
|
|
|
45293
45260
|
// Latency = 'latency',
|
|
45294
45261
|
})(ClapprStatsChronograph || (ClapprStatsChronograph = {}));
|
|
45295
45262
|
/**
|
|
45296
|
-
* @
|
|
45263
|
+
* @public
|
|
45297
45264
|
*/
|
|
45298
45265
|
var ClapprStatsCounter;
|
|
45299
45266
|
(function (ClapprStatsCounter) {
|
|
@@ -45310,7 +45277,7 @@ var ClapprStatsCounter;
|
|
|
45310
45277
|
ClapprStatsCounter["DvrUsage"] = "dvrUsage";
|
|
45311
45278
|
})(ClapprStatsCounter || (ClapprStatsCounter = {}));
|
|
45312
45279
|
/**
|
|
45313
|
-
* @
|
|
45280
|
+
* @public
|
|
45314
45281
|
*/
|
|
45315
45282
|
var ClapprStatsEvents;
|
|
45316
45283
|
(function (ClapprStatsEvents) {
|
|
@@ -45390,7 +45357,7 @@ const CMCD_KEYS = [
|
|
|
45390
45357
|
// const T = 'plugins.cmcd'
|
|
45391
45358
|
/**
|
|
45392
45359
|
* A `PLUGIN` that configures {@link https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf | CMCD} for playback
|
|
45393
|
-
* @
|
|
45360
|
+
* @public
|
|
45394
45361
|
* @remarks
|
|
45395
45362
|
* Configuration options - {@link CmcdConfigOptions}.
|
|
45396
45363
|
* @example
|
|
@@ -47605,9 +47572,10 @@ const PLAYBACK_NAMES = {
|
|
|
47605
47572
|
hls: 'HLS.js',
|
|
47606
47573
|
html5_video: 'Native',
|
|
47607
47574
|
};
|
|
47575
|
+
// const T = 'plugins.nerd_stats'
|
|
47608
47576
|
/**
|
|
47609
47577
|
* `PLUGIN` that displays useful statistics regarding the playback as well as the network quality estimation.
|
|
47610
|
-
* @
|
|
47578
|
+
* @public
|
|
47611
47579
|
*
|
|
47612
47580
|
* @remarks
|
|
47613
47581
|
* Depends on:
|
|
@@ -47989,9 +47957,10 @@ function newMetrics() {
|
|
|
47989
47957
|
// Copyright 2014 Globo.com Player authors. All rights reserved.
|
|
47990
47958
|
// Use of this source code is governed by a BSD-style
|
|
47991
47959
|
// license that can be found at https://github.com/clappr/clappr-plugins/blob/master/LICENSE.
|
|
47960
|
+
// const T = 'plugins.click_to_pause'
|
|
47992
47961
|
/**
|
|
47993
47962
|
* A small `PLUGIN` that toggles the playback state on click over the video container
|
|
47994
|
-
* @
|
|
47963
|
+
* @public
|
|
47995
47964
|
*/
|
|
47996
47965
|
class ClickToPause extends ContainerPlugin {
|
|
47997
47966
|
pointerEnabled = false;
|
|
@@ -48100,7 +48069,7 @@ const CLAPPR_VERSION = '0.11.4';
|
|
|
48100
48069
|
const COMPACT_WIDTH = 495;
|
|
48101
48070
|
/**
|
|
48102
48071
|
* `PLUGIN` that allows marking up the timeline of the video
|
|
48103
|
-
* @
|
|
48072
|
+
* @public
|
|
48104
48073
|
* @remarks
|
|
48105
48074
|
* The plugin decorates the seekbar with notches to indicate the clips of the video and displays current clip text in the left panel
|
|
48106
48075
|
*
|
|
@@ -48383,10 +48352,11 @@ const dvrHTML = "<div class=\"live-info\" id=\"gplayer-mc-live\"><%= i18n.t('liv
|
|
|
48383
48352
|
|
|
48384
48353
|
insertStyle(".dvr-controls {\n --disabled-opacity: 0.3;\n --circle-radius: 5px;\n display: flex;\n align-items: center;\n color: var(--player-dvr-color);\n font-size: 10px;\n font-weight: 500;\n height: var(--bottom-panel);\n line-height: var(--bottom-panel);\n margin-left: 0;\n}\n.dvr-controls .live-info,\n.dvr-controls .live-button {\n font-size: 14px;\n font-weight: 500;\n margin-left: 20px;\n letter-spacing: 0.8px;\n text-transform: uppercase;\n}\n.dvr-controls .live-info::before,\n.dvr-controls .live-button::before {\n margin-right: 8px;\n content: \"\";\n display: inline-block;\n position: relative;\n width: calc(var(--circle-radius) * 2);\n height: calc(var(--circle-radius) * 2);\n border-radius: var(--circle-radius);\n background-color: var(--player-dvr-color);\n}\n.dvr-controls.disabled {\n opacity: var(--disabled-opacity);\n}\n.dvr-controls.disabled:before {\n background-color: var(--player-dvr-color);\n}\n.dvr-controls .live-info {\n text-transform: uppercase;\n color: #fffffe;\n}\n.dvr-controls .live-info::before {\n background-color: #ed4f4a;\n}\n.dvr-controls .live-button {\n cursor: pointer;\n outline: none;\n border: 0;\n color: var(--player-dvr-color);\n background-color: transparent;\n padding: 0;\n opacity: 0.7;\n transition: all 0.1s ease;\n}\n.dvr-controls .live-button:hover {\n opacity: 1;\n text-shadow: rgba(255, 255, 255, 0.75) 0 0 5px;\n}");
|
|
48385
48354
|
|
|
48355
|
+
// const T = 'plugins.dvr_controls'
|
|
48386
48356
|
/**
|
|
48387
48357
|
* `PLUGIN` that adds the DVR controls to the media control UI
|
|
48388
48358
|
*
|
|
48389
|
-
* @
|
|
48359
|
+
* @public
|
|
48390
48360
|
*
|
|
48391
48361
|
* @remarks
|
|
48392
48362
|
* Depends on:
|
|
@@ -48499,7 +48469,6 @@ const templateHtml = "<div class=\"player-error-screen__content\" data-error-scr
|
|
|
48499
48469
|
|
|
48500
48470
|
insertStyle("div.player-error-screen, [data-player] div.player-error-screen {\n color: #CCCACA;\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n background-color: rgba(0, 0, 0, 0.7);\n z-index: 2000;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\ndiv.player-error-screen__content[data-error-screen], [data-player] div.player-error-screen__content[data-error-screen] {\n font-size: 14px;\n color: #CCCACA;\n margin-top: 45px;\n}\ndiv.player-error-screen__title[data-error-screen], [data-player] div.player-error-screen__title[data-error-screen] {\n font-weight: bold;\n line-height: 30px;\n font-size: 18px;\n}\ndiv.player-error-screen__message[data-error-screen], [data-player] div.player-error-screen__message[data-error-screen] {\n width: 90%;\n margin: 0 auto;\n}\ndiv.player-error-screen__code[data-error-screen], [data-player] div.player-error-screen__code[data-error-screen] {\n font-size: 13px;\n margin-top: 15px;\n}\ndiv.player-error-screen__reload, [data-player] div.player-error-screen__reload {\n cursor: pointer;\n width: 30px;\n margin: 15px auto 0;\n}");
|
|
48501
48471
|
|
|
48502
|
-
const T$8 = 'plugins.error_screen';
|
|
48503
48472
|
/**
|
|
48504
48473
|
* `PLUGIN` that displays fatal errors nicely in the overlay on top of the player.
|
|
48505
48474
|
* @public
|
|
@@ -48575,9 +48544,6 @@ class ErrorScreen extends UICorePlugin {
|
|
|
48575
48544
|
}, 0);
|
|
48576
48545
|
}
|
|
48577
48546
|
onActiveContainerChanged() {
|
|
48578
|
-
trace(`${T$8} onActiveContainerChanged`, {
|
|
48579
|
-
reloading: this.core.options.reloading,
|
|
48580
|
-
});
|
|
48581
48547
|
this.err = null;
|
|
48582
48548
|
this.listenTo(this.core.activeContainer.playback, Events$1.PLAYBACK_PLAY, this.onPlay);
|
|
48583
48549
|
if (this.core.options.reloading) {
|
|
@@ -48634,16 +48600,16 @@ const buttonHtml$2 = "<button class=\"gplayer-lite-btn gcore-skin-button-color\"
|
|
|
48634
48600
|
insertStyle(".media-control-skin-1 .media-control-item.media-control-pip {\n order: 95;\n}\n.media-control-skin-1 .media-control-item.media-control-pip button {\n height: 20px;\n}\n.media-control-skin-1 .media-control-item.media-control-pip button svg {\n height: 20px;\n}");
|
|
48635
48601
|
|
|
48636
48602
|
const VERSION$3 = '0.0.1';
|
|
48637
|
-
const T$
|
|
48603
|
+
const T$3 = `plugins.pip`;
|
|
48638
48604
|
/**
|
|
48639
|
-
* `PLUGIN` that enables picture
|
|
48640
|
-
* @
|
|
48605
|
+
* `PLUGIN` that enables picture-in-picture mode.
|
|
48606
|
+
* @public
|
|
48641
48607
|
* @remarks
|
|
48642
48608
|
* Depends on:
|
|
48643
48609
|
*
|
|
48644
48610
|
* - {@link MediaControl}
|
|
48645
48611
|
*
|
|
48646
|
-
* It renders a button to toggle picture
|
|
48612
|
+
* It renders a button to toggle picture-in-picture mode in the media control UI.
|
|
48647
48613
|
*/
|
|
48648
48614
|
class PictureInPicture extends UICorePlugin {
|
|
48649
48615
|
/**
|
|
@@ -48717,7 +48683,7 @@ class PictureInPicture extends UICorePlugin {
|
|
|
48717
48683
|
}
|
|
48718
48684
|
}
|
|
48719
48685
|
requestPictureInPicture() {
|
|
48720
|
-
trace(`${T$
|
|
48686
|
+
trace(`${T$3} requestPictureInPicture`, {
|
|
48721
48687
|
videoElement: !!this.videoElement,
|
|
48722
48688
|
});
|
|
48723
48689
|
this.videoElement.requestPictureInPicture();
|
|
@@ -48749,7 +48715,7 @@ const DEFAULT_PLAYBACK_RATES = [
|
|
|
48749
48715
|
{ value: 2.0, label: '2x' },
|
|
48750
48716
|
];
|
|
48751
48717
|
const DEFAULT_PLAYBACK_RATE = 1;
|
|
48752
|
-
const T$
|
|
48718
|
+
const T$2 = 'plugins.playback_rate';
|
|
48753
48719
|
/**
|
|
48754
48720
|
* `PLUGIN` that allows changing the playback speed of the video.
|
|
48755
48721
|
* @beta
|
|
@@ -48856,7 +48822,7 @@ class PlaybackRate extends UICorePlugin {
|
|
|
48856
48822
|
this.mount();
|
|
48857
48823
|
}
|
|
48858
48824
|
mount() {
|
|
48859
|
-
trace(`${T$
|
|
48825
|
+
trace(`${T$2} mount`, {
|
|
48860
48826
|
shouldMount: this.shouldMount(),
|
|
48861
48827
|
});
|
|
48862
48828
|
if (!this.shouldMount()) {
|
|
@@ -48873,7 +48839,7 @@ class PlaybackRate extends UICorePlugin {
|
|
|
48873
48839
|
})));
|
|
48874
48840
|
}
|
|
48875
48841
|
onMetaDataLoaded() {
|
|
48876
|
-
trace(`${T$
|
|
48842
|
+
trace(`${T$2} onMetaDataLoaded`, {
|
|
48877
48843
|
playbackType: this.core.activePlayback.getPlaybackType(),
|
|
48878
48844
|
dvrEnabled: this.core.activePlayback.dvrEnabled,
|
|
48879
48845
|
});
|
|
@@ -48895,16 +48861,12 @@ class PlaybackRate extends UICorePlugin {
|
|
|
48895
48861
|
this.core.activePlayback?.setPlaybackRate(this.selectedRate);
|
|
48896
48862
|
}
|
|
48897
48863
|
else {
|
|
48898
|
-
trace(`${T$
|
|
48864
|
+
trace(`${T$2} onPlaybackRateChange not steering to the selected rate, it is seemingly a catchup algorithm working`, {
|
|
48899
48865
|
selectedRate: this.selectedRate,
|
|
48900
48866
|
});
|
|
48901
48867
|
}
|
|
48902
48868
|
}
|
|
48903
48869
|
shouldMount() {
|
|
48904
|
-
trace(`${T$6} shouldMount`, {
|
|
48905
|
-
playbackType: this.core.activePlayback?.getPlaybackType(),
|
|
48906
|
-
dvrEnabled: this.core.activePlayback?.dvrEnabled,
|
|
48907
|
-
});
|
|
48908
48870
|
if (!this.core.activePlayback || !this.metadataLoaded) {
|
|
48909
48871
|
return false;
|
|
48910
48872
|
}
|
|
@@ -48918,9 +48880,6 @@ class PlaybackRate extends UICorePlugin {
|
|
|
48918
48880
|
* @internal
|
|
48919
48881
|
*/
|
|
48920
48882
|
render() {
|
|
48921
|
-
trace(`${T$6} render`, {
|
|
48922
|
-
shouldMount: this.shouldMount(),
|
|
48923
|
-
});
|
|
48924
48883
|
this.$el.html(PlaybackRate.listTemplate({
|
|
48925
48884
|
arrowLeftIcon,
|
|
48926
48885
|
checkIcon,
|
|
@@ -48964,13 +48923,13 @@ class PlaybackRate extends UICorePlugin {
|
|
|
48964
48923
|
}
|
|
48965
48924
|
}
|
|
48966
48925
|
syncRate() {
|
|
48967
|
-
trace(`${T$
|
|
48926
|
+
trace(`${T$2} syncRate`, {
|
|
48968
48927
|
selectedRate: this.selectedRate,
|
|
48969
48928
|
});
|
|
48970
48929
|
this.core.activePlayback?.setPlaybackRate(this.selectedRate);
|
|
48971
48930
|
}
|
|
48972
48931
|
resetPlaybackRate() {
|
|
48973
|
-
trace(`${T$
|
|
48932
|
+
trace(`${T$2} resetPlaybackRate`, {
|
|
48974
48933
|
selectedRate: this.selectedRate,
|
|
48975
48934
|
});
|
|
48976
48935
|
this.core.activePlayback?.setPlaybackRate(DEFAULT_PLAYBACK_RATE);
|
|
@@ -49005,7 +48964,7 @@ class PlaybackRate extends UICorePlugin {
|
|
|
49005
48964
|
?.label || `x${rate}`);
|
|
49006
48965
|
}
|
|
49007
48966
|
highlightCurrentRate() {
|
|
49008
|
-
trace(`${T$
|
|
48967
|
+
trace(`${T$2} highlightCurrentRate`, {
|
|
49009
48968
|
selectedRate: this.selectedRate,
|
|
49010
48969
|
});
|
|
49011
48970
|
this.allRateElements().removeClass('current');
|
|
@@ -49016,9 +48975,6 @@ class PlaybackRate extends UICorePlugin {
|
|
|
49016
48975
|
.addClass('gcore-skin-active');
|
|
49017
48976
|
}
|
|
49018
48977
|
updateGearOptionLabel() {
|
|
49019
|
-
trace(`${T$6} updateGearOptionLabel`, {
|
|
49020
|
-
selectedRate: this.selectedRate,
|
|
49021
|
-
});
|
|
49022
48978
|
this.mount();
|
|
49023
48979
|
}
|
|
49024
48980
|
}
|
|
@@ -49030,10 +48986,10 @@ const posterHTML = "<div class=\"play-wrapper\" id=\"gplayer-poster\">\n <div
|
|
|
49030
48986
|
//Copyright 2014 Globo.com Player authors. All rights reserved.
|
|
49031
48987
|
// Use of this source code is governed by a BSD-style
|
|
49032
48988
|
// license that can be found in the LICENSE file.
|
|
49033
|
-
const T
|
|
48989
|
+
// const T = 'plugins.poster'
|
|
49034
48990
|
/**
|
|
49035
48991
|
* `PLUGIN` that displays a poster image in the background and a big play button on top when playback is stopped
|
|
49036
|
-
* @
|
|
48992
|
+
* @public
|
|
49037
48993
|
* @remarks
|
|
49038
48994
|
* When the playback is stopped or not yet started, the media control UI is disabled and hidden.
|
|
49039
48995
|
* Media control gets activated once the metadata is loaded after playback is initiated.
|
|
@@ -49134,9 +49090,6 @@ class Poster extends UIContainerPlugin {
|
|
|
49134
49090
|
super.disable();
|
|
49135
49091
|
}
|
|
49136
49092
|
onError(error) {
|
|
49137
|
-
trace(`${T$5} onError`, {
|
|
49138
|
-
enabled: this.enabled,
|
|
49139
|
-
});
|
|
49140
49093
|
if (this.hasFatalError) {
|
|
49141
49094
|
return;
|
|
49142
49095
|
}
|
|
@@ -49267,11 +49220,11 @@ const hdIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"non
|
|
|
49267
49220
|
|
|
49268
49221
|
insertStyle(".quality-levels li.disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n.quality-levels li.current {\n background-color: #000;\n}");
|
|
49269
49222
|
|
|
49270
|
-
const T
|
|
49223
|
+
// const T = 'plugins.quality_levels'
|
|
49271
49224
|
const VERSION$2 = 'v2.22.5';
|
|
49272
49225
|
/**
|
|
49273
49226
|
* `PLUGIN` that provides a UI to select the desired quality level of the playback.
|
|
49274
|
-
* @
|
|
49227
|
+
* @public
|
|
49275
49228
|
*
|
|
49276
49229
|
* @remarks
|
|
49277
49230
|
* Depends on:
|
|
@@ -49510,9 +49463,6 @@ class QualityLevels extends UICorePlugin {
|
|
|
49510
49463
|
this.highlightCurrentLevel();
|
|
49511
49464
|
}
|
|
49512
49465
|
highlightCurrentLevel() {
|
|
49513
|
-
trace(`${T$4} highlightCurrentLevel`, {
|
|
49514
|
-
selectedLevelId: this.selectedLevelId,
|
|
49515
|
-
});
|
|
49516
49466
|
this.allLevelElements()
|
|
49517
49467
|
.removeClass('current')
|
|
49518
49468
|
.find('a')
|
|
@@ -49538,7 +49488,7 @@ insertStyle(".seek-time {\n position: absolute;\n white-space: nowrap;\n heig
|
|
|
49538
49488
|
// Use of this source code is governed by a BSD-style
|
|
49539
49489
|
// license that can be found at https://github.com/clappr/clappr-plugins/blob/master/LICENSE
|
|
49540
49490
|
const { formatTime } = Utils;
|
|
49541
|
-
const T
|
|
49491
|
+
// const T = 'plugins.seek_time'
|
|
49542
49492
|
/**
|
|
49543
49493
|
* `PLUGIN` that adds a seek time indicator when the mouse pointer is over the seek bar.
|
|
49544
49494
|
* @beta
|
|
@@ -49597,9 +49547,6 @@ class SeekTime extends UICorePlugin {
|
|
|
49597
49547
|
showTime(event) {
|
|
49598
49548
|
this.hoveringOverSeekBar = true;
|
|
49599
49549
|
this.calculateHoverPosition(event);
|
|
49600
|
-
trace(`${T$3} showTime`, {
|
|
49601
|
-
hoverPosition: this.hoverPosition,
|
|
49602
|
-
});
|
|
49603
49550
|
this.update();
|
|
49604
49551
|
}
|
|
49605
49552
|
hideTime() {
|
|
@@ -49684,10 +49631,10 @@ const pluginHtml$1 = "<div class=\"skip-container\" id=\"mc-skip-container\">\n
|
|
|
49684
49631
|
|
|
49685
49632
|
insertStyle(".container-with-poster-clickable .mc-skip-time {\n height: 0;\n}\n\n.mc-skip-time {\n position: absolute;\n width: 100%;\n height: calc(100% - 50px);\n z-index: 9998;\n background-color: transparent;\n font-family: Roboto, \"Open Sans\", Arial, sans-serif;\n}\n.mc-skip-time .skip-container {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: space-between;\n}\n.mc-skip-time .skip-container .skip-item {\n flex: 1 0 0px;\n height: 100%;\n}");
|
|
49686
49633
|
|
|
49687
|
-
const T
|
|
49634
|
+
// const T = 'plugins.skip_time'
|
|
49688
49635
|
/**
|
|
49689
49636
|
* `PLUGIN` that allows skipping time by tapping on the left or right side of the video.
|
|
49690
|
-
* @
|
|
49637
|
+
* @public
|
|
49691
49638
|
*/
|
|
49692
49639
|
class SkipTime extends UICorePlugin {
|
|
49693
49640
|
get name() {
|
|
@@ -49734,9 +49681,6 @@ class SkipTime extends UICorePlugin {
|
|
|
49734
49681
|
this.position = 'left';
|
|
49735
49682
|
}
|
|
49736
49683
|
handleRewindClicks() {
|
|
49737
|
-
trace(`${T$2} handleRewindClicks`, {
|
|
49738
|
-
position: this.position,
|
|
49739
|
-
});
|
|
49740
49684
|
if (this.core.getPlaybackType() === Playback.LIVE &&
|
|
49741
49685
|
!this.container.isDvrEnabled()) {
|
|
49742
49686
|
this.toggleFullscreen();
|
|
@@ -49745,9 +49689,6 @@ class SkipTime extends UICorePlugin {
|
|
|
49745
49689
|
this.handleSkip();
|
|
49746
49690
|
}
|
|
49747
49691
|
handleSkip() {
|
|
49748
|
-
trace(`${T$2} handleSkip`, {
|
|
49749
|
-
position: this.position,
|
|
49750
|
-
});
|
|
49751
49692
|
if (Browser.isMobile) {
|
|
49752
49693
|
if (this.position === 'left') {
|
|
49753
49694
|
const seekPos = this.container.getCurrentTime() - 10;
|
|
@@ -49800,7 +49741,7 @@ insertStyle(".spinner-three-bounce[data-spinner] {\n position: absolute;\n wid
|
|
|
49800
49741
|
// Use of this source code is governed by a BSD-style
|
|
49801
49742
|
// license that can be found in the LICENSE file.
|
|
49802
49743
|
// https://github.com/clappr/clappr-plugins/blob/ffaa9d27005fa5a8a7c243ffc47eb5655b84b371/LICENSE
|
|
49803
|
-
const T
|
|
49744
|
+
// const T = 'plugins.spinner'
|
|
49804
49745
|
/**
|
|
49805
49746
|
* Custom events emitted by the plugin
|
|
49806
49747
|
* @public
|
|
@@ -49873,17 +49814,10 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
49873
49814
|
this._hide();
|
|
49874
49815
|
}
|
|
49875
49816
|
onStop() {
|
|
49876
|
-
trace(`${T$1} onStop`, {
|
|
49877
|
-
hasFatalError: this.hasFatalError,
|
|
49878
|
-
});
|
|
49879
49817
|
this._hide();
|
|
49880
49818
|
}
|
|
49881
49819
|
onError(e) {
|
|
49882
49820
|
this.hasFatalError = e.code === PlaybackErrorCode.MediaSourceUnavailable;
|
|
49883
|
-
trace(`${T$1} onError`, {
|
|
49884
|
-
hasFatalError: this.hasFatalError,
|
|
49885
|
-
error: e.code,
|
|
49886
|
-
});
|
|
49887
49821
|
this._hide();
|
|
49888
49822
|
}
|
|
49889
49823
|
/**
|
|
@@ -49913,9 +49847,6 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
49913
49847
|
}
|
|
49914
49848
|
}
|
|
49915
49849
|
_hide() {
|
|
49916
|
-
trace(`${T$1} _hide`, {
|
|
49917
|
-
userShown: this.userShown,
|
|
49918
|
-
});
|
|
49919
49850
|
if (this.userShown) {
|
|
49920
49851
|
return;
|
|
49921
49852
|
}
|
|
@@ -49930,9 +49861,6 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
49930
49861
|
* @internal
|
|
49931
49862
|
*/
|
|
49932
49863
|
render() {
|
|
49933
|
-
trace(`${T$1} render`, {
|
|
49934
|
-
buffering: this.container.buffering,
|
|
49935
|
-
});
|
|
49936
49864
|
this.$el.html(this.template());
|
|
49937
49865
|
this.el.firstElementChild?.addEventListener('animationiteration', () => {
|
|
49938
49866
|
this.trigger(SpinnerEvents.SYNC);
|
|
@@ -49948,7 +49876,7 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
49948
49876
|
}
|
|
49949
49877
|
}
|
|
49950
49878
|
|
|
49951
|
-
const T = 'plugins.source_controller';
|
|
49879
|
+
const T$1 = 'plugins.source_controller';
|
|
49952
49880
|
const INITIAL_RETRY_DELAY = 1000;
|
|
49953
49881
|
const MAX_RETRY_DELAY = 5000;
|
|
49954
49882
|
const RETRY_DELAY_BLUR = 500;
|
|
@@ -50094,10 +50022,6 @@ class SourceController extends CorePlugin {
|
|
|
50094
50022
|
this.core.getPlugin('error_screen')?.disable(); // TODO test
|
|
50095
50023
|
}
|
|
50096
50024
|
onActiveContainerChanged() {
|
|
50097
|
-
trace(`${T} onActiveContainerChanged`, {
|
|
50098
|
-
retrying: this.active,
|
|
50099
|
-
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
50100
|
-
});
|
|
50101
50025
|
const spinner = this.core.activeContainer?.getPlugin('spinner');
|
|
50102
50026
|
if (spinner) {
|
|
50103
50027
|
this.sync = (cb) => {
|
|
@@ -50115,7 +50039,7 @@ class SourceController extends CorePlugin {
|
|
|
50115
50039
|
}
|
|
50116
50040
|
bindContainerEventListeners() {
|
|
50117
50041
|
this.core.activePlayback.on(Events$1.PLAYBACK_ERROR, (error) => {
|
|
50118
|
-
trace(`${T} on PLAYBACK_ERROR`, {
|
|
50042
|
+
trace(`${T$1} on PLAYBACK_ERROR`, {
|
|
50119
50043
|
error: {
|
|
50120
50044
|
code: error?.code,
|
|
50121
50045
|
description: error?.description,
|
|
@@ -50139,7 +50063,7 @@ class SourceController extends CorePlugin {
|
|
|
50139
50063
|
}
|
|
50140
50064
|
});
|
|
50141
50065
|
this.core.activePlayback.on(Events$1.PLAYBACK_PLAY, () => {
|
|
50142
|
-
trace(`${T} on PLAYBACK_PLAY`, {
|
|
50066
|
+
trace(`${T$1} on PLAYBACK_PLAY`, {
|
|
50143
50067
|
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
50144
50068
|
retrying: this.active,
|
|
50145
50069
|
});
|
|
@@ -50158,7 +50082,7 @@ class SourceController extends CorePlugin {
|
|
|
50158
50082
|
this.sourcesDelay = {};
|
|
50159
50083
|
}
|
|
50160
50084
|
retryPlayback() {
|
|
50161
|
-
trace(`${T} retryPlayback enter`, {
|
|
50085
|
+
trace(`${T$1} retryPlayback enter`, {
|
|
50162
50086
|
currentSourceIndex: this.currentSourceIndex,
|
|
50163
50087
|
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
50164
50088
|
});
|
|
@@ -50171,7 +50095,7 @@ class SourceController extends CorePlugin {
|
|
|
50171
50095
|
this.switching = false;
|
|
50172
50096
|
this.core.load(nextSource.source, nextSource.mimeType);
|
|
50173
50097
|
setTimeout(() => {
|
|
50174
|
-
trace(`${T} retryPlayback playing`, {
|
|
50098
|
+
trace(`${T$1} retryPlayback playing`, {
|
|
50175
50099
|
autoPlay: this.autoPlay,
|
|
50176
50100
|
});
|
|
50177
50101
|
this.core.activeContainer.play({
|
|
@@ -50211,9 +50135,10 @@ const stringHTML = "<div class=\"gplayer-cc-line\" id=\"gplayer-cc-line\">\n <p
|
|
|
50211
50135
|
|
|
50212
50136
|
const VERSION = '2.19.14';
|
|
50213
50137
|
const LOCAL_STORAGE_CC_ID = 'gplayer.plugins.cc.selected';
|
|
50138
|
+
const T = 'plugins.cc';
|
|
50214
50139
|
/**
|
|
50215
50140
|
* `PLUGIN` that provides a UI to select the subtitles when available.
|
|
50216
|
-
* @
|
|
50141
|
+
* @public
|
|
50217
50142
|
*
|
|
50218
50143
|
* @remarks
|
|
50219
50144
|
* The plugin is activated when closed captions tracks are detected in the media source.
|
|
@@ -50224,6 +50149,14 @@ const LOCAL_STORAGE_CC_ID = 'gplayer.plugins.cc.selected';
|
|
|
50224
50149
|
* - {@link MediaControl}
|
|
50225
50150
|
*
|
|
50226
50151
|
* Configuration options - {@link ClosedCaptionsPluginSettings}
|
|
50152
|
+
*
|
|
50153
|
+
* Known issues:
|
|
50154
|
+
*
|
|
50155
|
+
* 1. When media source changes, the subtitles tracks aren't reloaded. Possible solution: use `playback.recycleVideo = false`
|
|
50156
|
+
* {@link PlayerConfig | main config option}, which will force new video element creation every time media source changes.
|
|
50157
|
+
* However, this may lead to other issues, such as autoplay not working (after media source has been changed).
|
|
50158
|
+
* {@link https://github.com/video-dev/hls.js/issues/2198 | related discussion}
|
|
50159
|
+
*
|
|
50227
50160
|
* @example
|
|
50228
50161
|
* ```ts
|
|
50229
50162
|
* import { ClosedCaptions } from '@gcorevideo/player'
|
|
@@ -50332,6 +50265,9 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
50332
50265
|
});
|
|
50333
50266
|
}
|
|
50334
50267
|
onSubtitleAvailable() {
|
|
50268
|
+
trace(`${T} onSubtitleAvailable`, {
|
|
50269
|
+
tracks: this.core.activePlayback.closedCaptionsTracks.length,
|
|
50270
|
+
});
|
|
50335
50271
|
this.applyTracks();
|
|
50336
50272
|
this.mount();
|
|
50337
50273
|
}
|
|
@@ -51080,7 +51016,7 @@ class Thumbnails extends UICorePlugin {
|
|
|
51080
51016
|
|
|
51081
51017
|
/**
|
|
51082
51018
|
* Events emitted by the VolumeFade plugin.
|
|
51083
|
-
* @
|
|
51019
|
+
* @public
|
|
51084
51020
|
*/
|
|
51085
51021
|
var VolumeFadeEvents;
|
|
51086
51022
|
(function (VolumeFadeEvents) {
|