@gcorevideo/player 2.21.3 → 2.21.4
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/assets/audio-selector/style.scss +1 -1
- package/assets/audio-selector/track-selector.ejs +3 -3
- package/assets/bottom-gear/bottomgear.ejs +2 -2
- package/assets/media-control/container.scss +1 -1
- package/assets/media-control/media-control.ejs +1 -6
- package/assets/media-control/media-control.scss +6 -4
- package/assets/media-control/width270.scss +1 -1
- package/assets/media-control/width370.scss +4 -4
- package/assets/playback-rate/button.ejs +2 -2
- package/assets/playback-rate/list.ejs +4 -4
- package/assets/subtitles/combobox.ejs +5 -5
- package/assets/subtitles/string.ejs +1 -1
- package/assets/subtitles/style.scss +2 -2
- package/dist/core.js +2 -1
- package/dist/index.css +972 -967
- package/dist/index.js +126 -106
- package/dist/player.d.ts +141 -119
- package/dist/plugins/index.css +801 -796
- package/dist/plugins/index.js +119 -104
- package/docs/api/player.bottomgear.getelement.md +2 -2
- package/docs/api/player.bottomgear.md +1 -1
- package/docs/api/{player.subtitles.hide.md → player.closedcaptions.hide.md} +2 -2
- package/docs/api/{player.subtitles.md → player.closedcaptions.md} +11 -11
- package/docs/api/{player.subtitles.show.md → player.closedcaptions.show.md} +2 -2
- package/docs/api/player.closedcaptionspluginsettings.md +13 -0
- package/docs/api/player.gearitemelement.md +6 -4
- package/docs/api/player.gearoptionsitem.md +16 -0
- package/docs/api/player.md +48 -12
- package/docs/api/player.mediacontrol.putelement.md +2 -2
- package/docs/api/player.mediacontrolelement.md +1 -1
- package/docs/api/player.playbackrate.md +1 -1
- package/docs/api/player.subtitlespluginsettings.md +18 -0
- package/docs/api/player.texttrackitem.id.md +11 -0
- package/docs/api/player.texttrackitem.md +87 -0
- package/docs/api/player.texttrackitem.name.md +11 -0
- package/docs/api/player.texttrackitem.track.md +11 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.plugins.d.ts +2 -1
- package/lib/index.plugins.d.ts.map +1 -1
- package/lib/index.plugins.js +2 -1
- package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
- package/lib/playback/dash-playback/DashPlayback.js +1 -0
- package/lib/plugins/audio-selector/AudioSelector.d.ts +2 -3
- package/lib/plugins/audio-selector/AudioSelector.d.ts.map +1 -1
- package/lib/plugins/audio-selector/AudioSelector.js +6 -7
- package/lib/plugins/bottom-gear/BottomGear.d.ts +6 -2
- package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.js +2 -1
- package/lib/plugins/media-control/MediaControl.d.ts +5 -5
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +46 -39
- package/lib/plugins/picture-in-picture/PictureInPicture.d.ts +1 -0
- package/lib/plugins/picture-in-picture/PictureInPicture.d.ts.map +1 -1
- package/lib/plugins/picture-in-picture/PictureInPicture.js +4 -4
- package/lib/plugins/playback-rate/PlaybackRate.d.ts +0 -1
- package/lib/plugins/playback-rate/PlaybackRate.d.ts.map +1 -1
- package/lib/plugins/playback-rate/PlaybackRate.js +23 -14
- package/lib/plugins/subtitles/ClosedCaptions.d.ts +118 -0
- package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -0
- package/lib/plugins/subtitles/ClosedCaptions.js +348 -0
- package/lib/plugins/subtitles/Subtitles.d.ts +12 -9
- package/lib/plugins/subtitles/Subtitles.d.ts.map +1 -1
- package/lib/plugins/subtitles/Subtitles.js +31 -32
- package/lib/testUtils.d.ts +22 -18
- package/lib/testUtils.d.ts.map +1 -1
- package/lib/testUtils.js +22 -36
- package/package.json +1 -1
- package/src/index.plugins.ts +2 -1
- package/src/index.ts +1 -1
- package/src/playback/dash-playback/DashPlayback.ts +1 -0
- package/src/plugins/audio-selector/AudioSelector.ts +9 -8
- package/src/plugins/bottom-gear/BottomGear.ts +11 -4
- package/src/plugins/bottom-gear/__tests__/BottomGear.test.ts +1 -1
- package/src/plugins/bottom-gear/__tests__/__snapshots__/BottomGear.test.ts.snap +2 -2
- package/src/plugins/media-control/MediaControl.ts +53 -46
- package/src/plugins/media-control/__tests__/MediaControl.test.ts +43 -0
- package/src/plugins/media-control/__tests__/__snapshots__/MediaControl.test.ts.snap +175 -0
- package/src/plugins/picture-in-picture/PictureInPicture.ts +5 -5
- package/src/plugins/playback-rate/PlaybackRate.ts +142 -100
- package/src/plugins/playback-rate/__tests__/PlaybackRate.test.ts +65 -0
- package/src/plugins/playback-rate/__tests__/__snapshots__/PlaybackRate.test.ts.snap +11 -0
- package/src/plugins/subtitles/{Subtitles.ts → ClosedCaptions.ts} +42 -34
- package/src/plugins/subtitles/__tests__/ClosedCaptions.test.ts +58 -0
- package/src/plugins/subtitles/__tests__/__snapshots__/ClosedCaptions.test.ts.snap +25 -0
- package/src/testUtils.ts +22 -36
- package/temp/player.api.json +269 -89
- package/tsconfig.tsbuildinfo +1 -1
- package/src/plugins/index.ts +0 -39
|
@@ -5,7 +5,7 @@ import '../../../assets/media-control/media-control.scss';
|
|
|
5
5
|
* Media control elements, mount points for additional plugins
|
|
6
6
|
* @beta
|
|
7
7
|
*/
|
|
8
|
-
export type MediaControlElement = '
|
|
8
|
+
export type MediaControlElement = 'audiotracks' | 'clipText' | 'gear' | 'pip' | 'playbackRate' | 'seekBarContainer' | 'cc';
|
|
9
9
|
/**
|
|
10
10
|
* Custom events emitted by the plugins to communicate with one another
|
|
11
11
|
* @beta
|
|
@@ -23,7 +23,6 @@ export declare enum MediaControlEvents {
|
|
|
23
23
|
* The methods exposed are to be used by the other plugins that extend the media control UI.
|
|
24
24
|
*/
|
|
25
25
|
export declare class MediaControl extends UICorePlugin {
|
|
26
|
-
private advertisementPlaying;
|
|
27
26
|
private buttonsColor;
|
|
28
27
|
private currentDurationValue;
|
|
29
28
|
private currentPositionValue;
|
|
@@ -165,7 +164,7 @@ export declare class MediaControl extends UICorePlugin {
|
|
|
165
164
|
*/
|
|
166
165
|
setInitialVolume(): void;
|
|
167
166
|
private onVolumeChanged;
|
|
168
|
-
private
|
|
167
|
+
private onLoadedMetadata;
|
|
169
168
|
private updateVolumeUI;
|
|
170
169
|
private changeTogglePlay;
|
|
171
170
|
private mousemoveOnSeekBar;
|
|
@@ -207,7 +206,7 @@ export declare class MediaControl extends UICorePlugin {
|
|
|
207
206
|
private show;
|
|
208
207
|
private hide;
|
|
209
208
|
private updateCursorStyle;
|
|
210
|
-
private
|
|
209
|
+
private updateSettings;
|
|
211
210
|
private highDefinitionUpdate;
|
|
212
211
|
private createCachedElements;
|
|
213
212
|
/**
|
|
@@ -230,7 +229,7 @@ export declare class MediaControl extends UICorePlugin {
|
|
|
230
229
|
* ```
|
|
231
230
|
*/
|
|
232
231
|
getElement(name: MediaControlElement): ZeptoResult | null;
|
|
233
|
-
putElement(name: MediaControlElement, element:
|
|
232
|
+
putElement(name: MediaControlElement, element: HTMLElement): void;
|
|
234
233
|
/**
|
|
235
234
|
* Get the right panel area to append custom elements to
|
|
236
235
|
* @returns ZeptoSelector of the right panel element
|
|
@@ -275,5 +274,6 @@ export declare class MediaControl extends UICorePlugin {
|
|
|
275
274
|
*/
|
|
276
275
|
disabledControlButton(): void;
|
|
277
276
|
private isSeekEnabledForHtml5Playback;
|
|
277
|
+
private getElementLocation;
|
|
278
278
|
}
|
|
279
279
|
//# sourceMappingURL=MediaControl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,YAAY,EAMZ,IAAI,EACL,MAAM,cAAc,CAAA;AASrB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAG5C,OAAO,kDAAkD,CAAA;AAWzD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,
|
|
1
|
+
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ function orderByOrderPattern(arr, order) {
|
|
|
53
53
|
* The methods exposed are to be used by the other plugins that extend the media control UI.
|
|
54
54
|
*/
|
|
55
55
|
export class MediaControl extends UICorePlugin {
|
|
56
|
-
advertisementPlaying = false
|
|
56
|
+
// private advertisementPlaying = false
|
|
57
57
|
buttonsColor = null;
|
|
58
58
|
currentDurationValue = 0;
|
|
59
59
|
currentPositionValue = 0;
|
|
@@ -75,7 +75,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
75
75
|
lastMouseY = 0;
|
|
76
76
|
persistConfig;
|
|
77
77
|
rendered = false;
|
|
78
|
-
settings = {};
|
|
78
|
+
settings = {}; // TODO & seekEnabled: boolean, ...
|
|
79
79
|
userDisabled = false;
|
|
80
80
|
userKeepVisible = false;
|
|
81
81
|
verticalVolume = false;
|
|
@@ -256,18 +256,16 @@ export class MediaControl extends UICorePlugin {
|
|
|
256
256
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_DBLCLICK, this.toggleFullscreen);
|
|
257
257
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
|
|
258
258
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_PROGRESS, this.updateProgressBar);
|
|
259
|
-
this.listenTo(this.core.activeContainer, Events.CONTAINER_SETTINGSUPDATE, this.
|
|
260
|
-
this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.
|
|
259
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_SETTINGSUPDATE, this.updateSettings);
|
|
260
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.updateSettings);
|
|
261
261
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);
|
|
262
262
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_MEDIACONTROL_DISABLE, this.disable);
|
|
263
263
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_MEDIACONTROL_ENABLE, this.enable);
|
|
264
264
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_ENDED, this.ended);
|
|
265
265
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_VOLUME, this.onVolumeChanged);
|
|
266
266
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume);
|
|
267
|
-
if
|
|
268
|
-
|
|
269
|
-
this.listenToOnce(this.core.activeContainer, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadataOnVideoTag);
|
|
270
|
-
}
|
|
267
|
+
// wait until the metadata has loaded and then check if fullscreen on video tag is supported
|
|
268
|
+
this.listenToOnce(this.core.activeContainer, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadata);
|
|
271
269
|
}
|
|
272
270
|
/**
|
|
273
271
|
* Hides the media control UI
|
|
@@ -302,13 +300,13 @@ export class MediaControl extends UICorePlugin {
|
|
|
302
300
|
onVolumeChanged() {
|
|
303
301
|
this.updateVolumeUI();
|
|
304
302
|
}
|
|
305
|
-
|
|
303
|
+
onLoadedMetadata() {
|
|
306
304
|
const video = this.core.activePlayback?.el;
|
|
307
305
|
// video.webkitSupportsFullscreen is deprecated but iOS appears to only use this
|
|
308
306
|
// see https://github.com/clappr/clappr/issues/1127
|
|
309
307
|
if (!Fullscreen.fullscreenEnabled() && video.webkitSupportsFullscreen) {
|
|
310
308
|
this.fullScreenOnVideoTagSupported = true;
|
|
311
|
-
this.
|
|
309
|
+
this.updateSettings();
|
|
312
310
|
}
|
|
313
311
|
}
|
|
314
312
|
updateVolumeUI() {
|
|
@@ -538,7 +536,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
538
536
|
this.setInitialVolume();
|
|
539
537
|
this.changeTogglePlay();
|
|
540
538
|
this.bindContainerEvents();
|
|
541
|
-
this.
|
|
539
|
+
this.updateSettings();
|
|
542
540
|
this.core.activeContainer.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.core.activeContainer.isDvrInUse());
|
|
543
541
|
// TODO test
|
|
544
542
|
if (this.core.activeContainer.mediaControlDisabled) {
|
|
@@ -719,18 +717,19 @@ export class MediaControl extends UICorePlugin {
|
|
|
719
717
|
this.core.$el.addClass('nocursor');
|
|
720
718
|
}
|
|
721
719
|
}
|
|
722
|
-
|
|
720
|
+
updateSettings() {
|
|
723
721
|
const newSettings = $.extend(true, {
|
|
724
722
|
left: [],
|
|
725
723
|
default: [],
|
|
726
724
|
right: [],
|
|
727
|
-
}, this.core.activeContainer
|
|
725
|
+
}, this.core.activeContainer.settings);
|
|
728
726
|
newSettings.left = orderByOrderPattern([...newSettings.left, 'clipsText', 'volume'], LEFT_ORDER);
|
|
727
|
+
// actual order of the items appear rendered is controlled by CSS
|
|
729
728
|
newSettings.right = [
|
|
730
729
|
'fullscreen',
|
|
731
730
|
'pip',
|
|
732
|
-
'
|
|
733
|
-
'
|
|
731
|
+
'gear',
|
|
732
|
+
'cc',
|
|
734
733
|
'multicamera',
|
|
735
734
|
'playbackrate',
|
|
736
735
|
'vr',
|
|
@@ -739,7 +738,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
739
738
|
if ((!this.fullScreenOnVideoTagSupported &&
|
|
740
739
|
!Fullscreen.fullscreenEnabled()) ||
|
|
741
740
|
this.options.fullscreenDisable) {
|
|
742
|
-
// remove fullscreen from settings if it is
|
|
741
|
+
// remove fullscreen from settings if it is not available
|
|
743
742
|
removeArrayItem(newSettings.default, 'fullscreen');
|
|
744
743
|
removeArrayItem(newSettings.left, 'fullscreen');
|
|
745
744
|
removeArrayItem(newSettings.right, 'fullscreen');
|
|
@@ -778,7 +777,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
778
777
|
this.$volumeBarScrubber = this.$el.find('.bar-scrubber[data-volume]');
|
|
779
778
|
this.$playbackRate = this.$el.find('.media-control-playbackrate[data-playbackrate]');
|
|
780
779
|
this.$multiCameraSelector = this.$el.find('.media-control-multicamera[data-multicamera]');
|
|
781
|
-
this.$clipText = this.$el.find('.media-clip-text[data-clipstext]');
|
|
780
|
+
this.$clipText = this.$el.find('.media-clip-text[data-clipstext]'); // TODO
|
|
782
781
|
this.$clipTextContainer = this.$el.find('.media-clip-container[data-clipstext]');
|
|
783
782
|
this.resetIndicators();
|
|
784
783
|
this.initializeIcons();
|
|
@@ -804,36 +803,32 @@ export class MediaControl extends UICorePlugin {
|
|
|
804
803
|
*/
|
|
805
804
|
getElement(name) {
|
|
806
805
|
switch (name) {
|
|
807
|
-
case '
|
|
806
|
+
case 'audiotracks':
|
|
808
807
|
return null;
|
|
809
808
|
case 'clipText':
|
|
810
809
|
return this.$clipText;
|
|
811
|
-
case 'gear':
|
|
812
|
-
return null;
|
|
813
|
-
case 'pip':
|
|
814
|
-
return null;
|
|
815
810
|
case 'playbackRate':
|
|
816
811
|
return this.$playbackRate;
|
|
817
812
|
case 'seekBarContainer':
|
|
818
813
|
return this.$seekBarContainer;
|
|
819
|
-
case 'subtitlesSelector':
|
|
820
|
-
return null;
|
|
821
814
|
}
|
|
822
815
|
}
|
|
823
816
|
putElement(name, element) {
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
817
|
+
const panel = this.getElementLocation(name);
|
|
818
|
+
trace(`${T} putElement`, { name, panel: !!panel });
|
|
819
|
+
if (panel) {
|
|
820
|
+
const current = panel.find(`[data-${name}]`);
|
|
821
|
+
element.setAttribute(`data-${name}`, "");
|
|
822
|
+
// TODO test
|
|
823
|
+
if (current.length) {
|
|
824
|
+
if (current[0] === element) {
|
|
825
|
+
return;
|
|
826
|
+
}
|
|
827
|
+
current.replaceWith(element);
|
|
828
|
+
}
|
|
829
|
+
else {
|
|
830
|
+
panel.append(element);
|
|
831
|
+
}
|
|
837
832
|
}
|
|
838
833
|
}
|
|
839
834
|
/**
|
|
@@ -1071,12 +1066,12 @@ export class MediaControl extends UICorePlugin {
|
|
|
1071
1066
|
}
|
|
1072
1067
|
// TODO manage by the ads plugin
|
|
1073
1068
|
onStartAd() {
|
|
1074
|
-
this.advertisementPlaying = true
|
|
1069
|
+
// this.advertisementPlaying = true
|
|
1075
1070
|
this.disable();
|
|
1076
1071
|
}
|
|
1077
1072
|
// TODO manage by the ads plugin
|
|
1078
1073
|
onFinishAd() {
|
|
1079
|
-
this.advertisementPlaying = false
|
|
1074
|
+
// this.advertisementPlaying = false
|
|
1080
1075
|
this.enable();
|
|
1081
1076
|
}
|
|
1082
1077
|
// TODO remove
|
|
@@ -1120,6 +1115,18 @@ export class MediaControl extends UICorePlugin {
|
|
|
1120
1115
|
}
|
|
1121
1116
|
return isFinite(this.core.activePlayback.getDuration());
|
|
1122
1117
|
}
|
|
1118
|
+
getElementLocation(name) {
|
|
1119
|
+
if (this.settings.right?.includes(name)) {
|
|
1120
|
+
return this.getRightPanel();
|
|
1121
|
+
}
|
|
1122
|
+
if (this.settings.left?.includes(name)) {
|
|
1123
|
+
return this.getLeftPanel();
|
|
1124
|
+
}
|
|
1125
|
+
if (this.settings.default?.includes(name)) {
|
|
1126
|
+
return this.getCenterPanel();
|
|
1127
|
+
}
|
|
1128
|
+
return null;
|
|
1129
|
+
}
|
|
1123
1130
|
}
|
|
1124
1131
|
MediaControl.extend = function (properties) {
|
|
1125
1132
|
return extend(MediaControl, properties);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PictureInPicture.d.ts","sourceRoot":"","sources":["../../../src/plugins/picture-in-picture/PictureInPicture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAO9D,OAAO,gDAAgD,CAAC;AAMxD;;;;;;;;;GASG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,IAAa,UAAU;;MAItB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED;;OAEG;IACM,UAAU;IAInB,OAAO,CAAC,cAAc;IAStB;;OAEG;IACM,MAAM;
|
|
1
|
+
{"version":3,"file":"PictureInPicture.d.ts","sourceRoot":"","sources":["../../../src/plugins/picture-in-picture/PictureInPicture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAO9D,OAAO,gDAAgD,CAAC;AAMxD;;;;;;;;;GASG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,cAAc,CAAwB;IAErD;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,IAAa,UAAU;;MAItB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED;;OAEG;IACM,UAAU;IAInB,OAAO,CAAC,cAAc;IAStB;;OAEG;IACM,MAAM;IAef,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,oBAAoB;CAI7B"}
|
|
@@ -35,6 +35,7 @@ export class PictureInPicture extends UICorePlugin {
|
|
|
35
35
|
static get version() {
|
|
36
36
|
return VERSION;
|
|
37
37
|
}
|
|
38
|
+
static buttonTemplate = template(buttonHtml);
|
|
38
39
|
/**
|
|
39
40
|
* @internal
|
|
40
41
|
*/
|
|
@@ -59,8 +60,8 @@ export class PictureInPicture extends UICorePlugin {
|
|
|
59
60
|
}
|
|
60
61
|
isPiPSupported() {
|
|
61
62
|
trace(`${T} isPiPSupported`, {
|
|
62
|
-
pictureInPictureEnabled: document.pictureInPictureEnabled,
|
|
63
|
-
requestPictureInPicture: HTMLVideoElement.prototype.requestPictureInPicture,
|
|
63
|
+
pictureInPictureEnabled: !!document.pictureInPictureEnabled,
|
|
64
|
+
requestPictureInPicture: !!HTMLVideoElement.prototype.requestPictureInPicture,
|
|
64
65
|
});
|
|
65
66
|
return document.pictureInPictureEnabled && !!HTMLVideoElement.prototype.requestPictureInPicture;
|
|
66
67
|
}
|
|
@@ -71,8 +72,7 @@ export class PictureInPicture extends UICorePlugin {
|
|
|
71
72
|
if (!this.isPiPSupported()) {
|
|
72
73
|
return this;
|
|
73
74
|
}
|
|
74
|
-
|
|
75
|
-
this.$el.html(t({ pipIcon }));
|
|
75
|
+
this.$el.html(PictureInPicture.buttonTemplate({ pipIcon }));
|
|
76
76
|
const mediaControl = this.core.getPlugin('media_control');
|
|
77
77
|
if (mediaControl) {
|
|
78
78
|
mediaControl.putElement('pip', this.el);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaybackRate.d.ts","sourceRoot":"","sources":["../../../src/plugins/playback-rate/PlaybackRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAsB,IAAI,EAAE,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"PlaybackRate.d.ts","sourceRoot":"","sources":["../../../src/plugins/playback-rate/PlaybackRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAsB,IAAI,EAAE,MAAM,cAAc,CAAA;AAuC7E;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,aAAa,CAA+C;IAGpE,OAAO,CAAC,gBAAgB,CAAoB;IAE5C,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,YAAY,CAAgC;IAEpD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAE7C,IAAI,EAAE,IAAI;IAQtB;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,YAAY;IAepB;;OAEG;IACM,MAAM;IAgCf,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,oBAAoB;CAS7B"}
|
|
@@ -9,7 +9,7 @@ import arrowRightIcon from '../../../assets/icons/new/arrow-right.svg';
|
|
|
9
9
|
import arrowLeftIcon from '../../../assets/icons/new/arrow-left.svg';
|
|
10
10
|
import checkIcon from '../../../assets/icons/new/check.svg';
|
|
11
11
|
import { PlaybackEvents } from '../../playback/types.js';
|
|
12
|
-
import { MediaControlEvents } from '../media-control/MediaControl.js';
|
|
12
|
+
import { MediaControlEvents, } from '../media-control/MediaControl.js';
|
|
13
13
|
const DEFAULT_PLAYBACK_RATES = [
|
|
14
14
|
{ value: '0.5', label: '0.5x' },
|
|
15
15
|
{ value: '0.75', label: '0.75x' },
|
|
@@ -17,7 +17,7 @@ const DEFAULT_PLAYBACK_RATES = [
|
|
|
17
17
|
{ value: '1.25', label: '1.25x' },
|
|
18
18
|
{ value: '1.5', label: '1.5x' },
|
|
19
19
|
{ value: '1.75', label: '1.75x' },
|
|
20
|
-
{ value: '2.0', label: '2x' }
|
|
20
|
+
{ value: '2.0', label: '2x' },
|
|
21
21
|
];
|
|
22
22
|
const DEFAULT_PLAYBACK_RATE = '1.0';
|
|
23
23
|
const T = 'plugins.playback_rate';
|
|
@@ -57,16 +57,17 @@ export class PlaybackRate extends UICorePlugin {
|
|
|
57
57
|
static listTemplate = template(listHtml);
|
|
58
58
|
constructor(core) {
|
|
59
59
|
super(core);
|
|
60
|
-
this.playbackRates =
|
|
61
|
-
|
|
60
|
+
this.playbackRates =
|
|
61
|
+
core.options.playbackRate?.options || DEFAULT_PLAYBACK_RATES;
|
|
62
|
+
this.selectedRate =
|
|
63
|
+
core.options.playbackRate?.defaultValue || DEFAULT_PLAYBACK_RATE;
|
|
62
64
|
}
|
|
63
65
|
/**
|
|
64
66
|
* @internal
|
|
65
67
|
*/
|
|
66
68
|
get attributes() {
|
|
67
69
|
return {
|
|
68
|
-
|
|
69
|
-
'data-playback-rate-select': ''
|
|
70
|
+
class: 'media-control-playbackrate',
|
|
70
71
|
};
|
|
71
72
|
}
|
|
72
73
|
/**
|
|
@@ -87,6 +88,7 @@ export class PlaybackRate extends UICorePlugin {
|
|
|
87
88
|
this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChange);
|
|
88
89
|
}
|
|
89
90
|
onCoreReady() {
|
|
91
|
+
trace(`${T} onCoreReady`);
|
|
90
92
|
const mediaControl = this.core.getPlugin('media_control');
|
|
91
93
|
assert(mediaControl, 'media_control plugin is required');
|
|
92
94
|
const gear = this.core.getPlugin('bottom_gear');
|
|
@@ -94,6 +96,7 @@ export class PlaybackRate extends UICorePlugin {
|
|
|
94
96
|
this.listenTo(mediaControl, MediaControlEvents.MEDIACONTROL_GEAR_RENDERED, this.onGearRendered);
|
|
95
97
|
}
|
|
96
98
|
onActiveContainerChange() {
|
|
99
|
+
trace(`${T} onActiveContainerChange`);
|
|
97
100
|
this.listenTo(this.core.activePlayback, Events.PLAYBACK_STOP, this.onStop);
|
|
98
101
|
this.listenTo(this.core.activePlayback, Events.PLAYBACK_PLAY, this.onPlay);
|
|
99
102
|
this.listenTo(this.core.activePlayback, PlaybackEvents.PLAYBACK_RATE_CHANGED, this.onPlaybackRateChange);
|
|
@@ -117,7 +120,7 @@ export class PlaybackRate extends UICorePlugin {
|
|
|
117
120
|
allRateElements() {
|
|
118
121
|
return this.$('ul.gear-sub-menu li');
|
|
119
122
|
}
|
|
120
|
-
rateElement(rate =
|
|
123
|
+
rateElement(rate = '1') {
|
|
121
124
|
return this.$(`ul.gear-sub-menu a[data-rate="${rate}"]`).parent();
|
|
122
125
|
}
|
|
123
126
|
onPlaybackRateChange(playbackRate) {
|
|
@@ -132,10 +135,11 @@ export class PlaybackRate extends UICorePlugin {
|
|
|
132
135
|
}
|
|
133
136
|
}
|
|
134
137
|
shouldRender() {
|
|
135
|
-
if (!this.core.
|
|
138
|
+
if (!this.core.activePlayback) {
|
|
136
139
|
return false;
|
|
137
140
|
}
|
|
138
|
-
if (this.core.getPlaybackType() === Playback.LIVE &&
|
|
141
|
+
if (this.core.activePlayback.getPlaybackType() === Playback.LIVE &&
|
|
142
|
+
!this.core.activePlayback.dvrEnabled) {
|
|
139
143
|
return false;
|
|
140
144
|
}
|
|
141
145
|
return 'setPlaybackRate' in this.core.activePlayback;
|
|
@@ -158,9 +162,12 @@ export class PlaybackRate extends UICorePlugin {
|
|
|
158
162
|
title: this.getTitle(),
|
|
159
163
|
speedIcon,
|
|
160
164
|
arrowRightIcon,
|
|
165
|
+
i18n: this.core.i18n,
|
|
161
166
|
});
|
|
162
167
|
this.$el.html(button);
|
|
163
|
-
this.core.getPlugin('bottom_gear')
|
|
168
|
+
this.core.getPlugin('bottom_gear')
|
|
169
|
+
?.getElement('rate')
|
|
170
|
+
?.html(this.el);
|
|
164
171
|
this.rendered = true;
|
|
165
172
|
return this;
|
|
166
173
|
}
|
|
@@ -175,7 +182,8 @@ export class PlaybackRate extends UICorePlugin {
|
|
|
175
182
|
}
|
|
176
183
|
}
|
|
177
184
|
onPlay() {
|
|
178
|
-
if (this.core.getPlaybackType() === Playback.LIVE &&
|
|
185
|
+
if (this.core.getPlaybackType() === Playback.LIVE &&
|
|
186
|
+
!this.core.activePlayback.dvrEnabled) {
|
|
179
187
|
this.resetPlaybackRate();
|
|
180
188
|
}
|
|
181
189
|
else {
|
|
@@ -185,8 +193,7 @@ export class PlaybackRate extends UICorePlugin {
|
|
|
185
193
|
resetPlaybackRate() {
|
|
186
194
|
this.setSelectedRate(DEFAULT_PLAYBACK_RATE);
|
|
187
195
|
}
|
|
188
|
-
onStop() {
|
|
189
|
-
}
|
|
196
|
+
onStop() { }
|
|
190
197
|
onRateSelect(event) {
|
|
191
198
|
event.stopPropagation();
|
|
192
199
|
const rate = event.currentTarget.dataset.rate;
|
|
@@ -201,6 +208,7 @@ export class PlaybackRate extends UICorePlugin {
|
|
|
201
208
|
playbackRates: this.playbackRates,
|
|
202
209
|
arrowLeftIcon,
|
|
203
210
|
checkIcon,
|
|
211
|
+
i18n: this.core.i18n,
|
|
204
212
|
}));
|
|
205
213
|
this.core.getPlugin('bottom_gear')?.setContent(this.el);
|
|
206
214
|
this.highlightCurrentRate();
|
|
@@ -216,7 +224,8 @@ export class PlaybackRate extends UICorePlugin {
|
|
|
216
224
|
this.selectedRate = rate;
|
|
217
225
|
}
|
|
218
226
|
getTitle() {
|
|
219
|
-
return this.playbackRates.find((r) => r.value === this.selectedRate)?.label ||
|
|
227
|
+
return (this.playbackRates.find((r) => r.value === this.selectedRate)?.label ||
|
|
228
|
+
this.selectedRate);
|
|
220
229
|
}
|
|
221
230
|
highlightCurrentRate() {
|
|
222
231
|
this.allRateElements().removeClass('current');
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { UICorePlugin } from '@clappr/core';
|
|
2
|
+
import '../../../assets/subtitles/style.scss';
|
|
3
|
+
export type ClosedCaptionsPluginSettings = {
|
|
4
|
+
/**
|
|
5
|
+
* Initially selected subtitles language
|
|
6
|
+
*/
|
|
7
|
+
language?: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Use {@link ClosedCaptionsPluginSettings} instead.
|
|
11
|
+
*/
|
|
12
|
+
export type SubtitlesPluginSettings = ClosedCaptionsPluginSettings;
|
|
13
|
+
/**
|
|
14
|
+
* `PLUGIN` that provides a UI to select the subtitles when available.
|
|
15
|
+
* @beta
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* The plugin is activated when closed captions tracks are provided with the media source.
|
|
19
|
+
* It shows a familiar "CC" button with a dropdown menu to select the subtitles language.
|
|
20
|
+
*
|
|
21
|
+
* Depends on:
|
|
22
|
+
*
|
|
23
|
+
* - {@link MediaControl}
|
|
24
|
+
*
|
|
25
|
+
* Configuration options - {@link ClosedCaptionsPluginSettings}
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { ClosedCaptions } from '@gcorevideo/player'
|
|
29
|
+
*
|
|
30
|
+
* Player.registerPlugin(ClosedCaptions)
|
|
31
|
+
*
|
|
32
|
+
* new Player({
|
|
33
|
+
* ...
|
|
34
|
+
* cc: {
|
|
35
|
+
* language: 'en',
|
|
36
|
+
* },
|
|
37
|
+
* })
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare class ClosedCaptions extends UICorePlugin {
|
|
41
|
+
private isPreselectedApplied;
|
|
42
|
+
private isShowing;
|
|
43
|
+
private track;
|
|
44
|
+
private tracks;
|
|
45
|
+
private $line;
|
|
46
|
+
/**
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
get name(): string;
|
|
50
|
+
/**
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
get supportedVersion(): {
|
|
54
|
+
min: string;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
static get version(): string;
|
|
60
|
+
private static readonly template;
|
|
61
|
+
private static readonly templateString;
|
|
62
|
+
/**
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
get attributes(): {
|
|
66
|
+
class: string;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
get events(): {
|
|
72
|
+
'click [data-cc-select]': string;
|
|
73
|
+
'click [data-cc-button]': string;
|
|
74
|
+
};
|
|
75
|
+
private get preselectedLanguage();
|
|
76
|
+
/**
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
bindEvents(): void;
|
|
80
|
+
private onCoreReady;
|
|
81
|
+
private onContainerChanged;
|
|
82
|
+
private onSubtitleAvailable;
|
|
83
|
+
private onSubtitleChanged;
|
|
84
|
+
private applyTracks;
|
|
85
|
+
private onStartAd;
|
|
86
|
+
private onFinishAd;
|
|
87
|
+
private playerResize;
|
|
88
|
+
/**
|
|
89
|
+
* Hides the subtitles menu and the subtitles.
|
|
90
|
+
*/
|
|
91
|
+
hide(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Shows the subtitles menu and the subtitles.
|
|
94
|
+
*/
|
|
95
|
+
show(): void;
|
|
96
|
+
private shouldRender;
|
|
97
|
+
private resizeFont;
|
|
98
|
+
/**
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
render(): this;
|
|
102
|
+
private findById;
|
|
103
|
+
private selectItem;
|
|
104
|
+
private onItemSelect;
|
|
105
|
+
private applyPreselectedSubtitles;
|
|
106
|
+
private hideMenu;
|
|
107
|
+
private toggleMenu;
|
|
108
|
+
private itemElement;
|
|
109
|
+
private allItemElements;
|
|
110
|
+
private selectSubtitles;
|
|
111
|
+
private getSubtitleText;
|
|
112
|
+
private setSubtitleText;
|
|
113
|
+
private clearSubtitleText;
|
|
114
|
+
private updateSelection;
|
|
115
|
+
private highlightCurrentSubtitles;
|
|
116
|
+
private renderIcon;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=ClosedCaptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClosedCaptions.d.ts","sourceRoot":"","sources":["../../../src/plugins/subtitles/ClosedCaptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAwB,MAAM,cAAc,CAAA;AAOzE,OAAO,sCAAsC,CAAA;AAe7C,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,KAAK,CAA6B;IAE1C,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,KAAK,CAA2B;IAExC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,IAAI;IAWJ;;OAEG;IACH,IAAI;IAiBJ,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IA0Bf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,UAAU;CAKnB"}
|