@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
|
@@ -111,7 +111,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
111
111
|
return { min: CLAPPR_VERSION };
|
|
112
112
|
}
|
|
113
113
|
get disabled() {
|
|
114
|
-
const playbackIsNOOP = this.
|
|
114
|
+
const playbackIsNOOP = this.core.activeContainer && this.core.activeContainer.getPlaybackType() === Playback.NO_OP;
|
|
115
115
|
return this.userDisabled || playbackIsNOOP;
|
|
116
116
|
}
|
|
117
117
|
/**
|
|
@@ -792,6 +792,8 @@ export class MediaControl extends UICorePlugin {
|
|
|
792
792
|
*/
|
|
793
793
|
getElement(name) {
|
|
794
794
|
switch (name) {
|
|
795
|
+
case 'audioTracksSelector':
|
|
796
|
+
return this.$audioTracksSelector;
|
|
795
797
|
case 'clipText':
|
|
796
798
|
return this.$clipText;
|
|
797
799
|
case 'bottomGear':
|
|
@@ -7,6 +7,9 @@ type MediaSourceInfo = {
|
|
|
7
7
|
dvr: boolean;
|
|
8
8
|
projection: string | null;
|
|
9
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* The plugin adds support for loading multiple streams and switching between them using the media control UI.
|
|
12
|
+
*/
|
|
10
13
|
export declare class MultiCamera extends UICorePlugin {
|
|
11
14
|
private currentCamera;
|
|
12
15
|
private currentTime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiCamera.d.ts","sourceRoot":"","sources":["../../../src/plugins/multi-camera/MultiCamera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,IAAI,EAA8B,YAAY,EAAE,MAAM,cAAc,CAAC;AAMvF,OAAO,yCAAyC,CAAC;AASjD,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAA;AAMD,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,aAAa,CAAgC;IAErD,OAAO,CAAC,WAAW,CAAa;IAEhC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,eAAe,CAAS;IAEhC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,MAAM,KAAK,OAAO,WAEjB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAa,MAAM;;;MAKlB;gBAEW,IAAI,EAAE,IAAI;IAYb,UAAU;IAOnB,YAAY;IAaZ,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IAYX,MAAM;IAwEf,OAAO,CAAC,cAAc;IAUtB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IA8BtC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,UAAU;IA4ClB,cAAc;IAId,gBAAgB;IAIhB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,qBAAqB;CAK9B"}
|
|
1
|
+
{"version":3,"file":"MultiCamera.d.ts","sourceRoot":"","sources":["../../../src/plugins/multi-camera/MultiCamera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,IAAI,EAA8B,YAAY,EAAE,MAAM,cAAc,CAAC;AAMvF,OAAO,yCAAyC,CAAC;AASjD,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAA;AAMD;;GAEG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,aAAa,CAAgC;IAErD,OAAO,CAAC,WAAW,CAAa;IAEhC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,eAAe,CAAS;IAEhC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,MAAM,KAAK,OAAO,WAEjB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAa,MAAM;;;MAKlB;gBAEW,IAAI,EAAE,IAAI;IAYb,UAAU;IAOnB,YAAY;IAaZ,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IAYX,MAAM;IAwEf,OAAO,CAAC,cAAc;IAUtB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IA8BtC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,UAAU;IA4ClB,cAAc;IAId,gBAAgB;IAIhB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,qBAAqB;CAK9B"}
|
|
@@ -8,6 +8,9 @@ import streamsMomentoIcon from '../../../assets/icons/old/language.svg';
|
|
|
8
8
|
import streamsWhiteNightsIcon from '../../../assets/icons/old/wn.svg';
|
|
9
9
|
const VERSION = '0.0.1';
|
|
10
10
|
const T = 'plugins.media_control_multicamera';
|
|
11
|
+
/**
|
|
12
|
+
* The plugin adds support for loading multiple streams and switching between them using the media control UI.
|
|
13
|
+
*/
|
|
11
14
|
export class MultiCamera extends UICorePlugin {
|
|
12
15
|
currentCamera = null;
|
|
13
16
|
currentTime = 0;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { UICorePlugin } from '@clappr/core';
|
|
2
2
|
import '../../../assets/seek-time/seek-time.scss';
|
|
3
|
+
/**
|
|
4
|
+
* The plugin adds a seek time indicator to the media control UI.
|
|
5
|
+
* @beta
|
|
6
|
+
*/
|
|
3
7
|
export declare class SeekTime extends UICorePlugin {
|
|
4
8
|
get name(): string;
|
|
5
9
|
get supportedVersion(): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeekTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/seek-time/SeekTime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,YAAY,EAAmB,MAAM,cAAc,CAAC;AAM/E,OAAO,0CAA0C,CAAC;AAKlD,qBAAa,QAAS,SAAQ,YAAY;IACxC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAI,YAAY,QAEf;IAED,IAAI,qBAAqB,QAExB;IAED,IAAI,mBAAmB,QAItB;IAED,IAAI,aAAa,YAEhB;IAED,OAAO,CAAC,mBAAmB,CAAS;IAEpC,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,OAAO,CAAC,iBAAiB,CAAsB;IAE/C,OAAO,CAAC,QAAQ,CAAK;IAGrB,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,WAAW,CAA4B;IAE/C,OAAO,CAAC,WAAW,CAA4B;IAEtC,UAAU;IAWnB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,sBAAsB;IAO9B,WAAW;;;IAYX,MAAM;IA8CN,eAAe;IAQN,MAAM;CAahB"}
|
|
1
|
+
{"version":3,"file":"SeekTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/seek-time/SeekTime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,YAAY,EAAmB,MAAM,cAAc,CAAC;AAM/E,OAAO,0CAA0C,CAAC;AAKlD;;;GAGG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAI,YAAY,QAEf;IAED,IAAI,qBAAqB,QAExB;IAED,IAAI,mBAAmB,QAItB;IAED,IAAI,aAAa,YAEhB;IAED,OAAO,CAAC,mBAAmB,CAAS;IAEpC,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,OAAO,CAAC,iBAAiB,CAAsB;IAE/C,OAAO,CAAC,QAAQ,CAAK;IAGrB,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,WAAW,CAA4B;IAE/C,OAAO,CAAC,WAAW,CAA4B;IAEtC,UAAU;IAWnB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,sBAAsB;IAO9B,WAAW;;;IAYX,MAAM;IA8CN,eAAe;IAQN,MAAM;CAahB"}
|
|
@@ -1,11 +1,15 @@
|
|
|
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 { Events, Playback, UICorePlugin, Utils, template } from '@clappr/core';
|
|
5
5
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
6
6
|
import seekTimeHTML from '../../../assets/seek-time/seek-time.html';
|
|
7
7
|
import '../../../assets/seek-time/seek-time.scss';
|
|
8
8
|
const { formatTime } = Utils;
|
|
9
|
+
/**
|
|
10
|
+
* The plugin adds a seek time indicator to the media control UI.
|
|
11
|
+
* @beta
|
|
12
|
+
*/
|
|
9
13
|
export class SeekTime extends UICorePlugin {
|
|
10
14
|
get name() {
|
|
11
15
|
return 'media_control_seek_time';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Share.d.ts","sourceRoot":"","sources":["../../../src/plugins/share/Share.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAY,MAAM,cAAc,CAAC;AAKzE,OAAO,kCAAkC,CAAC;AAM1C,qBAAa,KAAM,SAAQ,YAAY;IACrC,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,SAAS,CAA0B;IAE3C,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAa,MAAM;;;;;;;MASlB;IAEQ,UAAU;IAQnB,YAAY;IAaZ,YAAY;IAIZ,OAAO,CAAC,OAAO;IASN,MAAM;IAgBf,SAAS;IAIT,SAAS;IAOT,eAAe;IASf,WAAW;IAIX,WAAW;IAIX,SAAS;IAQT,SAAS;IAQT,gBAAgB;IAIhB,iBAAiB;CAGlB"}
|
|
1
|
+
{"version":3,"file":"Share.d.ts","sourceRoot":"","sources":["../../../src/plugins/share/Share.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAY,MAAM,cAAc,CAAC;AAKzE,OAAO,kCAAkC,CAAC;AAM1C;;GAEG;AACH,qBAAa,KAAM,SAAQ,YAAY;IACrC,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,SAAS,CAA0B;IAE3C,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAa,MAAM;;;;;;;MASlB;IAEQ,UAAU;IAQnB,YAAY;IAaZ,YAAY;IAIZ,OAAO,CAAC,OAAO;IASN,MAAM;IAgBf,SAAS;IAIT,SAAS;IAOT,eAAe;IASf,WAAW;IAIX,WAAW;IAIX,SAAS;IAQT,SAAS;IAQT,gBAAgB;IAIhB,iBAAiB;CAGlB"}
|
|
@@ -6,6 +6,9 @@ import shareIcon from '../../../assets/icons/old/share.svg';
|
|
|
6
6
|
import closeIcon from '../../../assets/icons/old/close-share.svg';
|
|
7
7
|
import fbIcon from '../../../assets/icons/old/fb.svg';
|
|
8
8
|
import twIcon from '../../../assets/icons/old/twitter.svg';
|
|
9
|
+
/**
|
|
10
|
+
* The plugin adds a share button to the media control UI.
|
|
11
|
+
*/
|
|
9
12
|
export class Share extends UICorePlugin {
|
|
10
13
|
hide = false;
|
|
11
14
|
container = null;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { UICorePlugin as UICorePluginOriginal } from '@clappr/core';
|
|
2
2
|
import '../../../assets/skip-time/style.scss';
|
|
3
|
+
/**
|
|
4
|
+
* The plugin adds skip controls to the media control UI.
|
|
5
|
+
*/
|
|
3
6
|
export declare class SkipTime extends UICorePluginOriginal {
|
|
4
7
|
get name(): string;
|
|
5
8
|
get supportedVersion(): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkipTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/skip-time/SkipTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAuC,MAAM,cAAc,CAAC;AAKzG,OAAO,sCAAsC,CAAC;AAI9C,qBAAa,QAAS,SAAQ,oBAAoB;IAChD,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,QAAQ,CAAmB;IAEnC,IAAa,MAAM;;;;MAMlB;IAEQ,UAAU;IAQnB,OAAO;IAIP,kBAAkB;IA4BlB,WAAW;IAIX,UAAU;IAIV,gBAAgB;IAMP,MAAM;CAWhB"}
|
|
1
|
+
{"version":3,"file":"SkipTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/skip-time/SkipTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAuC,MAAM,cAAc,CAAC;AAKzG,OAAO,sCAAsC,CAAC;AAI9C;;GAEG;AACH,qBAAa,QAAS,SAAQ,oBAAoB;IAChD,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,QAAQ,CAAmB;IAEnC,IAAa,MAAM;;;;MAMlB;IAEQ,UAAU;IAQnB,OAAO;IAIP,kBAAkB;IA4BlB,WAAW;IAIX,UAAU;IAIV,gBAAgB;IAMP,MAAM;CAWhB"}
|
|
@@ -2,6 +2,9 @@ import { UICorePlugin as UICorePluginOriginal, Browser, Playback, Events, templa
|
|
|
2
2
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
3
3
|
import pluginHtml from '../../../assets/skip-time/skip-time.ejs';
|
|
4
4
|
import '../../../assets/skip-time/style.scss';
|
|
5
|
+
/**
|
|
6
|
+
* The plugin adds skip controls to the media control UI.
|
|
7
|
+
*/
|
|
5
8
|
export class SkipTime extends UICorePluginOriginal {
|
|
6
9
|
get name() {
|
|
7
10
|
return 'skip_time';
|
|
@@ -2,10 +2,12 @@ import { Container, ContainerPlugin } from '@clappr/core';
|
|
|
2
2
|
import type { PlaybackType } from '../../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Telemetry event data
|
|
5
|
+
* @beta
|
|
5
6
|
*/
|
|
6
7
|
export type TelemetryEventData = StallEventData | InitEventData | StartEventData | WatchEventData;
|
|
7
8
|
/**
|
|
8
9
|
* Playback stall event data
|
|
10
|
+
* @beta
|
|
9
11
|
*/
|
|
10
12
|
export interface StallEventData {
|
|
11
13
|
event: TelemetryEvent.Stall;
|
|
@@ -22,17 +24,30 @@ export interface StallEventData {
|
|
|
22
24
|
*/
|
|
23
25
|
time: number;
|
|
24
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Telemetry init event data
|
|
29
|
+
* @beta
|
|
30
|
+
*/
|
|
25
31
|
export interface InitEventData {
|
|
26
32
|
event: TelemetryEvent.Init;
|
|
27
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Telemetry start event data
|
|
36
|
+
* @beta
|
|
37
|
+
*/
|
|
28
38
|
export interface StartEventData {
|
|
29
39
|
event: TelemetryEvent.Start;
|
|
30
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Telemetry watch event data
|
|
43
|
+
* @beta
|
|
44
|
+
*/
|
|
31
45
|
export interface WatchEventData {
|
|
32
46
|
event: TelemetryEvent.Watch;
|
|
33
47
|
}
|
|
34
48
|
/**
|
|
35
49
|
* Telemetry record
|
|
50
|
+
* @beta
|
|
36
51
|
*/
|
|
37
52
|
export type TelemetryRecord = {
|
|
38
53
|
type: PlaybackType;
|
|
@@ -40,10 +55,12 @@ export type TelemetryRecord = {
|
|
|
40
55
|
/**
|
|
41
56
|
* Callback to send the telemetry record to the storage.
|
|
42
57
|
* @param data - The telemetry record to send.
|
|
58
|
+
* @beta
|
|
43
59
|
*/
|
|
44
60
|
type TelemetrySendFn = (data: TelemetryRecord) => void;
|
|
45
61
|
/**
|
|
46
62
|
* Plugin settings
|
|
63
|
+
* @beta
|
|
47
64
|
*/
|
|
48
65
|
export interface TelemetryPluginSettings {
|
|
49
66
|
/**
|
|
@@ -54,6 +71,7 @@ export interface TelemetryPluginSettings {
|
|
|
54
71
|
}
|
|
55
72
|
/**
|
|
56
73
|
* Telemetry event type
|
|
74
|
+
* @beta
|
|
57
75
|
*/
|
|
58
76
|
export declare enum TelemetryEvent {
|
|
59
77
|
Init = 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Telemetry.d.ts","sourceRoot":"","sources":["../../../src/plugins/telemetry/Telemetry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAU,MAAM,cAAc,CAAA;AAKjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAUlD
|
|
1
|
+
{"version":3,"file":"Telemetry.d.ts","sourceRoot":"","sources":["../../../src/plugins/telemetry/Telemetry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAU,MAAM,cAAc,CAAA;AAKjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAUlD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,CAAA;AAEjG;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAC,KAAK,CAAA;IAC3B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,cAAc,CAAC,IAAI,CAAA;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAC,KAAK,CAAA;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAC,KAAK,CAAA;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,YAAY,CAAA;CACnB,GAAG,kBAAkB,CAAC;AAEvB;;;;GAIG;AACH,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,IAAI,EAAE,eAAe,CAAA;CACtB;AAED;;;GAGG;AACH,oBAAY,cAAc;IACxB,IAAI,IAAI;IACR,KAAK,IAAA;IACL,KAAK,IAAA;IACL,KAAK,IAAA;CACN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,SAAU,SAAQ,eAAe;IAC5C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,SAAS,CAAI;IAErB,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,aAAa,CAAI;IAEzB,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,WAAW,CAAQ;IAE3B,OAAO,CAAC,SAAS,CAAI;IAErB;;OAEG;IACH,OAAO,CAAC,cAAc,CAAI;IAE1B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAI;gBAER,SAAS,EAAE,SAAS;IAUhC;;OAEG;IACM,UAAU;IAoCnB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,OAAO;CAShB"}
|
|
@@ -1,6 +1,39 @@
|
|
|
1
1
|
import { UICorePlugin } from '@clappr/core';
|
|
2
|
-
import { TimeValue } from '../../playback.types.js';
|
|
3
2
|
import '../../../assets/thumbnails/style.scss';
|
|
3
|
+
/**
|
|
4
|
+
* Plugin configuration options for the thumbnails plugin.
|
|
5
|
+
* @beta
|
|
6
|
+
*/
|
|
7
|
+
export type ThumbnailsPluginSettings = {
|
|
8
|
+
backdropHeight: number;
|
|
9
|
+
backdropMaxOpacity: number;
|
|
10
|
+
backdropMinOpacity: number;
|
|
11
|
+
spotlightHeight: number;
|
|
12
|
+
sprite: string;
|
|
13
|
+
vtt: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Displays the thumbnails of the video when available.
|
|
17
|
+
* @beta
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { Thumbnails } from '@gcorevideo/player'
|
|
21
|
+
*
|
|
22
|
+
* Player.registerPlugin(Thumbnails)
|
|
23
|
+
*
|
|
24
|
+
* new Player({
|
|
25
|
+
* thumbnails: {
|
|
26
|
+
* backdropHeight: 200,
|
|
27
|
+
* backdropMinOpacity: 0.9,
|
|
28
|
+
* backdropMaxOpacity: 0.99,
|
|
29
|
+
* spotlightHeight: 100,
|
|
30
|
+
* vtt: '1\n00:00:00,000 --> 00:00:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,0,100,56\n\n2\n00:00:10,000 --> 00:00:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,0,100,56\n\n3\n00:00:20,000 --> 00:00:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,0,100,56\n\n4\n00:00:30,000 --> 00:00:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,0,100,56\n\n5\n00:00:40,000 --> 00:00:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,0,100,56\n\n6\n00:00:50,000 --> 00:01:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,0,100,56\n\n7\n00:01:00,000 --> 00:01:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,0,100,56\n\n8\n00:01:10,000 --> 00:01:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,56,100,56\n\n9\n00:01:20,000 --> 00:01:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,56,100,56\n\n10\n00:01:30,000 --> 00:01:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,56,100,56\n\n11\n00:01:40,000 --> 00:01:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,56,100,56\n\n12\n00:01:50,000 --> 00:02:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,56,100,56\n\n13\n00:02:00,000 --> 00:02:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,56,100,56\n\n14\n00:02:10,000 --> 00:02:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,56,100,56\n\n15\n00:02:20,000 --> 00:02:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,112,100,56\n\n16\n00:02:30,000 --> 00:02:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,112,100,56\n\n17\n00:02:40,000 --> 00:02:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,112,100,56\n\n18\n00:02:50,000 --> 00:03:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,112,100,56\n\n19\n00:03:00,000 --> 00:03:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,112,100,56\n\n20\n00:03:10,000 --> 00:03:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,112,100,56\n\n21\n00:03:20,000 --> 00:03:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,112,100,56\n\n22\n00:03:30,000 --> 00:03:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,168,100,56\n\n23\n00:03:40,000 --> 00:03:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,168,100,56\n\n24\n00:03:50,000 --> 00:04:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,168,100,56\n\n25\n00:04:00,000 --> 00:04:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,168,100,56\n\n26\n00:04:10,000 --> 00:04:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,168,100,56\n\n27\n00:04:20,000 --> 00:04:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,168,100,56\n\n28\n00:04:30,000 --> 00:04:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,168,100,56\n\n29\n00:04:40,000 --> 00:04:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,224,100,56\n\n30\n00:04:50,000 --> 00:05:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,224,100,56\n\n31\n00:05:00,000 --> 00:05:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,224,100,56\n\n32\n00:05:10,000 --> 00:05:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,224,100,56\n\n33\n00:05:20,000 --> 00:05:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,224,100,56\n\n34\n00:05:30,000 --> 00:05:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,224,100,56\n\n35\n00:05:40,000 --> 00:05:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,224,100,56\n\n36\n00:05:50,000 --> 00:06:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,280,100,56\n\n37\n00:06:00,000 --> 00:06:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,280,100,56\n\n38\n00:06:10,000 --> 00:06:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,280,100,56\n\n39\n00:06:20,000 --> 00:06:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,280,100,56\n\n40\n00:06:30,000 --> 00:06:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,280,100,56\n\n41\n00:06:40,000 --> 00:06:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,280,100,56\n\n42\n00:06:50,000 --> 00:07:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,280,100,56\n\n43\n00:07:00,000 --> 00:07:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,336,100,56\n\n44\n00:07:10,000 --> 00:07:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,336,100,56\n\n45\n00:07:20,000 --> 00:07:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,336,100,56\n\n46\n00:07:30,000 --> 00:07:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,336,100,56\n\n47\n00:07:40,000 --> 00:07:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,336,100,56\n\n48\n00:07:50,000 --> 00:08:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,336,100,56\n\n49\n00:08:00,000 --> 00:08:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,336,100,56\n',
|
|
31
|
+
* sprite:
|
|
32
|
+
* 'https://static.gvideo.co/videoplatform/sprites/2675/2452164_3dk4NsRt6vWsffEr.mp4_sprite.jpg',
|
|
33
|
+
* },
|
|
34
|
+
* })
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
4
37
|
export declare class Thumbnails extends UICorePlugin {
|
|
5
38
|
private _$spotlight;
|
|
6
39
|
private _$backdrop;
|
|
@@ -15,15 +48,27 @@ export declare class Thumbnails extends UICorePlugin {
|
|
|
15
48
|
private _thumbsLoaded;
|
|
16
49
|
private _oldContainer;
|
|
17
50
|
private _thumbs;
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
18
54
|
get name(): string;
|
|
55
|
+
/**
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
19
58
|
get supportedVersion(): {
|
|
20
59
|
min: string;
|
|
21
60
|
};
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
22
64
|
get attributes(): {
|
|
23
65
|
class: string;
|
|
24
66
|
};
|
|
25
|
-
|
|
67
|
+
private static readonly template;
|
|
26
68
|
private buildSpriteConfig;
|
|
69
|
+
/**
|
|
70
|
+
* @internal
|
|
71
|
+
*/
|
|
27
72
|
bindEvents(): void;
|
|
28
73
|
private _bindContainerEvents;
|
|
29
74
|
private _onCoreReady;
|
|
@@ -37,7 +82,7 @@ export declare class Thumbnails extends UICorePlugin {
|
|
|
37
82
|
private _calculateHoverPosition;
|
|
38
83
|
private _buildImg;
|
|
39
84
|
private _loadBackdrop;
|
|
40
|
-
setText
|
|
85
|
+
private setText;
|
|
41
86
|
private _updateCarousel;
|
|
42
87
|
private _updateSpotlightThumb;
|
|
43
88
|
private _getThumbIndexForTime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Thumbnails.d.ts","sourceRoot":"","sources":["../../../src/plugins/thumbnails/Thumbnails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkC,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"Thumbnails.d.ts","sourceRoot":"","sources":["../../../src/plugins/thumbnails/Thumbnails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkC,MAAM,cAAc,CAAA;AAS3E,OAAO,uCAAuC,CAAA;AAI9C;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAeD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,WAAW,CAA2B;IAE9C,OAAO,CAAC,UAAU,CAA2B;IAE7C,OAAO,CAAC,UAAU,CAA2B;IAE7C,OAAO,CAAC,IAAI,CAA2B;IAEvC,OAAO,CAAC,UAAU,CAA2B;IAE7C,OAAO,CAAC,cAAc,CAA2B;IAEjD,OAAO,CAAC,sBAAsB,CAAoB;IAElD,OAAO,CAAC,iBAAiB,CAAY;IAErC,OAAO,CAAC,cAAc,CAAI;IAE1B,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,aAAa,CAAyB;IAE9C,OAAO,CAAC,OAAO,CAAc;IAE7B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAcvD,OAAO,CAAC,iBAAiB;IAmCzB;;OAEG;IACM,UAAU;IAwBnB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,YAAY;YAiCN,eAAe;IAY7B,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,uBAAuB;IAgF/B,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,eAAe;IA4EvB,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,eAAe;CAgBxB"}
|
|
@@ -5,7 +5,29 @@ import { CLAPPR_VERSION } from '../../build.js';
|
|
|
5
5
|
import pluginHtml from '../../../assets/thumbnails/scrub-thumbnails.ejs';
|
|
6
6
|
import '../../../assets/thumbnails/style.scss';
|
|
7
7
|
import { getPageX } from '../utils.js';
|
|
8
|
-
const T = 'plugins.
|
|
8
|
+
const T = 'plugins.thumbnails';
|
|
9
|
+
/**
|
|
10
|
+
* Displays the thumbnails of the video when available.
|
|
11
|
+
* @beta
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { Thumbnails } from '@gcorevideo/player'
|
|
15
|
+
*
|
|
16
|
+
* Player.registerPlugin(Thumbnails)
|
|
17
|
+
*
|
|
18
|
+
* new Player({
|
|
19
|
+
* thumbnails: {
|
|
20
|
+
* backdropHeight: 200,
|
|
21
|
+
* backdropMinOpacity: 0.9,
|
|
22
|
+
* backdropMaxOpacity: 0.99,
|
|
23
|
+
* spotlightHeight: 100,
|
|
24
|
+
* vtt: '1\n00:00:00,000 --> 00:00:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,0,100,56\n\n2\n00:00:10,000 --> 00:00:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,0,100,56\n\n3\n00:00:20,000 --> 00:00:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,0,100,56\n\n4\n00:00:30,000 --> 00:00:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,0,100,56\n\n5\n00:00:40,000 --> 00:00:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,0,100,56\n\n6\n00:00:50,000 --> 00:01:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,0,100,56\n\n7\n00:01:00,000 --> 00:01:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,0,100,56\n\n8\n00:01:10,000 --> 00:01:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,56,100,56\n\n9\n00:01:20,000 --> 00:01:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,56,100,56\n\n10\n00:01:30,000 --> 00:01:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,56,100,56\n\n11\n00:01:40,000 --> 00:01:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,56,100,56\n\n12\n00:01:50,000 --> 00:02:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,56,100,56\n\n13\n00:02:00,000 --> 00:02:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,56,100,56\n\n14\n00:02:10,000 --> 00:02:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,56,100,56\n\n15\n00:02:20,000 --> 00:02:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,112,100,56\n\n16\n00:02:30,000 --> 00:02:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,112,100,56\n\n17\n00:02:40,000 --> 00:02:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,112,100,56\n\n18\n00:02:50,000 --> 00:03:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,112,100,56\n\n19\n00:03:00,000 --> 00:03:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,112,100,56\n\n20\n00:03:10,000 --> 00:03:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,112,100,56\n\n21\n00:03:20,000 --> 00:03:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,112,100,56\n\n22\n00:03:30,000 --> 00:03:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,168,100,56\n\n23\n00:03:40,000 --> 00:03:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,168,100,56\n\n24\n00:03:50,000 --> 00:04:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,168,100,56\n\n25\n00:04:00,000 --> 00:04:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,168,100,56\n\n26\n00:04:10,000 --> 00:04:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,168,100,56\n\n27\n00:04:20,000 --> 00:04:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,168,100,56\n\n28\n00:04:30,000 --> 00:04:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,168,100,56\n\n29\n00:04:40,000 --> 00:04:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,224,100,56\n\n30\n00:04:50,000 --> 00:05:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,224,100,56\n\n31\n00:05:00,000 --> 00:05:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,224,100,56\n\n32\n00:05:10,000 --> 00:05:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,224,100,56\n\n33\n00:05:20,000 --> 00:05:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,224,100,56\n\n34\n00:05:30,000 --> 00:05:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,224,100,56\n\n35\n00:05:40,000 --> 00:05:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,224,100,56\n\n36\n00:05:50,000 --> 00:06:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,280,100,56\n\n37\n00:06:00,000 --> 00:06:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,280,100,56\n\n38\n00:06:10,000 --> 00:06:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,280,100,56\n\n39\n00:06:20,000 --> 00:06:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,280,100,56\n\n40\n00:06:30,000 --> 00:06:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,280,100,56\n\n41\n00:06:40,000 --> 00:06:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,280,100,56\n\n42\n00:06:50,000 --> 00:07:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,280,100,56\n\n43\n00:07:00,000 --> 00:07:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=0,336,100,56\n\n44\n00:07:10,000 --> 00:07:20,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=100,336,100,56\n\n45\n00:07:20,000 --> 00:07:30,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=200,336,100,56\n\n46\n00:07:30,000 --> 00:07:40,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=300,336,100,56\n\n47\n00:07:40,000 --> 00:07:50,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=400,336,100,56\n\n48\n00:07:50,000 --> 00:08:00,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=500,336,100,56\n\n49\n00:08:00,000 --> 00:08:10,000\n3dk4NsRt6vWsffEr_sprite.jpg#xywh=600,336,100,56\n',
|
|
25
|
+
* sprite:
|
|
26
|
+
* 'https://static.gvideo.co/videoplatform/sprites/2675/2452164_3dk4NsRt6vWsffEr.mp4_sprite.jpg',
|
|
27
|
+
* },
|
|
28
|
+
* })
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
9
31
|
export class Thumbnails extends UICorePlugin {
|
|
10
32
|
_$spotlight = null;
|
|
11
33
|
_$backdrop = null;
|
|
@@ -20,20 +42,27 @@ export class Thumbnails extends UICorePlugin {
|
|
|
20
42
|
_thumbsLoaded = false;
|
|
21
43
|
_oldContainer = null;
|
|
22
44
|
_thumbs = [];
|
|
45
|
+
/**
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
23
48
|
get name() {
|
|
24
|
-
return '
|
|
49
|
+
return 'thumbnails';
|
|
25
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
26
54
|
get supportedVersion() {
|
|
27
55
|
return { min: CLAPPR_VERSION };
|
|
28
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
29
60
|
get attributes() {
|
|
30
61
|
return {
|
|
31
|
-
|
|
62
|
+
class: this.name,
|
|
32
63
|
};
|
|
33
64
|
}
|
|
34
|
-
|
|
35
|
-
return template(pluginHtml);
|
|
36
|
-
}
|
|
65
|
+
static template = template(pluginHtml);
|
|
37
66
|
/*
|
|
38
67
|
* Helper to build the "thumbs" property for a sprite sheet.
|
|
39
68
|
*
|
|
@@ -77,6 +106,9 @@ export class Thumbnails extends UICorePlugin {
|
|
|
77
106
|
return thumbs;
|
|
78
107
|
}
|
|
79
108
|
// TODO check if seek enabled
|
|
109
|
+
/**
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
80
112
|
bindEvents() {
|
|
81
113
|
this.listenToOnce(this.core, Events.CORE_READY, this._onCoreReady);
|
|
82
114
|
this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this._onMouseMove);
|
|
@@ -93,7 +125,9 @@ export class Thumbnails extends UICorePlugin {
|
|
|
93
125
|
}
|
|
94
126
|
_onCoreReady() {
|
|
95
127
|
try {
|
|
96
|
-
if (!this.options.thumbnails ||
|
|
128
|
+
if (!this.options.thumbnails ||
|
|
129
|
+
!this.options.thumbnails.sprite ||
|
|
130
|
+
!this.options.thumbnails.vtt) {
|
|
97
131
|
this.destroy();
|
|
98
132
|
return;
|
|
99
133
|
}
|
|
@@ -144,7 +178,7 @@ export class Thumbnails extends UICorePlugin {
|
|
|
144
178
|
}
|
|
145
179
|
_getOptions() {
|
|
146
180
|
if (!('thumbnails' in this.core.options)) {
|
|
147
|
-
throw '
|
|
181
|
+
throw "'thumbnail property missing from options object.";
|
|
148
182
|
}
|
|
149
183
|
return this.core.options.thumbnails;
|
|
150
184
|
}
|
|
@@ -245,7 +279,7 @@ export class Thumbnails extends UICorePlugin {
|
|
|
245
279
|
this.$img.css({
|
|
246
280
|
height: this.spriteSheetHeight * scaleFactor,
|
|
247
281
|
left: -1 * thumb.x * scaleFactor,
|
|
248
|
-
top: -1 * thumb.y * scaleFactor
|
|
282
|
+
top: -1 * thumb.y * scaleFactor,
|
|
249
283
|
});
|
|
250
284
|
if (this.$container.find(this.$img).length === 0) {
|
|
251
285
|
this.$container.append(this.$img);
|
|
@@ -287,7 +321,7 @@ export class Thumbnails extends UICorePlugin {
|
|
|
287
321
|
const videoDuration = this.core.mediaControl.container.getDuration();
|
|
288
322
|
const startTimeOffset = this.core.mediaControl.container.getStartTimeOffset();
|
|
289
323
|
// the time into the video at the current hover position
|
|
290
|
-
const hoverTime = startTimeOffset +
|
|
324
|
+
const hoverTime = startTimeOffset + videoDuration * hoverPosition;
|
|
291
325
|
const backdropWidth = this._$backdrop.width();
|
|
292
326
|
const $carousel = this._$carousel;
|
|
293
327
|
const carouselWidth = $carousel.width();
|
|
@@ -312,9 +346,9 @@ export class Thumbnails extends UICorePlugin {
|
|
|
312
346
|
const positionInThumb = timeIntoThumb / thumbDuration;
|
|
313
347
|
const xCoordInThumb = thumbWidth * positionInThumb;
|
|
314
348
|
// now calculate the position along carousel that we want to be above the hover position
|
|
315
|
-
const xCoordInCarousel =
|
|
349
|
+
const xCoordInCarousel = thumbIndex * thumbWidth + xCoordInThumb;
|
|
316
350
|
// and finally the position of the carousel when the hover position is taken in to consideration
|
|
317
|
-
const carouselXCoord = xCoordInCarousel -
|
|
351
|
+
const carouselXCoord = xCoordInCarousel - hoverPosition * backdropWidth;
|
|
318
352
|
$carousel.css('left', -carouselXCoord);
|
|
319
353
|
const maxOpacity = this._getOptions().backdropMaxOpacity || 0.6;
|
|
320
354
|
const minOpacity = this._getOptions().backdropMinOpacity || 0.08;
|
|
@@ -330,7 +364,7 @@ export class Thumbnails extends UICorePlugin {
|
|
|
330
364
|
distance = Math.min(0, distance + thumbWidth);
|
|
331
365
|
}
|
|
332
366
|
// fade over the width of 2 thumbnails
|
|
333
|
-
const opacity = Math.max(maxOpacity -
|
|
367
|
+
const opacity = Math.max(maxOpacity - Math.abs(distance) / (2 * thumbWidth), minOpacity);
|
|
334
368
|
this._$backdropCarouselImgs[i].css('opacity', opacity);
|
|
335
369
|
}
|
|
336
370
|
}
|
|
@@ -346,7 +380,7 @@ export class Thumbnails extends UICorePlugin {
|
|
|
346
380
|
const videoDuration = this.core.mediaControl.container.getDuration();
|
|
347
381
|
// the time into the video at the current hover position
|
|
348
382
|
const startTimeOffset = this.core.mediaControl.container.getStartTimeOffset();
|
|
349
|
-
const hoverTime = startTimeOffset +
|
|
383
|
+
const hoverTime = startTimeOffset + videoDuration * hoverPosition;
|
|
350
384
|
this.setText(hoverTime);
|
|
351
385
|
// determine which thumbnail applies to the current time
|
|
352
386
|
const thumbIndex = this._getThumbIndexForTime(hoverTime);
|
|
@@ -358,7 +392,7 @@ export class Thumbnails extends UICorePlugin {
|
|
|
358
392
|
const elWidth = this.$el.width();
|
|
359
393
|
const thumbWidth = $spotlight.width();
|
|
360
394
|
const thumbHeight = $spotlight.height();
|
|
361
|
-
let spotlightXPos =
|
|
395
|
+
let spotlightXPos = elWidth * hoverPosition - thumbWidth / 2;
|
|
362
396
|
// adjust so the entire thumbnail is always visible
|
|
363
397
|
spotlightXPos = Math.max(Math.min(spotlightXPos, elWidth - thumbWidth), 0);
|
|
364
398
|
$spotlight.css('left', spotlightXPos);
|
|
@@ -399,9 +433,9 @@ export class Thumbnails extends UICorePlugin {
|
|
|
399
433
|
}
|
|
400
434
|
_createElements() {
|
|
401
435
|
trace(`${T} _createElements`);
|
|
402
|
-
this.$el.html(
|
|
403
|
-
|
|
404
|
-
|
|
436
|
+
this.$el.html(Thumbnails.template({
|
|
437
|
+
backdropHeight: this._getOptions().backdropHeight,
|
|
438
|
+
spotlightHeight: this._getOptions().spotlightHeight,
|
|
405
439
|
}));
|
|
406
440
|
// cache dom references
|
|
407
441
|
this._$spotlight = this.$el.find('.spotlight');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolumeFade.d.ts","sourceRoot":"","sources":["../../../src/plugins/volume-fade/VolumeFade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,cAAc,CAAC;AAK3E,oBAAY,gBAAgB;IAC1B,IAAI,qBAAqB;CAC1B;AAED
|
|
1
|
+
{"version":3,"file":"VolumeFade.d.ts","sourceRoot":"","sources":["../../../src/plugins/volume-fade/VolumeFade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,cAAc,CAAC;AAK3E,oBAAY,gBAAgB;IAC1B,IAAI,qBAAqB;CAC1B;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,kBAAkB,CAAK;IAE/B,OAAO,CAAC,SAAS,CAA0B;IAE3C,OAAO,CAAC,KAAK,CAAK;IAElB,OAAO,CAAC,QAAQ,CAAwB;IAExC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IA0BhB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,OAAO;CAGhB"}
|
package/package.json
CHANGED
package/src/index.plugins.ts
CHANGED
|
@@ -8,7 +8,6 @@ export * from "./plugins/clappr-stats/ClapprStats.js";
|
|
|
8
8
|
export * from "./plugins/click-to-pause/ClickToPause.js";
|
|
9
9
|
export * from "./plugins/clips/Clips.js";
|
|
10
10
|
export * from "./plugins/context-menu/ContextMenu.js";
|
|
11
|
-
export * from "./plugins/disable-controls/DisableControls.js";
|
|
12
11
|
export * from "./plugins/dvr-controls/DvrControls.js";
|
|
13
12
|
export * from "./plugins/error-screen/ErrorScreen.js";
|
|
14
13
|
export * from "./plugins/favicon/Favicon.js";
|