@gcorevideo/player 2.20.7 → 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 +1343 -1343
- package/dist/index.js +241 -217
- package/dist/plugins/index.css +475 -475
- package/dist/plugins/index.js +152 -154
- 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 +5 -14
- 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 +2 -0
- package/lib/plugins/level-selector/LevelSelector.d.ts.map +1 -1
- package/lib/plugins/level-selector/LevelSelector.js +14 -3
- package/lib/plugins/media-control/MediaControl.d.ts +1 -0
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +5 -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/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 +6 -15
- 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 +17 -5
- package/src/plugins/media-control/MediaControl.ts +9 -6
- package/src/plugins/playback-rate/PlaybackRate.ts +89 -105
- 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;AAOnD;;;GAGG;AACH,
|
|
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"}
|
|
@@ -10,17 +10,6 @@ import gearHdIcon from '../../../assets/icons/new/gear-hd.svg';
|
|
|
10
10
|
import { MediaControlEvents } from '../media-control/MediaControl';
|
|
11
11
|
const VERSION = '2.19.12';
|
|
12
12
|
const T = 'plugins.bottom_gear';
|
|
13
|
-
/**
|
|
14
|
-
* Custom events emitted by the plugin
|
|
15
|
-
* @beta
|
|
16
|
-
*/
|
|
17
|
-
export var GearEvents;
|
|
18
|
-
(function (GearEvents) {
|
|
19
|
-
/**
|
|
20
|
-
* Emitted when the gear menu is rendered
|
|
21
|
-
*/
|
|
22
|
-
GearEvents["MEDIACONTROL_GEAR_RENDERED"] = "mediacontrol:gear:rendered";
|
|
23
|
-
})(GearEvents || (GearEvents = {}));
|
|
24
13
|
/**
|
|
25
14
|
* Adds the gear button that triggers extra options menu on the right side of the {@link MediaControl | media control} UI
|
|
26
15
|
* @beta
|
|
@@ -76,7 +65,6 @@ export class BottomGear extends UICorePlugin {
|
|
|
76
65
|
const mediaControl = this.core.getPlugin('media_control');
|
|
77
66
|
assert(mediaControl, 'media_control plugin is required');
|
|
78
67
|
this.listenTo(this.core, ClapprEvents.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
|
|
79
|
-
this.listenTo(this.core, 'gear:refresh', this.refresh); // TODO use direct plugin method call
|
|
80
68
|
this.listenTo(mediaControl, ClapprEvents.MEDIACONTROL_RENDERED, this.render);
|
|
81
69
|
this.listenTo(mediaControl, ClapprEvents.MEDIACONTROL_HIDE, this.hide); // TODO mediacontrol show as well
|
|
82
70
|
}
|
|
@@ -122,11 +110,14 @@ export class BottomGear extends UICorePlugin {
|
|
|
122
110
|
const icon = this.isHd ? gearHdIcon : gearIcon;
|
|
123
111
|
this.$el.html(BottomGear.template({ icon, items }));
|
|
124
112
|
mediaControl.getElement('gear')?.html(this.el);
|
|
125
|
-
this.core.trigger('gear:rendered'); // @deprecated
|
|
126
|
-
mediaControl.trigger(GearEvents.MEDIACONTROL_GEAR_RENDERED); // TODO drop
|
|
127
113
|
mediaControl.trigger(MediaControlEvents.MEDIACONTROL_GEAR_RENDERED);
|
|
128
114
|
return this;
|
|
129
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
|
+
*/
|
|
130
121
|
refresh() {
|
|
131
122
|
this.render();
|
|
132
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 +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;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;
|
|
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"}
|
|
@@ -9,6 +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 '../../../assets/level-selector/style.scss';
|
|
12
|
+
import { MediaControlEvents } from '../media-control/MediaControl.js';
|
|
12
13
|
const T = 'plugins.level_selector';
|
|
13
14
|
const VERSION = '2.19.4';
|
|
14
15
|
/**
|
|
@@ -86,9 +87,18 @@ export class LevelSelector extends UICorePlugin {
|
|
|
86
87
|
* @internal
|
|
87
88
|
*/
|
|
88
89
|
bindEvents() {
|
|
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`);
|
|
89
95
|
const mediaControl = this.core.getPlugin('media_control');
|
|
90
96
|
assert(mediaControl, 'media_control plugin is required');
|
|
91
|
-
this.listenTo(
|
|
97
|
+
this.listenTo(mediaControl, MediaControlEvents.MEDIACONTROL_GEAR_RENDERED, this.onGearRendered);
|
|
98
|
+
}
|
|
99
|
+
onGearRendered() {
|
|
100
|
+
trace(`${T} onGearRendered`);
|
|
101
|
+
this.deferRender();
|
|
92
102
|
}
|
|
93
103
|
bindPlaybackEvents() {
|
|
94
104
|
this.removeAuto = false;
|
|
@@ -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 });
|
|
@@ -140,6 +140,7 @@ export declare class MediaControl extends UICorePlugin {
|
|
|
140
140
|
'mouseenter .media-control-layer[data-controls]': string;
|
|
141
141
|
'mouseleave .media-control-layer[data-controls]': string;
|
|
142
142
|
};
|
|
143
|
+
get currentSeekPos(): number;
|
|
143
144
|
/**
|
|
144
145
|
* Current volume [0..100]
|
|
145
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;AAEvB;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B;;OAEG;IACH,0BAA0B,+BAA+B;CAC1D;AA6BD;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
62
62
|
buttonsColor = null;
|
|
63
63
|
currentDurationValue = 0;
|
|
64
64
|
currentPositionValue = 0;
|
|
65
|
-
currentSeekBarPercentage =
|
|
65
|
+
currentSeekBarPercentage = 0;
|
|
66
66
|
disabledClickableList = [];
|
|
67
67
|
displayedDuration = null;
|
|
68
68
|
displayedPosition = null;
|
|
@@ -180,6 +180,9 @@ export class MediaControl extends UICorePlugin {
|
|
|
180
180
|
'mouseleave .media-control-layer[data-controls]': 'resetUserKeepVisible',
|
|
181
181
|
};
|
|
182
182
|
}
|
|
183
|
+
get currentSeekPos() {
|
|
184
|
+
return this.currentSeekBarPercentage;
|
|
185
|
+
}
|
|
183
186
|
/**
|
|
184
187
|
* Current volume [0..100]
|
|
185
188
|
*/
|
|
@@ -542,8 +545,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
542
545
|
this.changeTogglePlay();
|
|
543
546
|
this.bindContainerEvents();
|
|
544
547
|
this.settingsUpdate();
|
|
545
|
-
this.core.activeContainer
|
|
546
|
-
this.core.activeContainer.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.core.activeContainer.isDvrInUse());
|
|
548
|
+
this.core.activeContainer.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.core.activeContainer.isDvrInUse());
|
|
547
549
|
// TODO test
|
|
548
550
|
if (this.core.activeContainer.mediaControlDisabled) {
|
|
549
551
|
this.disable();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { UICorePlugin } from '@clappr/core';
|
|
1
|
+
import { UICorePlugin, Core } from '@clappr/core';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* PLUGIN that allows changing the playback speed of the video.
|
|
4
4
|
* @beta
|
|
5
5
|
*
|
|
6
6
|
* @remarks
|
|
@@ -10,12 +10,12 @@ import { UICorePlugin } from '@clappr/core';
|
|
|
10
10
|
*
|
|
11
11
|
* - {@link BottomGear | bottom_gear}
|
|
12
12
|
*
|
|
13
|
-
* It renders a button in the gear menu, which opens a dropdown with the
|
|
13
|
+
* It renders a button in the gear menu, which opens a dropdown with the options to change the playback rate.
|
|
14
14
|
*/
|
|
15
15
|
export declare class PlaybackRate extends UICorePlugin {
|
|
16
|
-
private currentPlayback;
|
|
17
16
|
private playbackRates;
|
|
18
17
|
private prevSelectedRate;
|
|
18
|
+
private rendered;
|
|
19
19
|
private selectedRate;
|
|
20
20
|
/**
|
|
21
21
|
* @internal
|
|
@@ -27,9 +27,9 @@ export declare class PlaybackRate extends UICorePlugin {
|
|
|
27
27
|
get supportedVersion(): {
|
|
28
28
|
min: string;
|
|
29
29
|
};
|
|
30
|
-
private static readonly template;
|
|
31
30
|
private static readonly buttonTemplate;
|
|
32
31
|
private static readonly listTemplate;
|
|
32
|
+
constructor(core: Core);
|
|
33
33
|
/**
|
|
34
34
|
* @internal
|
|
35
35
|
*/
|
|
@@ -49,12 +49,13 @@ export declare class PlaybackRate extends UICorePlugin {
|
|
|
49
49
|
* @internal
|
|
50
50
|
*/
|
|
51
51
|
bindEvents(): void;
|
|
52
|
-
private
|
|
52
|
+
private onCoreReady;
|
|
53
|
+
private onActiveContainerChange;
|
|
54
|
+
private onGearRendered;
|
|
55
|
+
private onDvrStateChanged;
|
|
53
56
|
private allRateElements;
|
|
54
57
|
private rateElement;
|
|
55
|
-
private
|
|
56
|
-
private updateLiveStatus;
|
|
57
|
-
private reload;
|
|
58
|
+
private onPlaybackRateChange;
|
|
58
59
|
private shouldRender;
|
|
59
60
|
/**
|
|
60
61
|
* @internal
|
|
@@ -63,11 +64,11 @@ export declare class PlaybackRate extends UICorePlugin {
|
|
|
63
64
|
private onStartAd;
|
|
64
65
|
private onFinishAd;
|
|
65
66
|
private onPlay;
|
|
67
|
+
private resetPlaybackRate;
|
|
66
68
|
private onStop;
|
|
67
69
|
private onRateSelect;
|
|
68
70
|
private onShowMenu;
|
|
69
71
|
private goBack;
|
|
70
|
-
private updatePlaybackRate;
|
|
71
72
|
private setSelectedRate;
|
|
72
73
|
private getTitle;
|
|
73
74
|
private highlightCurrentRate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaybackRate.d.ts","sourceRoot":"","sources":["../../../src/plugins/playback-rate/PlaybackRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAsB,MAAM,cAAc,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,CAAC;AAoC9E;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,aAAa,CAAgD;IAGrE,OAAO,CAAC,gBAAgB,CAAqB;IAE7C,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,YAAY,CAAiC;IAErD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAwB;IAE9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAsB;gBAE9C,IAAI,EAAE,IAAI;IAMtB;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED;;OAEG;IACM,UAAU;IAKnB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACM,MAAM;IA6Bf,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,MAAM;IAGd,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,oBAAoB;CAS7B"}
|