@gcorevideo/player 2.20.1 → 2.20.3
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 +1 -1
- package/dist/index.css +1328 -1328
- package/dist/index.js +305 -217
- package/dist/player.d.ts +270 -52
- package/dist/plugins/index.css +612 -612
- package/dist/plugins/index.js +1459 -1347
- package/docs/api/player.audioselector.md +1 -251
- package/docs/api/player.bigmutebutton.md +1 -156
- package/docs/api/player.clapprstats.exportmetrics.md +4 -0
- package/docs/api/player.clapprstats.md +7 -223
- package/docs/api/player.clapprstats.setupdatemetrics.md +2 -0
- package/docs/api/player.clicktopause.md +5 -113
- package/docs/api/player.clipsplugin.gettext.md +9 -0
- package/docs/api/player.clipsplugin.md +10 -94
- package/docs/api/player.clipspluginsettings.md +57 -0
- package/docs/api/player.clipspluginsettings.text.md +13 -0
- package/docs/api/player.contextmenu._constructor_.md +6 -3
- package/docs/api/player.contextmenu.md +13 -256
- package/docs/api/player.contextmenupluginsettings.label.md +11 -0
- package/docs/api/player.contextmenupluginsettings.md +93 -0
- package/docs/api/player.contextmenupluginsettings.preventshowcontextmenu.md +11 -0
- package/docs/api/player.contextmenupluginsettings.url.md +11 -0
- package/docs/api/player.dvrcontrols.md +1 -1
- package/docs/api/player.errorscreen.md +0 -2
- package/docs/api/player.favicon._constructor_.md +3 -0
- package/docs/api/player.favicon.bindevents.md +3 -0
- package/docs/api/player.favicon.configure.md +3 -0
- package/docs/api/player.favicon.destroy.md +3 -0
- package/docs/api/player.favicon.disable.md +3 -0
- package/docs/api/player.favicon.md +18 -1
- package/docs/api/player.favicon.name.md +3 -0
- package/docs/api/player.favicon.supportedversion.md +3 -0
- package/docs/api/player.gearevents.md +4 -1
- package/docs/api/player.googleanalytics._constructor_.md +3 -0
- package/docs/api/player.googleanalytics.addeventlisteners.md +3 -0
- package/docs/api/player.googleanalytics.embedscript.md +3 -0
- package/docs/api/player.googleanalytics.md +42 -1
- package/docs/api/player.googleanalytics.name.md +3 -0
- package/docs/api/player.googleanalytics.onbufferfull.md +3 -0
- package/docs/api/player.googleanalytics.onbuffering.md +3 -0
- package/docs/api/player.googleanalytics.ondvr.md +3 -0
- package/docs/api/player.googleanalytics.onended.md +3 -0
- package/docs/api/player.googleanalytics.onerror.md +3 -0
- package/docs/api/player.googleanalytics.onfullscreen.md +3 -0
- package/docs/api/player.googleanalytics.onhd.md +3 -0
- package/docs/api/player.googleanalytics.onpause.md +3 -0
- package/docs/api/player.googleanalytics.onplay.md +3 -0
- package/docs/api/player.googleanalytics.onready.md +3 -0
- package/docs/api/player.googleanalytics.onseek.md +3 -0
- package/docs/api/player.googleanalytics.onstop.md +3 -0
- package/docs/api/player.googleanalytics.onvolumechanged.md +3 -0
- package/docs/api/player.googleanalytics.push.md +3 -0
- package/docs/api/player.googleanalytics.supportedversion.md +3 -0
- package/docs/api/player.initeventdata.event.md +3 -0
- package/docs/api/player.initeventdata.md +7 -0
- package/docs/api/player.logo._constructor_.md +3 -0
- package/docs/api/player.logo.attributes.md +3 -0
- package/docs/api/player.logo.bindevents.md +3 -0
- package/docs/api/player.logo.md +20 -1
- package/docs/api/player.logo.name.md +3 -0
- package/docs/api/player.logo.render.md +3 -0
- package/docs/api/player.logo.stoplistening.md +3 -0
- package/docs/api/player.logo.supportedversion.md +3 -0
- package/docs/api/player.logo.template.md +3 -0
- package/docs/api/player.md +68 -20
- package/docs/api/player.mediacontrolelement.md +1 -1
- package/docs/api/player.multicamera.md +2 -0
- package/docs/api/player.seektime.attributes.md +3 -0
- package/docs/api/player.seektime.bindevents.md +3 -0
- package/docs/api/player.seektime.durationshown.md +3 -0
- package/docs/api/player.seektime.getseektime.md +3 -0
- package/docs/api/player.seektime.islivestreamwithdvr.md +3 -0
- package/docs/api/player.seektime.md +31 -0
- package/docs/api/player.seektime.mediacontrol.md +3 -0
- package/docs/api/player.seektime.mediacontrolcontainer.md +3 -0
- package/docs/api/player.seektime.name.md +3 -0
- package/docs/api/player.seektime.render.md +3 -0
- package/docs/api/player.seektime.shouldbevisible.md +3 -0
- package/docs/api/player.seektime.supportedversion.md +3 -0
- package/docs/api/player.seektime.template.md +3 -0
- package/docs/api/player.seektime.update.md +3 -0
- package/docs/api/player.share.md +2 -0
- package/docs/api/player.skiptime.md +2 -0
- package/docs/api/player.stalleventdata.count.md +3 -0
- package/docs/api/player.stalleventdata.event.md +3 -0
- package/docs/api/player.stalleventdata.md +8 -3
- package/docs/api/player.stalleventdata.time.md +3 -0
- package/docs/api/player.stalleventdata.total_ms.md +3 -0
- package/docs/api/player.starteventdata.event.md +3 -0
- package/docs/api/player.starteventdata.md +7 -0
- package/docs/api/player.telemetryevent.md +11 -0
- package/docs/api/player.telemetryeventdata.md +3 -0
- package/docs/api/player.telemetrypluginsettings.md +4 -1
- package/docs/api/player.telemetrypluginsettings.send.md +3 -0
- package/docs/api/player.telemetryrecord.md +3 -0
- package/docs/api/player.thumbnails.md +21 -139
- package/docs/api/player.thumbnailspluginsettings.md +23 -0
- package/docs/api/player.volumefade.md +1 -0
- package/docs/api/player.watcheventdata.event.md +3 -0
- package/docs/api/player.watcheventdata.md +7 -0
- package/lib/index.plugins.d.ts +0 -1
- package/lib/index.plugins.d.ts.map +1 -1
- package/lib/index.plugins.js +0 -1
- package/lib/plugins/audio-selector/AudioSelector.d.ts +28 -6
- package/lib/plugins/audio-selector/AudioSelector.d.ts.map +1 -1
- package/lib/plugins/audio-selector/AudioSelector.js +52 -22
- package/lib/plugins/big-mute-button/BigMuteButton.d.ts +18 -2
- package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
- package/lib/plugins/big-mute-button/BigMuteButton.js +21 -16
- package/lib/plugins/bottom-gear/BottomGear.d.ts +1 -0
- package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.js +1 -0
- package/lib/plugins/clappr-stats/ClapprStats.d.ts +31 -8
- package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
- package/lib/plugins/clappr-stats/ClapprStats.js +24 -0
- package/lib/plugins/clappr-stats/types.d.ts +12 -0
- package/lib/plugins/clappr-stats/types.d.ts.map +1 -1
- package/lib/plugins/clappr-stats/types.js +3 -0
- package/lib/plugins/click-to-pause/ClickToPause.d.ts +13 -1
- package/lib/plugins/click-to-pause/ClickToPause.d.ts.map +1 -1
- package/lib/plugins/click-to-pause/ClickToPause.js +14 -4
- package/lib/plugins/clips/Clips.d.ts +34 -2
- package/lib/plugins/clips/Clips.d.ts.map +1 -1
- package/lib/plugins/clips/Clips.js +51 -22
- package/lib/plugins/context-menu/ContextMenu.d.ts +40 -13
- package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
- package/lib/plugins/context-menu/ContextMenu.js +48 -36
- package/lib/plugins/dvr-controls/DvrControls.d.ts +1 -3
- package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
- package/lib/plugins/dvr-controls/DvrControls.js +11 -28
- package/lib/plugins/error-screen/ErrorScreen.d.ts +0 -1
- package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
- package/lib/plugins/error-screen/ErrorScreen.js +0 -1
- package/lib/plugins/favicon/Favicon.d.ts +4 -0
- package/lib/plugins/favicon/Favicon.d.ts.map +1 -1
- package/lib/plugins/favicon/Favicon.js +4 -0
- package/lib/plugins/google-analytics/GoogleAnalytics.d.ts +4 -0
- package/lib/plugins/google-analytics/GoogleAnalytics.d.ts.map +1 -1
- package/lib/plugins/google-analytics/GoogleAnalytics.js +5 -1
- package/lib/plugins/index.d.ts +0 -1
- package/lib/plugins/index.d.ts.map +1 -1
- package/lib/plugins/index.js +0 -1
- package/lib/plugins/logo/Logo.d.ts +4 -0
- package/lib/plugins/logo/Logo.d.ts.map +1 -1
- package/lib/plugins/logo/Logo.js +4 -0
- package/lib/plugins/media-control/MediaControl.d.ts +1 -1
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +3 -1
- package/lib/plugins/multi-camera/MultiCamera.d.ts +3 -0
- package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
- package/lib/plugins/multi-camera/MultiCamera.js +3 -0
- package/lib/plugins/seek-time/SeekTime.d.ts +4 -0
- package/lib/plugins/seek-time/SeekTime.d.ts.map +1 -1
- package/lib/plugins/seek-time/SeekTime.js +5 -1
- package/lib/plugins/share/Share.d.ts +3 -0
- package/lib/plugins/share/Share.d.ts.map +1 -1
- package/lib/plugins/share/Share.js +3 -0
- package/lib/plugins/skip-time/SkipTime.d.ts +3 -0
- package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
- package/lib/plugins/skip-time/SkipTime.js +3 -0
- package/lib/plugins/telemetry/Telemetry.d.ts +18 -0
- package/lib/plugins/telemetry/Telemetry.d.ts.map +1 -1
- package/lib/plugins/telemetry/Telemetry.js +1 -0
- package/lib/plugins/thumbnails/Thumbnails.d.ts +48 -3
- package/lib/plugins/thumbnails/Thumbnails.d.ts.map +1 -1
- package/lib/plugins/thumbnails/Thumbnails.js +52 -18
- package/lib/plugins/volume-fade/VolumeFade.d.ts +1 -0
- package/lib/plugins/volume-fade/VolumeFade.d.ts.map +1 -1
- package/lib/plugins/volume-fade/VolumeFade.js +1 -0
- package/package.json +1 -1
- package/src/index.plugins.ts +0 -1
- package/src/plugins/audio-selector/AudioSelector.ts +227 -154
- package/src/plugins/big-mute-button/BigMuteButton.ts +100 -79
- package/src/plugins/bottom-gear/BottomGear.ts +1 -0
- package/src/plugins/clappr-stats/ClapprStats.ts +32 -8
- package/src/plugins/clappr-stats/types.ts +13 -0
- package/src/plugins/click-to-pause/ClickToPause.ts +47 -36
- package/src/plugins/clips/Clips.ts +127 -71
- package/src/plugins/context-menu/ContextMenu.ts +105 -76
- package/src/plugins/dvr-controls/DvrControls.ts +11 -30
- package/src/plugins/error-screen/ErrorScreen.ts +0 -1
- package/src/plugins/favicon/Favicon.ts +4 -0
- package/src/plugins/google-analytics/GoogleAnalytics.ts +5 -1
- package/src/plugins/index.ts +0 -1
- package/src/plugins/logo/Logo.ts +4 -0
- package/src/plugins/media-control/MediaControl.ts +4 -1
- package/src/plugins/multi-camera/MultiCamera.ts +3 -0
- package/src/plugins/seek-time/SeekTime.ts +5 -1
- package/src/plugins/share/Share.ts +3 -0
- package/src/plugins/skip-time/SkipTime.ts +3 -0
- package/src/plugins/telemetry/Telemetry.ts +18 -0
- package/src/plugins/thumbnails/Thumbnails.ts +268 -194
- package/src/plugins/volume-fade/VolumeFade.ts +1 -0
- package/temp/player.api.json +622 -2463
- package/tsconfig.tsbuildinfo +1 -1
- package/docs/api/player.audioselector.attributes.md +0 -17
- package/docs/api/player.audioselector.bindevents.md +0 -18
- package/docs/api/player.audioselector.events.md +0 -17
- package/docs/api/player.audioselector.hideselecttrackmenu.md +0 -18
- package/docs/api/player.audioselector.name.md +0 -14
- package/docs/api/player.audioselector.onshowlevelselectmenu.md +0 -18
- package/docs/api/player.audioselector.reload.md +0 -18
- package/docs/api/player.audioselector.render.md +0 -18
- package/docs/api/player.audioselector.supportedversion.md +0 -16
- package/docs/api/player.audioselector.template.md +0 -14
- package/docs/api/player.audioselector.togglecontextmenu.md +0 -18
- package/docs/api/player.audioselector.unbindevents.md +0 -18
- package/docs/api/player.audioselector.version.md +0 -14
- package/docs/api/player.bigmutebutton.bindevents.md +0 -18
- package/docs/api/player.bigmutebutton.events.md +0 -17
- package/docs/api/player.bigmutebutton.name.md +0 -14
- package/docs/api/player.bigmutebutton.render.md +0 -18
- package/docs/api/player.bigmutebutton.supportedversion.md +0 -16
- package/docs/api/player.bigmutebutton.template.md +0 -14
- package/docs/api/player.clapprstats._buildreport.md +0 -18
- package/docs/api/player.clapprstats._defaultreport.md +0 -52
- package/docs/api/player.clapprstats._playbackname.md +0 -14
- package/docs/api/player.clapprstats._playbacktype.md +0 -14
- package/docs/api/player.clapprstats.bindevents.md +0 -18
- package/docs/api/player.clapprstats.destroy.md +0 -18
- package/docs/api/player.clapprstats.name.md +0 -14
- package/docs/api/player.clapprstats.onfirstplaying.md +0 -18
- package/docs/api/player.clapprstats.playafterpause.md +0 -18
- package/docs/api/player.clapprstats.starttimers.md +0 -18
- package/docs/api/player.clapprstats.stopreporting.md +0 -18
- package/docs/api/player.clapprstats.supportedversion.md +0 -16
- package/docs/api/player.clicktopause.bindevents.md +0 -15
- package/docs/api/player.clicktopause.config.md +0 -11
- package/docs/api/player.clicktopause.name.md +0 -11
- package/docs/api/player.clicktopause.supportedversion.md +0 -13
- package/docs/api/player.clipsplugin.attributes.md +0 -13
- package/docs/api/player.clipsplugin.bindevents.md +0 -15
- package/docs/api/player.clipsplugin.makesvg.md +0 -49
- package/docs/api/player.clipsplugin.name.md +0 -11
- package/docs/api/player.clipsplugin.unbindevents.md +0 -15
- package/docs/api/player.contextmenu.attributes.md +0 -13
- package/docs/api/player.contextmenu.bindevents.md +0 -15
- package/docs/api/player.contextmenu.destroy.md +0 -15
- package/docs/api/player.contextmenu.events.md +0 -13
- package/docs/api/player.contextmenu.exposeversion.md +0 -14
- package/docs/api/player.contextmenu.label.md +0 -11
- package/docs/api/player.contextmenu.mediacontrol.md +0 -11
- package/docs/api/player.contextmenu.name.md +0 -11
- package/docs/api/player.contextmenu.render.md +0 -15
- package/docs/api/player.contextmenu.supportedversion.md +0 -13
- package/docs/api/player.contextmenu.template.md +0 -11
- package/docs/api/player.contextmenu.url.md +0 -11
- package/docs/api/player.disablecontrols.bindevents.md +0 -15
- package/docs/api/player.disablecontrols.container.md +0 -11
- package/docs/api/player.disablecontrols.md +0 -138
- package/docs/api/player.disablecontrols.name.md +0 -11
- package/docs/api/player.disablecontrols.supportedversion.md +0 -13
- package/docs/api/player.disablecontrols.unbindevents.md +0 -15
- package/docs/api/player.thumbnails.attributes.md +0 -13
- package/docs/api/player.thumbnails.bindevents.md +0 -15
- package/docs/api/player.thumbnails.name.md +0 -11
- package/docs/api/player.thumbnails.settext.md +0 -49
- package/docs/api/player.thumbnails.supportedversion.md +0 -13
- package/docs/api/player.thumbnails.template.md +0 -11
- package/src/plugins/disable-controls/DisableControls.ts +0 -81
- package/src/plugins/ga-events/GaEvents.js +0 -395
- package/src/plugins/ga-events/ga-tracking.js +0 -46
|
@@ -4,42 +4,62 @@ import { CLAPPR_VERSION } from '../../build.js';
|
|
|
4
4
|
import pluginHtml from '../../../assets/audio-selector/track-selector.ejs';
|
|
5
5
|
import '../../../assets/audio-selector/style.scss';
|
|
6
6
|
import audioArrow from '../../../assets/icons/old/quality-arrow.svg';
|
|
7
|
+
import assert from 'assert';
|
|
7
8
|
const VERSION = '0.0.1';
|
|
8
9
|
// const T = 'plugins.audio_selector';
|
|
9
10
|
const AUTO = 0;
|
|
10
11
|
/**
|
|
12
|
+
* Adds an audio track selector to the media control UI.
|
|
11
13
|
* @beta
|
|
12
14
|
*/
|
|
13
15
|
export class AudioSelector extends UICorePlugin {
|
|
16
|
+
// TODO
|
|
14
17
|
selectedTrackId;
|
|
15
18
|
currentTrack = null;
|
|
16
19
|
tracks = [];
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
17
23
|
get name() {
|
|
18
|
-
return '
|
|
24
|
+
return 'audio_selector';
|
|
19
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
20
29
|
get supportedVersion() {
|
|
21
30
|
return { min: CLAPPR_VERSION };
|
|
22
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
23
35
|
static get version() {
|
|
24
36
|
return VERSION;
|
|
25
37
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
38
|
+
static template = template(pluginHtml);
|
|
39
|
+
/**
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
29
42
|
get attributes() {
|
|
30
43
|
return {
|
|
31
|
-
|
|
32
|
-
'data-track-selector': ''
|
|
44
|
+
class: this.name,
|
|
45
|
+
'data-track-selector': '',
|
|
33
46
|
};
|
|
34
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
35
51
|
get events() {
|
|
36
52
|
return {
|
|
37
53
|
'click [data-track-selector-select]': 'onTrackSelect',
|
|
38
|
-
'click [data-track-selector-button]': 'onShowLevelSelectMenu'
|
|
54
|
+
'click [data-track-selector-button]': 'onShowLevelSelectMenu',
|
|
39
55
|
};
|
|
40
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
41
60
|
bindEvents() {
|
|
42
61
|
this.listenTo(this.core, Events.CORE_READY, this.bindPlaybackEvents);
|
|
62
|
+
// TODO CORE_ACTIVE_CONTAINER_CHANGED
|
|
43
63
|
this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.reload);
|
|
44
64
|
this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render);
|
|
45
65
|
this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideSelectTrackMenu);
|
|
@@ -80,12 +100,12 @@ export class AudioSelector extends UICorePlugin {
|
|
|
80
100
|
if (defaultTrack) {
|
|
81
101
|
this.currentTrack = {
|
|
82
102
|
id: defaultTrack.id,
|
|
83
|
-
label: defaultTrack.name
|
|
103
|
+
label: defaultTrack.name,
|
|
84
104
|
};
|
|
85
105
|
}
|
|
86
|
-
this.fillTracks(data.audioTracks.map(p => ({
|
|
106
|
+
this.fillTracks(data.audioTracks.map((p) => ({
|
|
87
107
|
id: p.id,
|
|
88
|
-
label: p.name
|
|
108
|
+
label: p.name,
|
|
89
109
|
})), defaultTrack?.id);
|
|
90
110
|
});
|
|
91
111
|
currentPlayback._hls.on(HlsEvents.AUDIO_TRACK_SWITCHING, this.startTrackSwitch.bind(this));
|
|
@@ -131,23 +151,30 @@ export class AudioSelector extends UICorePlugin {
|
|
|
131
151
|
if (!currentPlayback) {
|
|
132
152
|
return false;
|
|
133
153
|
}
|
|
134
|
-
const { audioTracks } =
|
|
154
|
+
const { audioTracks } = currentPlayback.activePlayback._hls || currentPlayback.$el.get(0);
|
|
135
155
|
this.tracks = audioTracks;
|
|
136
156
|
// Only care if we have at least 2 to choose from
|
|
137
157
|
return this.tracks && this.tracks.length > 1;
|
|
138
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* @internal
|
|
161
|
+
*/
|
|
139
162
|
render() {
|
|
140
|
-
if (this.shouldRender()) {
|
|
141
|
-
|
|
142
|
-
if (Object.prototype.hasOwnProperty.call(this.core.mediaControl, '$audioTracksSelector') &&
|
|
143
|
-
this.core.mediaControl.$audioTracksSelector.length > 0) {
|
|
144
|
-
this.core.mediaControl.$audioTracksSelector.append(this.el);
|
|
145
|
-
}
|
|
146
|
-
this.highlightCurrentTrack();
|
|
163
|
+
if (!this.shouldRender()) {
|
|
164
|
+
return this;
|
|
147
165
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
166
|
+
const mediaControl = this.core.getPlugin('media_control');
|
|
167
|
+
assert(mediaControl, 'media_control plugin is required');
|
|
168
|
+
this.$el.html(AudioSelector.template({ tracks: this.tracks, title: this.getTitle() }));
|
|
169
|
+
const ats = mediaControl.getElement('audioTracksSelector');
|
|
170
|
+
if (!(ats && ats.length > 0)) {
|
|
171
|
+
return this;
|
|
172
|
+
}
|
|
173
|
+
ats.append(this.el);
|
|
174
|
+
this.highlightCurrentTrack();
|
|
175
|
+
const aa = ats.find('audioArrow');
|
|
176
|
+
if (aa.length > 0) {
|
|
177
|
+
aa.append(audioArrow);
|
|
151
178
|
}
|
|
152
179
|
return this;
|
|
153
180
|
}
|
|
@@ -199,9 +226,11 @@ export class AudioSelector extends UICorePlugin {
|
|
|
199
226
|
this.toggleContextMenu();
|
|
200
227
|
}
|
|
201
228
|
hideSelectTrackMenu() {
|
|
229
|
+
;
|
|
202
230
|
this.$('.audio_selector ul').hide();
|
|
203
231
|
}
|
|
204
232
|
toggleContextMenu() {
|
|
233
|
+
;
|
|
205
234
|
this.$('.audio_selector ul').toggle();
|
|
206
235
|
}
|
|
207
236
|
buttonElement() {
|
|
@@ -211,7 +240,8 @@ export class AudioSelector extends UICorePlugin {
|
|
|
211
240
|
return this.$('.audio_selector button .audio-text');
|
|
212
241
|
}
|
|
213
242
|
trackElement(id) {
|
|
214
|
-
return this.$('.audio_selector ul a' +
|
|
243
|
+
return this.$('.audio_selector ul a' +
|
|
244
|
+
(id !== undefined ? '[data-track-selector-select="' + id + '"]' : '')).parent();
|
|
215
245
|
}
|
|
216
246
|
getTitle() {
|
|
217
247
|
if (!this.tracks) {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { UICorePlugin } from '@clappr/core';
|
|
2
2
|
import '../../../assets/big-mute-button/big-mute-button.scss';
|
|
3
3
|
/**
|
|
4
|
+
* Displays a big mute button over the video when it's muted.
|
|
5
|
+
* Once pressed, it unmutes the video.
|
|
4
6
|
* @beta
|
|
5
7
|
*/
|
|
6
8
|
export declare class BigMuteButton extends UICorePlugin {
|
|
@@ -8,17 +10,28 @@ export declare class BigMuteButton extends UICorePlugin {
|
|
|
8
10
|
private _adIsPlaying;
|
|
9
11
|
private $bigMuteBtnContainer;
|
|
10
12
|
private $bigMuteButton;
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
11
16
|
get name(): string;
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
12
20
|
get supportedVersion(): {
|
|
13
21
|
min: string;
|
|
14
22
|
};
|
|
15
|
-
|
|
23
|
+
private static readonly template;
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
16
27
|
get events(): {
|
|
17
28
|
'click .big-mute-icon': string;
|
|
18
29
|
'click .big-mute-icon-wrapper': string;
|
|
19
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
20
34
|
bindEvents(): void;
|
|
21
|
-
private unBindEvents;
|
|
22
35
|
private onCoreReady;
|
|
23
36
|
private onContainerVolume;
|
|
24
37
|
private onContainerStart;
|
|
@@ -27,6 +40,9 @@ export declare class BigMuteButton extends UICorePlugin {
|
|
|
27
40
|
private onStartAd;
|
|
28
41
|
private onFinishAd;
|
|
29
42
|
private shouldRender;
|
|
43
|
+
/**
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
30
46
|
render(): this;
|
|
31
47
|
private hideBigMuteBtn;
|
|
32
48
|
private showBigMuteBtn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigMuteButton.d.ts","sourceRoot":"","sources":["../../../src/plugins/big-mute-button/BigMuteButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAS,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"BigMuteButton.d.ts","sourceRoot":"","sources":["../../../src/plugins/big-mute-button/BigMuteButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAS,MAAM,cAAc,CAAA;AAQpE,OAAO,sDAAsD,CAAA;AAM7D;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,qBAAqB,CAAQ;IAErC,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,oBAAoB,CAA2B;IAEvD,OAAO,CAAC,cAAc,CAA2B;IAEjD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED;;OAEG;IACM,UAAU;IAenB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACM,MAAM;IAuBf,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,qBAAqB;CAS9B"}
|
|
@@ -4,8 +4,11 @@ import { CLAPPR_VERSION } from '../../build.js';
|
|
|
4
4
|
import volumeMuteIcon from '../../../assets/icons/new/volume-off.svg';
|
|
5
5
|
import pluginHtml from '../../../assets/big-mute-button/big-mute-button.ejs';
|
|
6
6
|
import '../../../assets/big-mute-button/big-mute-button.scss';
|
|
7
|
-
const T =
|
|
7
|
+
const T = 'plugins.big_mute_button';
|
|
8
|
+
// TODO rewrite as a container plugin
|
|
8
9
|
/**
|
|
10
|
+
* Displays a big mute button over the video when it's muted.
|
|
11
|
+
* Once pressed, it unmutes the video.
|
|
9
12
|
* @beta
|
|
10
13
|
*/
|
|
11
14
|
export class BigMuteButton extends UICorePlugin {
|
|
@@ -13,21 +16,31 @@ export class BigMuteButton extends UICorePlugin {
|
|
|
13
16
|
_adIsPlaying = false;
|
|
14
17
|
$bigMuteBtnContainer = null;
|
|
15
18
|
$bigMuteButton = null;
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
16
22
|
get name() {
|
|
17
23
|
return 'big_mute_button';
|
|
18
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
19
28
|
get supportedVersion() {
|
|
20
29
|
return { min: CLAPPR_VERSION };
|
|
21
30
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
static template = template(pluginHtml);
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
25
35
|
get events() {
|
|
26
36
|
return {
|
|
27
37
|
'click .big-mute-icon': 'handleBigMuteBtnClick',
|
|
28
38
|
'click .big-mute-icon-wrapper': 'destroyBigMuteBtn',
|
|
29
39
|
};
|
|
30
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
31
44
|
bindEvents() {
|
|
32
45
|
super.bindEvents();
|
|
33
46
|
this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
|
|
@@ -38,17 +51,6 @@ export class BigMuteButton extends UICorePlugin {
|
|
|
38
51
|
});
|
|
39
52
|
this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.mediaControlRendered);
|
|
40
53
|
}
|
|
41
|
-
unBindEvents() {
|
|
42
|
-
// @ts-ignore
|
|
43
|
-
this.stopListening(this.core, Events.CORE_READY);
|
|
44
|
-
this.stopListening(this.core, 'core:advertisement:start', this.onStartAd);
|
|
45
|
-
this.stopListening(this.core, 'core:advertisement:finish', this.onFinishAd);
|
|
46
|
-
this.stopListening(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.mediaControlRendered);
|
|
47
|
-
const container = this.core.activeContainer;
|
|
48
|
-
if (container) {
|
|
49
|
-
this.stopListening(container.playback, Events.PLAYBACK_PLAY, this.render);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
54
|
onCoreReady() {
|
|
53
55
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_VOLUME, this.onContainerVolume);
|
|
54
56
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_READY, this.onContainerStart);
|
|
@@ -105,12 +107,15 @@ export class BigMuteButton extends UICorePlugin {
|
|
|
105
107
|
});
|
|
106
108
|
return autoPlay && !wasMuted && volume === 0;
|
|
107
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* @internal
|
|
112
|
+
*/
|
|
108
113
|
render() {
|
|
109
114
|
if (this.shouldRender()) {
|
|
110
115
|
trace(`${T} render`, {
|
|
111
116
|
el: !!this.$el,
|
|
112
117
|
});
|
|
113
|
-
this.$el.html(
|
|
118
|
+
this.$el.html(BigMuteButton.template());
|
|
114
119
|
this.$bigMuteBtnContainer = this.$el.find('.big-mute-icon-wrapper[data-big-mute]');
|
|
115
120
|
this._adIsPlaying && this.$bigMuteBtnContainer.addClass('hide');
|
|
116
121
|
this.$bigMuteButton = this.$bigMuteBtnContainer.find('.big-mute-icon');
|
|
@@ -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;AAMnD
|
|
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;AAMnD;;;GAGG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,0BAA0B,+BAA+B;CAC1D;AAED;;;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;IAUnB;;;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;IAU5B;;OAEG;IACM,MAAM;IAmBf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -2,7 +2,10 @@ import { Container, ContainerPlugin } from '@clappr/core';
|
|
|
2
2
|
import type { QualityLevel } from '../../playback.types.js';
|
|
3
3
|
import type { Metrics, MetricsUpdateFn } from './types.js';
|
|
4
4
|
/**
|
|
5
|
+
* Collects useful statistics about playback performance.
|
|
5
6
|
* @beta
|
|
7
|
+
* @remarks
|
|
8
|
+
* This plugin does not render anything and is supposed to be extended or used together with other plugins that actually render something.
|
|
6
9
|
*/
|
|
7
10
|
export declare class ClapprStats extends ContainerPlugin {
|
|
8
11
|
private bwMeasureCount;
|
|
@@ -17,27 +20,47 @@ export declare class ClapprStats extends ContainerPlugin {
|
|
|
17
20
|
private updateFn;
|
|
18
21
|
private urisToMeasureBandwidth;
|
|
19
22
|
private uriToMeasureLatency;
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
20
26
|
get name(): string;
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
21
30
|
get supportedVersion(): {
|
|
22
31
|
min: string;
|
|
23
32
|
};
|
|
24
|
-
get _playbackName()
|
|
25
|
-
get _playbackType()
|
|
33
|
+
private get _playbackName();
|
|
34
|
+
private get _playbackType();
|
|
26
35
|
private _now;
|
|
27
36
|
private _inc;
|
|
28
37
|
private start;
|
|
29
38
|
private _stop;
|
|
39
|
+
/**
|
|
40
|
+
* Registers a callback to receive the metrics.
|
|
41
|
+
* @param updateMetricsFn
|
|
42
|
+
*/
|
|
30
43
|
setUpdateMetrics(updateMetricsFn: MetricsUpdateFn): void;
|
|
31
|
-
_defaultReport
|
|
44
|
+
private _defaultReport;
|
|
32
45
|
constructor(container: Container);
|
|
46
|
+
/**
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
33
49
|
bindEvents(): void;
|
|
50
|
+
/**
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
34
53
|
destroy(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Returns the collected metrics.
|
|
56
|
+
* @returns The collected metrics
|
|
57
|
+
*/
|
|
35
58
|
exportMetrics(): Metrics;
|
|
36
59
|
onBitrate(newBitrate: QualityLevel): void;
|
|
37
|
-
stopReporting
|
|
38
|
-
startTimers
|
|
39
|
-
onFirstPlaying
|
|
40
|
-
playAfterPause
|
|
60
|
+
private stopReporting;
|
|
61
|
+
private startTimers;
|
|
62
|
+
private onFirstPlaying;
|
|
63
|
+
private playAfterPause;
|
|
41
64
|
private onPlay;
|
|
42
65
|
private onPause;
|
|
43
66
|
private onSeek;
|
|
@@ -48,7 +71,7 @@ export declare class ClapprStats extends ContainerPlugin {
|
|
|
48
71
|
private onProgress;
|
|
49
72
|
private _newMetrics;
|
|
50
73
|
private _onCompletion;
|
|
51
|
-
_buildReport
|
|
74
|
+
private _buildReport;
|
|
52
75
|
private _fetchFPS;
|
|
53
76
|
private _calculateBitrates;
|
|
54
77
|
private _calculatePercentages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClapprStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/ClapprStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAA6B,MAAM,cAAc,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAA8B,MAAM,yBAAyB,CAAC;AAKxF,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAkB3D
|
|
1
|
+
{"version":3,"file":"ClapprStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/ClapprStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAA6B,MAAM,cAAc,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAA8B,MAAM,yBAAyB,CAAC;AAKxF,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAkB3D;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,CAAC,sBAAsB,CAAK;IAEnC,OAAO,CAAC,OAAO,CAAyB;IAExC,OAAO,CAAC,UAAU,CAGhB;IAEF,OAAO,CAAC,SAAS,CAA6B;IAE9C,OAAO,CAAC,qBAAqB,CAAS;IAEtC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,MAAM,CAOZ;IAEF,OAAO,CAAC,QAAQ,CAAkC;IAElD,OAAO,CAAC,sBAAsB,CAA0B;IAExD,OAAO,CAAC,mBAAmB,CAAqB;IAEhD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,KAAK;IAKb;;;OAGG;IACH,gBAAgB,CAAC,eAAe,EAAE,eAAe;IAIjD,OAAO,CAAC,cAAc;gBAIV,SAAS,EAAE,SAAS;IAchC;;OAEG;IACM,UAAU;IAmBnB;;OAEG;IACM,OAAO;IAKhB;;;OAGG;IACH,aAAa;IAIb,SAAS,CAAC,UAAU,EAAE,YAAY;IAgBlC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,iBAAiB;CAmD1B"}
|
|
@@ -6,7 +6,10 @@ import { newMetrics } from './utils.js';
|
|
|
6
6
|
// TODO: fix
|
|
7
7
|
const updateMetrics = () => { };
|
|
8
8
|
/**
|
|
9
|
+
* Collects useful statistics about playback performance.
|
|
9
10
|
* @beta
|
|
11
|
+
* @remarks
|
|
12
|
+
* This plugin does not render anything and is supposed to be extended or used together with other plugins that actually render something.
|
|
10
13
|
*/
|
|
11
14
|
export class ClapprStats extends ContainerPlugin {
|
|
12
15
|
bwMeasureCount = 0;
|
|
@@ -28,9 +31,15 @@ export class ClapprStats extends ContainerPlugin {
|
|
|
28
31
|
updateFn = updateMetrics;
|
|
29
32
|
urisToMeasureBandwidth;
|
|
30
33
|
uriToMeasureLatency;
|
|
34
|
+
/**
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
31
37
|
get name() {
|
|
32
38
|
return 'clappr_stats';
|
|
33
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
34
43
|
get supportedVersion() {
|
|
35
44
|
return { min: CLAPPR_VERSION };
|
|
36
45
|
}
|
|
@@ -58,6 +67,10 @@ export class ClapprStats extends ContainerPlugin {
|
|
|
58
67
|
// this._metrics.timers[timer] += this._now() - this[`_start${timer}`];
|
|
59
68
|
this.metrics.timers[timer] += this._now() - this.timers[timer];
|
|
60
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Registers a callback to receive the metrics.
|
|
72
|
+
* @param updateMetricsFn
|
|
73
|
+
*/
|
|
61
74
|
setUpdateMetrics(updateMetricsFn) {
|
|
62
75
|
this.updateFn = updateMetricsFn;
|
|
63
76
|
}
|
|
@@ -76,6 +89,9 @@ export class ClapprStats extends ContainerPlugin {
|
|
|
76
89
|
calls: []
|
|
77
90
|
};
|
|
78
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
79
95
|
bindEvents() {
|
|
80
96
|
this.listenTo(this.container, CoreEvents.CONTAINER_BITRATE, this.onBitrate);
|
|
81
97
|
this.listenTo(this.container, CoreEvents.CONTAINER_STOP, this.stopReporting);
|
|
@@ -94,10 +110,17 @@ export class ClapprStats extends ContainerPlugin {
|
|
|
94
110
|
this.listenTo(this.container.playback, CoreEvents.PLAYBACK_PROGRESS, this.onProgress);
|
|
95
111
|
this.listenTo(this.container.playback, CoreEvents.PLAYBACK_TIMEUPDATE, this.onTimeUpdate);
|
|
96
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
97
116
|
destroy() {
|
|
98
117
|
this.stopReporting();
|
|
99
118
|
super.destroy();
|
|
100
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Returns the collected metrics.
|
|
122
|
+
* @returns The collected metrics
|
|
123
|
+
*/
|
|
101
124
|
exportMetrics() {
|
|
102
125
|
return structuredClone(this.metrics);
|
|
103
126
|
}
|
|
@@ -119,6 +142,7 @@ export class ClapprStats extends ContainerPlugin {
|
|
|
119
142
|
this.intervalId = null;
|
|
120
143
|
}
|
|
121
144
|
this._newMetrics();
|
|
145
|
+
// TODO
|
|
122
146
|
// @ts-ignore
|
|
123
147
|
this.stopListening();
|
|
124
148
|
this.bindEvents();
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @beta
|
|
3
|
+
*/
|
|
1
4
|
export type Metrics = {
|
|
2
5
|
counters: {
|
|
3
6
|
play: number;
|
|
@@ -36,13 +39,22 @@ export type Metrics = {
|
|
|
36
39
|
};
|
|
37
40
|
custom: Record<string, unknown>;
|
|
38
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* @beta
|
|
44
|
+
*/
|
|
39
45
|
export type BitrateTrackRecord = {
|
|
40
46
|
start: number;
|
|
41
47
|
end?: number;
|
|
42
48
|
time?: number;
|
|
43
49
|
bitrate: number;
|
|
44
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* @beta
|
|
53
|
+
*/
|
|
45
54
|
export type MetricsUpdateFn = (metrics: Metrics) => void;
|
|
55
|
+
/**
|
|
56
|
+
* @beta
|
|
57
|
+
*/
|
|
46
58
|
export declare enum ClapprStatsEvents {
|
|
47
59
|
REPORT_EVENT = "clappr:stats:report",
|
|
48
60
|
PERCENTAGE_EVENT = "clappr:stats:percentage"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/types.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,kBAAkB,EAAE,CAAC;QACtC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACtC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAEzD;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,YAAY,wBAAwB;IACpC,gBAAgB,4BAA4B;CAC7C"}
|
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import { ContainerPlugin } from '@clappr/core';
|
|
2
|
+
/**
|
|
3
|
+
* Adds a behavior of toggling the playback state on click over the container
|
|
4
|
+
* @beta
|
|
5
|
+
*/
|
|
2
6
|
export declare class ClickToPause extends ContainerPlugin {
|
|
3
7
|
private pointerEnabled;
|
|
4
8
|
private timer;
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
5
12
|
get name(): string;
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
6
16
|
get supportedVersion(): {
|
|
7
17
|
min: string;
|
|
8
18
|
};
|
|
9
|
-
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
10
22
|
bindEvents(): void;
|
|
11
23
|
private click;
|
|
12
24
|
private settingsUpdate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickToPause.d.ts","sourceRoot":"","sources":["../../../src/plugins/click-to-pause/ClickToPause.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAoB,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"ClickToPause.d.ts","sourceRoot":"","sources":["../../../src/plugins/click-to-pause/ClickToPause.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAoB,MAAM,cAAc,CAAA;AAShE;;;GAGG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAC/C,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,KAAK,CAAqB;IAElC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;CAMnB"}
|
|
@@ -1,22 +1,32 @@
|
|
|
1
1
|
//Copyright 2014 Globo.com Player authors. All rights reserved.
|
|
2
2
|
// Use of this source code is governed by a BSD-style
|
|
3
|
-
// license that can be found
|
|
3
|
+
// license that can be found at https://github.com/clappr/clappr-plugins/blob/master/LICENSE.
|
|
4
4
|
import { ContainerPlugin, Events, Playback } from '@clappr/core';
|
|
5
5
|
import { trace } from '@gcorevideo/utils';
|
|
6
6
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
7
7
|
const T = 'plugins.click_to_pause_custom';
|
|
8
|
+
/**
|
|
9
|
+
* Adds a behavior of toggling the playback state on click over the container
|
|
10
|
+
* @beta
|
|
11
|
+
*/
|
|
8
12
|
export class ClickToPause extends ContainerPlugin {
|
|
9
13
|
pointerEnabled = false;
|
|
10
14
|
timer = null;
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
11
18
|
get name() {
|
|
12
19
|
return 'click_to_pause_custom';
|
|
13
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
14
24
|
get supportedVersion() {
|
|
15
25
|
return { min: CLAPPR_VERSION };
|
|
16
26
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
20
30
|
bindEvents() {
|
|
21
31
|
this.listenTo(this.container, Events.CONTAINER_CLICK, this.click);
|
|
22
32
|
this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate);
|
|
@@ -1,25 +1,57 @@
|
|
|
1
1
|
import { UICorePlugin } from '@clappr/core';
|
|
2
2
|
import '../../../assets/clips/clips.scss';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options
|
|
5
|
+
*/
|
|
6
|
+
export interface ClipsPluginSettings {
|
|
7
|
+
/**
|
|
8
|
+
* The text to display over the seekbar.
|
|
9
|
+
*/
|
|
10
|
+
text: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Adds a behavior of showing a text over the seekbar to indicate the current clip.
|
|
14
|
+
* @beta
|
|
15
|
+
* @remarks
|
|
16
|
+
* Depends on:
|
|
17
|
+
*
|
|
18
|
+
* - {@link MediaControl}
|
|
19
|
+
*
|
|
20
|
+
* Configuration options - {@link ClipsPluginSettings}
|
|
21
|
+
*/
|
|
3
22
|
export declare class ClipsPlugin extends UICorePlugin {
|
|
4
23
|
private clips;
|
|
5
24
|
private duration;
|
|
6
25
|
private durationGetting;
|
|
7
26
|
private _oldContainer;
|
|
8
27
|
private svgMask;
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
9
31
|
get name(): string;
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
10
35
|
get attributes(): {
|
|
11
36
|
class: string;
|
|
12
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
13
41
|
bindEvents(): void;
|
|
14
42
|
private _onCoreReady;
|
|
15
|
-
unbindEvents(): void;
|
|
16
43
|
private _onMediaControlContainerChanged;
|
|
17
44
|
private playerResize;
|
|
18
45
|
private _bindContainerEvents;
|
|
19
46
|
private onTimeUpdate;
|
|
20
47
|
private parseClips;
|
|
48
|
+
/**
|
|
49
|
+
* Returns the text of the current clip.
|
|
50
|
+
* @param time - The current time of the player.
|
|
51
|
+
* @returns The text of the current clip.
|
|
52
|
+
*/
|
|
21
53
|
getText(time: number): string;
|
|
22
|
-
makeSvg
|
|
54
|
+
private makeSvg;
|
|
23
55
|
private setSVGMask;
|
|
24
56
|
private setClipText;
|
|
25
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Clips.d.ts","sourceRoot":"","sources":["../../../src/plugins/clips/Clips.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAK,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"Clips.d.ts","sourceRoot":"","sources":["../../../src/plugins/clips/Clips.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAK,MAAM,cAAc,CAAA;AAKjE,OAAO,kCAAkC,CAAA;AAezC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;GASG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,KAAK,CAAmC;IAEhD,OAAO,CAAC,QAAQ,CAAY;IAE5B,OAAO,CAAC,eAAe,CAAQ;IAE/B,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,OAAO,CAA2B;IAE1C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACM,UAAU;IAanB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,UAAU;IA4BlB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM;IASpB,OAAO,CAAC,OAAO;IA4Bf,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,WAAW;CAQpB"}
|