@gcorevideo/player 2.20.6 → 2.20.8
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 +37 -13
- package/dist/index.css +1163 -1163
- package/dist/index.js +2557 -2513
- package/dist/plugins/index.css +470 -470
- package/dist/plugins/index.js +5230 -5217
- package/lib/playback/BasePlayback.d.ts +5 -0
- package/lib/playback/BasePlayback.d.ts.map +1 -1
- package/lib/playback/BasePlayback.js +8 -0
- package/lib/playback/HTML5Video.d.ts +4 -0
- package/lib/playback/HTML5Video.d.ts.map +1 -0
- package/lib/playback/HTML5Video.js +3 -0
- package/lib/playback/dash-playback/DashPlayback.d.ts +1 -0
- package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
- package/lib/playback/dash-playback/DashPlayback.js +6 -2
- package/lib/playback/index.d.ts.map +1 -1
- package/lib/playback/index.js +2 -0
- package/lib/playback/types.d.ts +9 -0
- package/lib/playback/types.d.ts.map +1 -0
- package/lib/playback/types.js +9 -0
- package/lib/plugins/bottom-gear/BottomGear.d.ts +6 -11
- package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.js +9 -21
- package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.js +2 -2
- 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 +27 -16
- package/lib/plugins/level-selector/LevelSelector.d.ts +17 -5
- package/lib/plugins/level-selector/LevelSelector.d.ts.map +1 -1
- package/lib/plugins/level-selector/LevelSelector.js +35 -24
- package/lib/plugins/media-control/MediaControl.d.ts +11 -0
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +16 -3
- package/lib/plugins/playback-rate/PlaybackRate.d.ts +11 -10
- package/lib/plugins/playback-rate/PlaybackRate.d.ts.map +1 -1
- package/lib/plugins/playback-rate/PlaybackRate.js +83 -91
- package/lib/plugins/source-controller/SourceController.d.ts +1 -0
- package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
- package/lib/plugins/source-controller/SourceController.js +8 -4
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +7 -3
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +35 -27
- package/lib/testUtils.d.ts +5 -8
- package/lib/testUtils.d.ts.map +1 -1
- package/lib/testUtils.js +15 -9
- package/package.json +1 -1
- package/src/playback/BasePlayback.ts +12 -4
- package/src/playback/HTML5Video.ts +3 -0
- package/src/playback/dash-playback/DashPlayback.ts +15 -11
- package/src/playback/index.ts +2 -1
- package/src/playback/types.ts +9 -0
- package/src/plugins/bottom-gear/BottomGear.ts +10 -21
- package/src/plugins/bottom-gear/__tests__/BottomGear.test.ts +36 -0
- package/src/plugins/bottom-gear/__tests__/__snapshots__/BottomGear.test.ts.snap +41 -0
- package/src/plugins/clappr-nerd-stats/ClapprNerdStats.ts +3 -3
- package/src/plugins/dvr-controls/DvrControls.ts +87 -54
- package/src/plugins/level-selector/LevelSelector.ts +64 -31
- package/src/plugins/level-selector/__tests__/LevelSelector.test.ts +15 -16
- package/src/plugins/media-control/MediaControl.ts +20 -6
- package/src/plugins/playback-rate/PlaybackRate.ts +89 -105
- package/src/plugins/source-controller/SourceController.ts +9 -4
- package/src/plugins/source-controller/__tests__/SourceController.test.ts +35 -1
- package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +80 -57
- package/src/testUtils.ts +16 -9
- package/tsconfig.tsbuildinfo +1 -1
- package/assets/playback-rate/playback-rate-selector.ejs +0 -9
|
@@ -6,6 +6,11 @@ import { ErrorOptions, HTML5Video } from '@clappr/core';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class BasePlayback extends HTML5Video {
|
|
8
8
|
createError(errorData: any, options?: ErrorOptions): Error;
|
|
9
|
+
/**
|
|
10
|
+
* Sets the playback rate.
|
|
11
|
+
* @param rate - The playback rate to set.
|
|
12
|
+
*/
|
|
13
|
+
setPlaybackRate(rate: number): void;
|
|
9
14
|
_onPlaying(): void;
|
|
10
15
|
}
|
|
11
16
|
//# sourceMappingURL=BasePlayback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasePlayback.d.ts","sourceRoot":"","sources":["../../src/playback/BasePlayback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAU,UAAU,EAAe,MAAM,cAAc,CAAA;AAI5E;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"BasePlayback.d.ts","sourceRoot":"","sources":["../../src/playback/BasePlayback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAU,UAAU,EAAe,MAAM,cAAc,CAAA;AAI5E;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IA0BlD;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM;IAInB,UAAU;CAIpB"}
|
|
@@ -26,6 +26,14 @@ export class BasePlayback extends HTML5Video {
|
|
|
26
26
|
}
|
|
27
27
|
return super.createError(errorData, options);
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Sets the playback rate.
|
|
31
|
+
* @param rate - The playback rate to set.
|
|
32
|
+
*/
|
|
33
|
+
setPlaybackRate(rate) {
|
|
34
|
+
;
|
|
35
|
+
this.el.playbackRate = rate;
|
|
36
|
+
}
|
|
29
37
|
_onPlaying() {
|
|
30
38
|
super._onPlaying();
|
|
31
39
|
this.trigger(Events.PLAYBACK_MEDIACONTROL_ENABLE);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HTML5Video.d.ts","sourceRoot":"","sources":["../../src/playback/HTML5Video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,YAAY;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,QAAQ,EAAyB,MAAM,cAAc,CAAA;AAG3E,OAAO,MAAM,EAAE,EAIb,KAAK,WAAW,IAAI,eAAe,EAEnC,aAAa,EACd,MAAM,QAAQ,CAAA;AAEf,OAAO,
|
|
1
|
+
{"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import DASHJS from 'dashjs';
|
|
|
8
8
|
import { PlaybackErrorCode, } from '../../playback.types.js';
|
|
9
9
|
import { isDashSource } from '../../utils/mediaSources.js';
|
|
10
10
|
import { BasePlayback } from '../BasePlayback.js';
|
|
11
|
+
import { PlaybackEvents } from '../types.js';
|
|
11
12
|
const AUTO = -1;
|
|
12
13
|
const { now } = Utils;
|
|
13
14
|
const T = 'playback.dash';
|
|
@@ -188,8 +189,8 @@ export default class DashPlayback extends BasePlayback {
|
|
|
188
189
|
}
|
|
189
190
|
}
|
|
190
191
|
});
|
|
191
|
-
this._dash.on(DASHJS.MediaPlayer.events.PLAYBACK_RATE_CHANGED, () => {
|
|
192
|
-
this.trigger(
|
|
192
|
+
this._dash.on(DASHJS.MediaPlayer.events.PLAYBACK_RATE_CHANGED, (e) => {
|
|
193
|
+
this.trigger(PlaybackEvents.PLAYBACK_RATE_CHANGED, e.playbackRate);
|
|
193
194
|
});
|
|
194
195
|
}
|
|
195
196
|
render() {
|
|
@@ -455,6 +456,9 @@ export default class DashPlayback extends BasePlayback {
|
|
|
455
456
|
assert.ok(ret, 'Invalid quality level');
|
|
456
457
|
return ret;
|
|
457
458
|
}
|
|
459
|
+
setPlaybackRate(rate) {
|
|
460
|
+
this._dash?.setPlaybackRate(rate);
|
|
461
|
+
}
|
|
458
462
|
}
|
|
459
463
|
DashPlayback.canPlay = function (resource, mimeType) {
|
|
460
464
|
if (!isDashSource(resource, mimeType)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/playback/index.ts"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/playback/index.ts"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,SAIhC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,WAE5D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,WAE3D"}
|
package/lib/playback/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Loader } from '@clappr/core';
|
|
2
2
|
import DashPlayback from './dash-playback/DashPlayback.js';
|
|
3
3
|
import HlsPlayback from './hls-playback/HlsPlayback.js';
|
|
4
|
+
import HTML5Video from './HTML5Video.js';
|
|
4
5
|
// TODO consider allowing the variation of the order of playback modules
|
|
5
6
|
export function registerPlaybacks() {
|
|
7
|
+
Loader.registerPlayback(HTML5Video); // TODO check it overrides the default HTML5Video
|
|
6
8
|
Loader.registerPlayback(HlsPlayback);
|
|
7
9
|
Loader.registerPlayback(DashPlayback);
|
|
8
10
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/playback/types.ts"],"names":[],"mappings":"AACA,oBAAY,cAAc;IACxB;;;;OAIG;IACH,qBAAqB,0BAA0B;CAChD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var PlaybackEvents;
|
|
2
|
+
(function (PlaybackEvents) {
|
|
3
|
+
/**
|
|
4
|
+
* Emitted when the playback rate changes.
|
|
5
|
+
* Payload:
|
|
6
|
+
* - playbackRate number
|
|
7
|
+
*/
|
|
8
|
+
PlaybackEvents["PLAYBACK_RATE_CHANGED"] = "playback:rate-changed";
|
|
9
|
+
})(PlaybackEvents || (PlaybackEvents = {}));
|
|
@@ -2,16 +2,6 @@ import { UICorePlugin } from '@clappr/core';
|
|
|
2
2
|
import '../../../assets/bottom-gear/gear.scss';
|
|
3
3
|
import '../../../assets/bottom-gear/gear-sub-menu.scss';
|
|
4
4
|
import { ZeptoResult } from '../../utils/types.js';
|
|
5
|
-
/**
|
|
6
|
-
* Custom events emitted by the plugin
|
|
7
|
-
* @beta
|
|
8
|
-
*/
|
|
9
|
-
export declare enum GearEvents {
|
|
10
|
-
/**
|
|
11
|
-
* Emitted when the gear menu is rendered
|
|
12
|
-
*/
|
|
13
|
-
MEDIACONTROL_GEAR_RENDERED = "mediacontrol:gear:rendered"
|
|
14
|
-
}
|
|
15
5
|
/**
|
|
16
6
|
* An element inside the gear menu
|
|
17
7
|
* @beta
|
|
@@ -78,7 +68,12 @@ export declare class BottomGear extends UICorePlugin {
|
|
|
78
68
|
* @internal
|
|
79
69
|
*/
|
|
80
70
|
render(): this;
|
|
81
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Re-renders the gear menu.
|
|
73
|
+
* It fires the {@link MediaControlEvents.MEDIACONTROL_GEAR_RENDERED | MEDIACONTROL_GEAR_RENDERED} event,
|
|
74
|
+
* which the plugins that attach to the gear menu can listen to to re-render themselves.
|
|
75
|
+
*/
|
|
76
|
+
refresh(): void;
|
|
82
77
|
private toggleGearMenu;
|
|
83
78
|
private hide;
|
|
84
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,cAAc,CAAC;AAO9E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gDAAgD,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,cAAc,CAAC;AAO9E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gDAAgD,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOnD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,IAAI,CAAS;IAErB;;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,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACM,UAAU;IASnB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI;IAIrD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW;IAI/B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACM,MAAM;IAkBf;;;;OAIG;IACH,OAAO;IAKP,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -7,19 +7,9 @@ import '../../../assets/bottom-gear/gear.scss';
|
|
|
7
7
|
import '../../../assets/bottom-gear/gear-sub-menu.scss';
|
|
8
8
|
import gearIcon from '../../../assets/icons/new/gear.svg';
|
|
9
9
|
import gearHdIcon from '../../../assets/icons/new/gear-hd.svg';
|
|
10
|
+
import { MediaControlEvents } from '../media-control/MediaControl';
|
|
10
11
|
const VERSION = '2.19.12';
|
|
11
12
|
const T = 'plugins.bottom_gear';
|
|
12
|
-
/**
|
|
13
|
-
* Custom events emitted by the plugin
|
|
14
|
-
* @beta
|
|
15
|
-
*/
|
|
16
|
-
export var GearEvents;
|
|
17
|
-
(function (GearEvents) {
|
|
18
|
-
/**
|
|
19
|
-
* Emitted when the gear menu is rendered
|
|
20
|
-
*/
|
|
21
|
-
GearEvents["MEDIACONTROL_GEAR_RENDERED"] = "mediacontrol:gear:rendered";
|
|
22
|
-
})(GearEvents || (GearEvents = {}));
|
|
23
13
|
/**
|
|
24
14
|
* Adds the gear button that triggers extra options menu on the right side of the {@link MediaControl | media control} UI
|
|
25
15
|
* @beta
|
|
@@ -75,7 +65,6 @@ export class BottomGear extends UICorePlugin {
|
|
|
75
65
|
const mediaControl = this.core.getPlugin('media_control');
|
|
76
66
|
assert(mediaControl, 'media_control plugin is required');
|
|
77
67
|
this.listenTo(this.core, ClapprEvents.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
|
|
78
|
-
this.listenTo(this.core, 'gear:refresh', this.refresh); // TODO use direct plugin method call
|
|
79
68
|
this.listenTo(mediaControl, ClapprEvents.MEDIACONTROL_RENDERED, this.render);
|
|
80
69
|
this.listenTo(mediaControl, ClapprEvents.MEDIACONTROL_HIDE, this.hide); // TODO mediacontrol show as well
|
|
81
70
|
}
|
|
@@ -102,14 +91,9 @@ export class BottomGear extends UICorePlugin {
|
|
|
102
91
|
this.listenTo(this.core.activeContainer, ClapprEvents.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);
|
|
103
92
|
}
|
|
104
93
|
highDefinitionUpdate(isHd) {
|
|
105
|
-
trace(`${
|
|
94
|
+
trace(`${T} highDefinitionUpdate`, { isHd });
|
|
106
95
|
this.isHd = isHd;
|
|
107
|
-
|
|
108
|
-
this.$el.find('.gear-icon').html(gearHdIcon);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
this.$el.find('.gear-icon').html(gearIcon);
|
|
112
|
-
}
|
|
96
|
+
this.$el.find('.gear-icon').html(isHd ? gearHdIcon : gearIcon);
|
|
113
97
|
}
|
|
114
98
|
/**
|
|
115
99
|
* @internal
|
|
@@ -126,10 +110,14 @@ export class BottomGear extends UICorePlugin {
|
|
|
126
110
|
const icon = this.isHd ? gearHdIcon : gearIcon;
|
|
127
111
|
this.$el.html(BottomGear.template({ icon, items }));
|
|
128
112
|
mediaControl.getElement('gear')?.html(this.el);
|
|
129
|
-
|
|
130
|
-
mediaControl.trigger(GearEvents.MEDIACONTROL_GEAR_RENDERED);
|
|
113
|
+
mediaControl.trigger(MediaControlEvents.MEDIACONTROL_GEAR_RENDERED);
|
|
131
114
|
return this;
|
|
132
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Re-renders the gear menu.
|
|
118
|
+
* It fires the {@link MediaControlEvents.MEDIACONTROL_GEAR_RENDERED | MEDIACONTROL_GEAR_RENDERED} event,
|
|
119
|
+
* which the plugins that attach to the gear menu can listen to to re-render themselves.
|
|
120
|
+
*/
|
|
133
121
|
refresh() {
|
|
134
122
|
this.render();
|
|
135
123
|
this.$el.find('.gear-wrapper').show();
|
|
@@ -10,7 +10,7 @@ import '../../../assets/clappr-nerd-stats/clappr-nerd-stats.scss';
|
|
|
10
10
|
import pluginHtml from '../../../assets/clappr-nerd-stats/clappr-nerd-stats.ejs';
|
|
11
11
|
import buttonHtml from '../../../assets/clappr-nerd-stats/button.ejs';
|
|
12
12
|
import statsIcon from '../../../assets/icons/new/stats.svg';
|
|
13
|
-
import {
|
|
13
|
+
import { MediaControlEvents } from '../media-control/MediaControl.js';
|
|
14
14
|
import assert from 'assert';
|
|
15
15
|
const qualityClasses = [
|
|
16
16
|
'speedtest-quality-value-1',
|
|
@@ -175,7 +175,7 @@ export class ClapprNerdStats extends UICorePlugin {
|
|
|
175
175
|
const mediaControl = this.core.getPlugin('media_control');
|
|
176
176
|
assert(mediaControl, 'media_control plugin is required');
|
|
177
177
|
this.listenToOnce(this.core, Events.CORE_READY, this.init);
|
|
178
|
-
this.listenTo(mediaControl,
|
|
178
|
+
this.listenTo(mediaControl, MediaControlEvents.MEDIACONTROL_GEAR_RENDERED, this.addToBottomGear);
|
|
179
179
|
}
|
|
180
180
|
init() {
|
|
181
181
|
this.container = this.core.activeContainer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DvrControls.d.ts","sourceRoot":"","sources":["../../../src/plugins/dvr-controls/DvrControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoB,YAAY,EAAY,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"DvrControls.d.ts","sourceRoot":"","sources":["../../../src/plugins/dvr-controls/DvrControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoB,YAAY,EAAY,MAAM,cAAc,CAAA;AAM7E,OAAO,gDAAgD,CAAA;AAKvD;;;;;;;;;;GAUG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAEpD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;gBAEW,IAAI,EAAE,IAAI;IAKtB;;OAEG;IACM,UAAU;IAgBnB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,KAAK;IAab,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACM,MAAM;CAuBhB"}
|
|
@@ -3,6 +3,8 @@ import assert from 'assert';
|
|
|
3
3
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
4
4
|
import dvrHTML from '../../../assets/dvr-controls/index.ejs';
|
|
5
5
|
import '../../../assets/dvr-controls/dvr_controls.scss';
|
|
6
|
+
import { trace } from '@gcorevideo/utils';
|
|
7
|
+
const T = 'plugins.dvr_controls';
|
|
6
8
|
/**
|
|
7
9
|
* Adds the DVR controls to the media control UI
|
|
8
10
|
* @beta
|
|
@@ -33,7 +35,7 @@ export class DvrControls extends UICorePlugin {
|
|
|
33
35
|
*/
|
|
34
36
|
get events() {
|
|
35
37
|
return {
|
|
36
|
-
'click .live-button': 'click'
|
|
38
|
+
'click .live-button': 'click',
|
|
37
39
|
};
|
|
38
40
|
}
|
|
39
41
|
/**
|
|
@@ -41,8 +43,8 @@ export class DvrControls extends UICorePlugin {
|
|
|
41
43
|
*/
|
|
42
44
|
get attributes() {
|
|
43
45
|
return {
|
|
44
|
-
|
|
45
|
-
'data-dvr-controls': ''
|
|
46
|
+
class: 'dvr-controls',
|
|
47
|
+
'data-dvr-controls': '',
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
50
|
constructor(core) {
|
|
@@ -61,23 +63,25 @@ export class DvrControls extends UICorePlugin {
|
|
|
61
63
|
}
|
|
62
64
|
bindContainerEvents() {
|
|
63
65
|
this.listenToOnce(this.core.activeContainer, Events.CONTAINER_TIMEUPDATE, this.render);
|
|
64
|
-
this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.
|
|
66
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDvrChanged);
|
|
65
67
|
}
|
|
66
|
-
|
|
68
|
+
onDvrChanged(dvrEnabled) {
|
|
69
|
+
trace(`${T} onDvrChanged`, {
|
|
70
|
+
dvrEnabled,
|
|
71
|
+
});
|
|
67
72
|
if (this.core.getPlaybackType() !== Playback.LIVE) {
|
|
68
73
|
return;
|
|
69
74
|
}
|
|
70
75
|
this.settingsUpdate();
|
|
71
76
|
this.core.mediaControl.$el.addClass('live');
|
|
72
77
|
if (dvrEnabled) {
|
|
73
|
-
|
|
78
|
+
// TODO
|
|
74
79
|
this.core.mediaControl.$el
|
|
75
80
|
.addClass('dvr')
|
|
76
81
|
.find('.media-control-indicator[data-position], .media-control-indicator[data-duration]')
|
|
77
82
|
.hide();
|
|
78
83
|
}
|
|
79
84
|
else {
|
|
80
|
-
this.core.mediaControl.$playbackRate.addClass('playbackrate-enable');
|
|
81
85
|
this.core.mediaControl.$el.removeClass('dvr');
|
|
82
86
|
}
|
|
83
87
|
}
|
|
@@ -102,24 +106,31 @@ export class DvrControls extends UICorePlugin {
|
|
|
102
106
|
this.bindEvents();
|
|
103
107
|
}
|
|
104
108
|
shouldRender() {
|
|
105
|
-
const useDvrControls = this.core.options.useDvrControls === undefined ||
|
|
109
|
+
const useDvrControls = this.core.options.useDvrControls === undefined ||
|
|
110
|
+
!!this.core.options.useDvrControls;
|
|
106
111
|
return useDvrControls && this.core.getPlaybackType() === Playback.LIVE;
|
|
107
112
|
}
|
|
108
113
|
/**
|
|
109
114
|
* @internal
|
|
110
115
|
*/
|
|
111
116
|
render() {
|
|
117
|
+
trace(`${T} render`, {
|
|
118
|
+
dvrEnabled: this.core.activePlayback?.dvrEnabled,
|
|
119
|
+
});
|
|
120
|
+
if (!this.shouldRender()) {
|
|
121
|
+
return this;
|
|
122
|
+
}
|
|
112
123
|
this.$el.html(DvrControls.template({
|
|
113
124
|
live: this.core.i18n.t('live'),
|
|
114
|
-
backToLive: this.core.i18n.t('back_to_live')
|
|
125
|
+
backToLive: this.core.i18n.t('back_to_live'),
|
|
115
126
|
}));
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
127
|
+
const mediaControl = this.core.getPlugin('media_control');
|
|
128
|
+
assert(mediaControl, 'media_control plugin is required');
|
|
129
|
+
// TODO don't tap into the $el directly
|
|
130
|
+
mediaControl.$el.addClass('live');
|
|
131
|
+
mediaControl
|
|
132
|
+
.$('.media-control-left-panel[data-media-control]')
|
|
133
|
+
.append(this.$el);
|
|
123
134
|
return this;
|
|
124
135
|
}
|
|
125
136
|
}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import { UICorePlugin } from '@clappr/core';
|
|
2
2
|
import '../../../assets/level-selector/style.scss';
|
|
3
|
+
export interface LevelSelectorPluginSettings {
|
|
4
|
+
/**
|
|
5
|
+
* The maximum resolution to allow in the level selector.
|
|
6
|
+
*/
|
|
7
|
+
restrictResolution?: number;
|
|
8
|
+
/**
|
|
9
|
+
* The labels to show in the level selector.
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* { 360: 'SD', 720: 'HD' }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
labels?: Record<number, string>;
|
|
16
|
+
}
|
|
3
17
|
/**
|
|
4
18
|
* A {@link MediaControl | media control} plugin that provides a UI to control the quality level of the playback.
|
|
5
19
|
* @beta
|
|
@@ -15,11 +29,7 @@ import '../../../assets/level-selector/style.scss';
|
|
|
15
29
|
*
|
|
16
30
|
* When clicked, it shows a list of quality levels to choose from.
|
|
17
31
|
*
|
|
18
|
-
* Configuration options
|
|
19
|
-
*
|
|
20
|
-
* - `labels`: The labels to show in the level selector. [video resolution]: string
|
|
21
|
-
*
|
|
22
|
-
* - `restrictResolution`: The maximum resolution to allow in the level selector.
|
|
32
|
+
* Configuration options - {@link LevelSelectorPluginSettings}
|
|
23
33
|
*
|
|
24
34
|
* @example
|
|
25
35
|
* ```ts
|
|
@@ -71,6 +81,8 @@ export declare class LevelSelector extends UICorePlugin {
|
|
|
71
81
|
* @internal
|
|
72
82
|
*/
|
|
73
83
|
bindEvents(): void;
|
|
84
|
+
private onCoreReady;
|
|
85
|
+
private onGearRendered;
|
|
74
86
|
private bindPlaybackEvents;
|
|
75
87
|
private onStop;
|
|
76
88
|
private shouldRender;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LevelSelector.d.ts","sourceRoot":"","sources":["../../../src/plugins/level-selector/LevelSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"LevelSelector.d.ts","sourceRoot":"","sources":["../../../src/plugins/level-selector/LevelSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,MAAM,cAAc,CAAA;AAgB7D,OAAO,2CAA2C,CAAA;AAMlD,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,UAAU,CAAQ;IAE1B,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAChB;IAEtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAuC;IAE3E;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,eAAe,CAAK;IAE5B,IAAa,MAAM;;;;MAMlB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACM,MAAM;IAUf,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,cAAc;IAetB,OAAO,KAAK,QAAQ,GASnB;IAED,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,WAAW,CAAmC;CACvD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Events, template, UICorePlugin } from '@clappr/core';
|
|
2
2
|
import { reportError, trace } from '@gcorevideo/utils';
|
|
3
|
+
import assert from 'assert';
|
|
3
4
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
4
5
|
import buttonHtml from '../../../assets/level-selector/button.ejs';
|
|
5
6
|
import listHtml from '../../../assets/level-selector/list.ejs';
|
|
@@ -8,7 +9,7 @@ import arrowRightIcon from '../../../assets/icons/new/arrow-right.svg';
|
|
|
8
9
|
import arrowLeftIcon from '../../../assets/icons/new/arrow-left.svg';
|
|
9
10
|
import checkIcon from '../../../assets/icons/new/check.svg';
|
|
10
11
|
import '../../../assets/level-selector/style.scss';
|
|
11
|
-
import
|
|
12
|
+
import { MediaControlEvents } from '../media-control/MediaControl.js';
|
|
12
13
|
const T = 'plugins.level_selector';
|
|
13
14
|
const VERSION = '2.19.4';
|
|
14
15
|
/**
|
|
@@ -26,11 +27,7 @@ const VERSION = '2.19.4';
|
|
|
26
27
|
*
|
|
27
28
|
* When clicked, it shows a list of quality levels to choose from.
|
|
28
29
|
*
|
|
29
|
-
* Configuration options
|
|
30
|
-
*
|
|
31
|
-
* - `labels`: The labels to show in the level selector. [video resolution]: string
|
|
32
|
-
*
|
|
33
|
-
* - `restrictResolution`: The maximum resolution to allow in the level selector.
|
|
30
|
+
* Configuration options - {@link LevelSelectorPluginSettings}
|
|
34
31
|
*
|
|
35
32
|
* @example
|
|
36
33
|
* ```ts
|
|
@@ -90,14 +87,24 @@ export class LevelSelector extends UICorePlugin {
|
|
|
90
87
|
* @internal
|
|
91
88
|
*/
|
|
92
89
|
bindEvents() {
|
|
93
|
-
this.listenTo(this.core, Events.
|
|
94
|
-
this.listenTo(this.core,
|
|
90
|
+
this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
|
|
91
|
+
this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.bindPlaybackEvents);
|
|
92
|
+
}
|
|
93
|
+
onCoreReady() {
|
|
94
|
+
trace(`${T} onCoreReady`);
|
|
95
|
+
const mediaControl = this.core.getPlugin('media_control');
|
|
96
|
+
assert(mediaControl, 'media_control plugin is required');
|
|
97
|
+
this.listenTo(mediaControl, MediaControlEvents.MEDIACONTROL_GEAR_RENDERED, this.onGearRendered);
|
|
98
|
+
}
|
|
99
|
+
onGearRendered() {
|
|
100
|
+
trace(`${T} onGearRendered`);
|
|
101
|
+
this.deferRender();
|
|
95
102
|
}
|
|
96
103
|
bindPlaybackEvents() {
|
|
97
104
|
this.removeAuto = false;
|
|
98
105
|
this.isHd = false;
|
|
99
106
|
const activePlayback = this.core.activePlayback;
|
|
100
|
-
this.listenTo(activePlayback, Events.PLAYBACK_LEVELS_AVAILABLE,
|
|
107
|
+
this.listenTo(activePlayback, Events.PLAYBACK_LEVELS_AVAILABLE, this.fillLevels);
|
|
101
108
|
this.listenTo(activePlayback, Events.PLAYBACK_LEVEL_SWITCH_START, this.onLevelSwitchStart);
|
|
102
109
|
this.listenTo(activePlayback, Events.PLAYBACK_LEVEL_SWITCH_END, this.onLevelSwitchEnd);
|
|
103
110
|
this.listenTo(activePlayback, Events.PLAYBACK_BITRATE, this.updateCurrentLevel);
|
|
@@ -106,26 +113,24 @@ export class LevelSelector extends UICorePlugin {
|
|
|
106
113
|
this.isHd = isHd;
|
|
107
114
|
this.deferRender();
|
|
108
115
|
});
|
|
109
|
-
if (activePlayback
|
|
116
|
+
if (activePlayback.levels?.length > 0) {
|
|
110
117
|
this.fillLevels(activePlayback.levels);
|
|
111
118
|
}
|
|
112
119
|
}
|
|
113
120
|
onStop() {
|
|
114
121
|
trace(`${T} onStop`);
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
122
|
+
this.listenToOnce(this.core.activePlayback, Events.PLAYBACK_PLAY, () => {
|
|
123
|
+
trace(`${T} on PLAYBACK_PLAY after stop`, {
|
|
124
|
+
selectedLevelId: this.selectedLevelId,
|
|
125
|
+
});
|
|
126
|
+
if (this.core.activePlayback.getPlaybackType() === 'live') {
|
|
119
127
|
if (this.selectedLevelId !== -1) {
|
|
120
|
-
|
|
128
|
+
this.core.activePlayback.currentLevel = this.selectedLevelId;
|
|
121
129
|
}
|
|
122
130
|
}
|
|
123
131
|
});
|
|
124
132
|
}
|
|
125
133
|
shouldRender() {
|
|
126
|
-
if (!this.core.activeContainer) {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
134
|
const activePlayback = this.core.activePlayback;
|
|
130
135
|
if (!activePlayback) {
|
|
131
136
|
return false;
|
|
@@ -141,7 +146,6 @@ export class LevelSelector extends UICorePlugin {
|
|
|
141
146
|
* @internal
|
|
142
147
|
*/
|
|
143
148
|
render() {
|
|
144
|
-
assert(this.core.getPlugin('bottom_gear'), 'bottom_gear plugin is required');
|
|
145
149
|
if (!this.shouldRender()) {
|
|
146
150
|
return this;
|
|
147
151
|
}
|
|
@@ -158,7 +162,10 @@ export class LevelSelector extends UICorePlugin {
|
|
|
158
162
|
});
|
|
159
163
|
this.$el.html(html);
|
|
160
164
|
const gear = this.core.getPlugin('bottom_gear');
|
|
161
|
-
gear
|
|
165
|
+
if (!gear) {
|
|
166
|
+
trace(`${T} renderButton: bottom_gear plugin not found`);
|
|
167
|
+
}
|
|
168
|
+
gear?.getElement('quality')?.html(this.el);
|
|
162
169
|
}
|
|
163
170
|
}
|
|
164
171
|
renderDropdown() {
|
|
@@ -172,12 +179,14 @@ export class LevelSelector extends UICorePlugin {
|
|
|
172
179
|
});
|
|
173
180
|
this.$el.html(html);
|
|
174
181
|
const gear = this.core.getPlugin('bottom_gear');
|
|
182
|
+
trace(`${T} renderDropdown: bottom_gear plugin not found`);
|
|
175
183
|
gear?.setContent(this.el);
|
|
176
184
|
}
|
|
177
185
|
get maxLevel() {
|
|
178
186
|
const maxRes = this.core.options.levelSelector?.restrictResolution;
|
|
179
187
|
return maxRes
|
|
180
|
-
? this.levels.findIndex((level) => (level.height > level.width ? level.width : level.height) ===
|
|
188
|
+
? this.levels.findIndex((level) => (level.height > level.width ? level.width : level.height) ===
|
|
189
|
+
maxRes)
|
|
181
190
|
: -1;
|
|
182
191
|
}
|
|
183
192
|
fillLevels(levels) {
|
|
@@ -187,7 +196,8 @@ export class LevelSelector extends UICorePlugin {
|
|
|
187
196
|
if (maxResolution) {
|
|
188
197
|
this.removeAuto = true;
|
|
189
198
|
const initialLevel = levels
|
|
190
|
-
.filter((level) => (level.width > level.height ? level.height : level.width) <=
|
|
199
|
+
.filter((level) => (level.width > level.height ? level.height : level.width) <=
|
|
200
|
+
maxResolution)
|
|
191
201
|
.pop();
|
|
192
202
|
this.setLevel(initialLevel?.level ?? 0);
|
|
193
203
|
}
|
|
@@ -212,8 +222,9 @@ export class LevelSelector extends UICorePlugin {
|
|
|
212
222
|
goBack() {
|
|
213
223
|
trace(`${T} goBack`);
|
|
214
224
|
this.isOpen = false;
|
|
215
|
-
|
|
216
|
-
|
|
225
|
+
setTimeout(() => {
|
|
226
|
+
this.core.getPlugin('bottom_gear').refresh();
|
|
227
|
+
}, 0);
|
|
217
228
|
}
|
|
218
229
|
setLevel(index) {
|
|
219
230
|
trace(`${T} setIndexLevel`, { index });
|
|
@@ -7,6 +7,16 @@ import '../../../assets/media-control/plugins.scss';
|
|
|
7
7
|
* @beta
|
|
8
8
|
*/
|
|
9
9
|
export type MediaControlElement = 'audioTracksSelector' | 'bottomGear' | 'clipText' | 'gear' | 'pip' | 'playbackRate' | 'seekBarContainer' | 'subtitlesSelector';
|
|
10
|
+
/**
|
|
11
|
+
* Custom events emitted by the plugins to communicate with one another
|
|
12
|
+
* @beta
|
|
13
|
+
*/
|
|
14
|
+
export declare enum MediaControlEvents {
|
|
15
|
+
/**
|
|
16
|
+
* Emitted when the gear menu is rendered
|
|
17
|
+
*/
|
|
18
|
+
MEDIACONTROL_GEAR_RENDERED = "mediacontrol:gear:rendered"
|
|
19
|
+
}
|
|
10
20
|
/**
|
|
11
21
|
* The MediaControl provides a foundation for developing custom media controls UI.
|
|
12
22
|
* @beta
|
|
@@ -130,6 +140,7 @@ export declare class MediaControl extends UICorePlugin {
|
|
|
130
140
|
'mouseenter .media-control-layer[data-controls]': string;
|
|
131
141
|
'mouseleave .media-control-layer[data-controls]': string;
|
|
132
142
|
};
|
|
143
|
+
get currentSeekPos(): number;
|
|
133
144
|
/**
|
|
134
145
|
* Current volume [0..100]
|
|
135
146
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,YAAY,EAMZ,IAAI,EACL,MAAM,cAAc,CAAA;AAQrB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGlD,OAAO,kDAAkD,CAAA;AACzD,OAAO,4CAA4C,CAAA;AAWnD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,YAAY,GACZ,UAAU,GACV,MAAM,GACN,KAAK,GACL,cAAc,GACd,kBAAkB,GAClB,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
|