@gcorevideo/player 2.20.4 → 2.20.5

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.
Files changed (64) hide show
  1. package/assets/error-screen/error_screen.ejs +3 -1
  2. package/dist/core.js +407 -205
  3. package/dist/index.css +1238 -1238
  4. package/dist/index.js +542 -383
  5. package/dist/plugins/index.css +993 -993
  6. package/dist/plugins/index.js +113 -159
  7. package/lib/Player.d.ts.map +1 -1
  8. package/lib/Player.js +2 -2
  9. package/lib/playback/BasePlayback.d.ts +11 -0
  10. package/lib/playback/BasePlayback.d.ts.map +1 -0
  11. package/lib/playback/BasePlayback.js +33 -0
  12. package/lib/playback/dash-playback/DashPlayback.d.ts +3 -2
  13. package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
  14. package/lib/playback/dash-playback/DashPlayback.js +7 -7
  15. package/lib/playback/hls-playback/HlsPlayback.d.ts +2 -2
  16. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  17. package/lib/playback/hls-playback/HlsPlayback.js +8 -5
  18. package/lib/playback/utils.d.ts +2 -0
  19. package/lib/playback/utils.d.ts.map +1 -0
  20. package/lib/playback/utils.js +1 -0
  21. package/lib/playback.types.d.ts +10 -3
  22. package/lib/playback.types.d.ts.map +1 -1
  23. package/lib/playback.types.js +3 -3
  24. package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
  25. package/lib/plugins/context-menu/ContextMenu.js +1 -2
  26. package/lib/plugins/error-screen/ErrorScreen.d.ts +39 -24
  27. package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
  28. package/lib/plugins/error-screen/ErrorScreen.js +70 -136
  29. package/lib/plugins/media-control/MediaControl.d.ts +1 -1
  30. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  31. package/lib/plugins/media-control/MediaControl.js +7 -5
  32. package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
  33. package/lib/plugins/multi-camera/MultiCamera.js +2 -3
  34. package/lib/plugins/poster/Poster.js +1 -1
  35. package/lib/plugins/source-controller/SourceController.d.ts +2 -1
  36. package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
  37. package/lib/plugins/source-controller/SourceController.js +12 -6
  38. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +2 -1
  39. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
  40. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +19 -3
  41. package/lib/testUtils.d.ts +66 -2
  42. package/lib/testUtils.d.ts.map +1 -1
  43. package/lib/testUtils.js +95 -2
  44. package/package.json +2 -2
  45. package/src/Player.ts +2 -2
  46. package/src/__tests__/Player.test.ts +2 -3
  47. package/src/playback/BasePlayback.ts +41 -0
  48. package/src/playback/dash-playback/DashPlayback.ts +11 -15
  49. package/src/playback/hls-playback/HlsPlayback.ts +7 -5
  50. package/src/playback/utils.ts +2 -0
  51. package/src/playback.types.ts +11 -3
  52. package/src/plugins/context-menu/ContextMenu.ts +1 -2
  53. package/src/plugins/error-screen/ErrorScreen.ts +121 -195
  54. package/src/plugins/error-screen/__tests__/ErrorScreen.test.ts +113 -0
  55. package/src/plugins/error-screen/__tests__/__snapshots__/ErrorScreen.test.ts.snap +20 -0
  56. package/src/plugins/level-selector/__tests__/LevelSelector.test.ts +32 -57
  57. package/src/plugins/media-control/MediaControl.ts +8 -5
  58. package/src/plugins/multi-camera/MultiCamera.ts +2 -3
  59. package/src/plugins/poster/Poster.ts +1 -1
  60. package/src/plugins/source-controller/SourceController.ts +20 -14
  61. package/src/plugins/source-controller/__tests__/SourceController.test.ts +29 -46
  62. package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +20 -3
  63. package/src/testUtils.ts +100 -3
  64. package/tsconfig.tsbuildinfo +1 -1
@@ -1,21 +1,22 @@
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 in the LICENSE file.
4
- import { Events, HTML5Video, Log, Playback, PlayerError, Utils, $, } from '@clappr/core';
3
+ // license that can be found on https://github.com/clappr/hlsjs-playback/blob/main/LICENSE
4
+ import { Events, Log, Playback, PlayerError, Utils, $, } from '@clappr/core';
5
5
  import { trace } from '@gcorevideo/utils';
6
6
  import assert from 'assert';
7
7
  import HLSJS from 'hls.js';
8
8
  import { PlaybackErrorCode, } from '../../playback.types.js';
9
9
  import { isHlsSource } from '../../utils/mediaSources.js';
10
+ import { BasePlayback } from '../BasePlayback.js';
10
11
  import { CLAPPR_VERSION } from '../../build.js';
11
- const { now, listContainsIgnoreCase } = Utils;
12
+ const { now } = Utils;
12
13
  const AUTO = -1;
13
14
  const DEFAULT_RECOVER_ATTEMPTS = 16;
14
15
  Events.register('PLAYBACK_FRAGMENT_CHANGED');
15
16
  Events.register('PLAYBACK_FRAGMENT_PARSING_METADATA');
16
17
  const T = 'playback.hls';
17
18
  // @ts-expect-error
18
- export default class HlsPlayback extends HTML5Video {
19
+ export default class HlsPlayback extends BasePlayback {
19
20
  _ccIsSetup = false;
20
21
  _ccTracksUpdated = false;
21
22
  _currentFragment = null;
@@ -821,7 +822,9 @@ export default class HlsPlayback extends HTML5Video {
821
822
  return this._playbackType === Playback.VOD || this.dvrEnabled;
822
823
  }
823
824
  triggerError(error) {
824
- this.trigger(Events.PLAYBACK_ERROR, error);
825
+ this.trigger(Events.PLAYBACK_ERROR, this.createError(error, {
826
+ useCodePrefix: false,
827
+ }));
825
828
  this.stop();
826
829
  }
827
830
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/playback/utils.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -61,15 +61,15 @@ export declare enum PlaybackErrorCode {
61
61
  /**
62
62
  * An unknown or uncategorised error.
63
63
  */
64
- Generic = 0,
64
+ Generic = "GENERIC_ERROR",
65
65
  /**
66
66
  * The media source is not available. Typically a network error.
67
67
  */
68
- MediaSourceUnavailable = 1,
68
+ MediaSourceUnavailable = "MEDIA_SOURCE_UNAVAILABLE",
69
69
  /**
70
70
  * The media source is not accessible due to some protection policy.
71
71
  */
72
- MediaSourceAccessDenied = 3
72
+ MediaSourceAccessDenied = "MEDIA_SOURCE_ACCESS_DENIED"
73
73
  }
74
74
  /**
75
75
  * Levels of severity of errors. Non-fatal errors usually can be ignored.
@@ -114,5 +114,12 @@ export interface PlaybackError {
114
114
  * Component subsystem of the error origin
115
115
  */
116
116
  scope: PlayerComponentType;
117
+ /**
118
+ * UI description of the error.
119
+ */
120
+ UI?: {
121
+ title: string;
122
+ message: string;
123
+ };
117
124
  }
118
125
  //# sourceMappingURL=playback.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"playback.types.d.ts","sourceRoot":"","sources":["../src/playback.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,oBAAY,iBAAiB;IAC3B;;OAEG;IACH,OAAO,IAAI;IACX;;OAEG;IACH,sBAAsB,IAAI;IAC1B;;OAEG;IACH,uBAAuB,IAAI;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAA;AAEnE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IACvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,KAAK,EAAE,UAAU,CAAA;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,KAAK,EAAE,mBAAmB,CAAA;CAC3B"}
1
+ {"version":3,"file":"playback.types.d.ts","sourceRoot":"","sources":["../src/playback.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,oBAAY,iBAAiB;IAC3B;;OAEG;IACH,OAAO,kBAAkB;IACzB;;OAEG;IACH,sBAAsB,6BAA6B;IACnD;;OAEG;IACH,uBAAuB,+BAA+B;CACvD;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAA;AAEnE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IACvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,KAAK,EAAE,UAAU,CAAA;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,KAAK,EAAE,mBAAmB,CAAA;IAE1B;;OAEG;IACH,EAAE,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF"}
@@ -7,13 +7,13 @@ export var PlaybackErrorCode;
7
7
  /**
8
8
  * An unknown or uncategorised error.
9
9
  */
10
- PlaybackErrorCode[PlaybackErrorCode["Generic"] = 0] = "Generic";
10
+ PlaybackErrorCode["Generic"] = "GENERIC_ERROR";
11
11
  /**
12
12
  * The media source is not available. Typically a network error.
13
13
  */
14
- PlaybackErrorCode[PlaybackErrorCode["MediaSourceUnavailable"] = 1] = "MediaSourceUnavailable";
14
+ PlaybackErrorCode["MediaSourceUnavailable"] = "MEDIA_SOURCE_UNAVAILABLE";
15
15
  /**
16
16
  * The media source is not accessible due to some protection policy.
17
17
  */
18
- PlaybackErrorCode[PlaybackErrorCode["MediaSourceAccessDenied"] = 3] = "MediaSourceAccessDenied";
18
+ PlaybackErrorCode["MediaSourceAccessDenied"] = "MEDIA_SOURCE_ACCESS_DENIED";
19
19
  })(PlaybackErrorCode || (PlaybackErrorCode = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../src/plugins/context-menu/ContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,SAAS,EACT,iBAAiB,EAClB,MAAM,cAAc,CAAA;AAIrB,OAAO,gDAAgD,CAAA;AASvD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;IAChD,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,IAAI,CAAa;IAEzB,OAAO,CAAC,WAAW,CAAmB;IAEtC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;MAEtB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,aAAa,GAKxB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;gBAEW,SAAS,EAAE,SAAS;IAYhC;;OAEG;IACM,UAAU;IAUnB;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,cAAc;IAItB;;OAEG;IACM,MAAM;IASf,OAAO,CAAC,eAAe,CAEtB;CACF"}
1
+ {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../src/plugins/context-menu/ContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,SAAS,EACT,iBAAiB,EAClB,MAAM,cAAc,CAAA;AAIrB,OAAO,gDAAgD,CAAA;AASvD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;IAChD,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,IAAI,CAAa;IAEzB,OAAO,CAAC,WAAW,CAAmB;IAEtC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;MAEtB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,aAAa,GAKxB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;gBAEW,SAAS,EAAE,SAAS;IAYhC;;OAEG;IACM,UAAU;IASnB;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,cAAc;IAItB;;OAEG;IACM,MAAM;IASf,OAAO,CAAC,eAAe,CAEtB;CACF"}
@@ -61,7 +61,7 @@ export class ContextMenu extends UIContainerPlugin {
61
61
  this._url = this.options.contextMenu.url;
62
62
  }
63
63
  this.render();
64
- this.bindEvents();
64
+ $('body').on('click', this.hideOnBodyClick);
65
65
  }
66
66
  /**
67
67
  * @internal
@@ -69,7 +69,6 @@ export class ContextMenu extends UIContainerPlugin {
69
69
  bindEvents() {
70
70
  this.listenTo(this.container, Events.CONTAINER_CONTEXTMENU, this.toggleContextMenu);
71
71
  this.listenTo(this.container, Events.CONTAINER_CLICK, this.hide);
72
- $('body').on('click', this.hideOnBodyClick);
73
72
  }
74
73
  /**
75
74
  * @internal
@@ -1,48 +1,63 @@
1
1
  import { UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/error-screen/error_screen.scss';
3
- type PresentationalError = {
4
- title: string;
5
- message: string;
3
+ export type ErrorDesc = {
4
+ description: string;
5
+ level: string;
6
6
  code: string;
7
- icon: string;
8
- reloadIcon: string;
7
+ origin: string;
8
+ scope: string;
9
+ raw?: string;
10
+ UI?: {
11
+ icon?: string;
12
+ title: string;
13
+ message: string;
14
+ };
15
+ };
16
+ export type ErrorScreenPluginSettings = {
17
+ noReload?: boolean;
9
18
  };
10
19
  /**
11
- * Displays a descriptive error in the overlay on top of the player.
20
+ * Displays an error nicely in the overlay on top of the player.
12
21
  * @beta
13
22
  */
14
23
  export declare class ErrorScreen extends UICorePlugin {
15
- private _retry;
16
24
  private err;
17
- private hideValue;
18
- private timeout;
19
- private reloadButton;
25
+ /**
26
+ * @internal
27
+ */
20
28
  get name(): string;
29
+ /**
30
+ * @internal
31
+ */
21
32
  get supportedVersion(): {
22
33
  min: string;
23
34
  };
24
- get template(): any;
25
- get container(): any;
35
+ private static readonly template;
36
+ /**
37
+ * @internal
38
+ */
26
39
  get attributes(): {
27
40
  class: string;
28
41
  'data-error-screen': string;
29
42
  };
43
+ /**
44
+ * @internal
45
+ */
30
46
  bindEvents(): void;
31
- private onCoreReady;
32
47
  private onPlay;
33
- private destroyError;
34
- unBindEvents(): void;
35
- private bindReload;
48
+ private unmount;
49
+ /**
50
+ * @internal
51
+ */
52
+ get events(): {
53
+ 'click .player-error-screen__reload': string;
54
+ };
36
55
  private reload;
37
- private unbindReload;
38
- private onContainerChanged;
39
- private onStartAd;
40
- private onFinishAd;
56
+ private onActiveContainerChanged;
41
57
  private onError;
42
- private drying;
43
- show(err?: PresentationalError): void;
44
- hide(): void;
58
+ /**
59
+ * @internal
60
+ */
45
61
  render(): this;
46
62
  }
47
- export {};
48
63
  //# sourceMappingURL=ErrorScreen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorScreen.d.ts","sourceRoot":"","sources":["../../../src/plugins/error-screen/ErrorScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,cAAc,CAAC;AAQ3E,OAAO,gDAAgD,CAAC;AAaxD,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAA;AAID;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,MAAM,CAAK;IAEnB,OAAO,CAAC,GAAG,CAAoC;IAE/C,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,YAAY,CAA4B;IAEhD,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,QAAQ,QAEX;IAED,IAAI,SAAS,QAEZ;IAED,IAAa,UAAU;;;MAKtB;IAEQ,UAAU;IAQnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,YAAY;IAWpB,YAAY;IASZ,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,OAAO;IAqDf,OAAO,CAAC,MAAM;IAad,IAAI,CAAC,GAAG,CAAC,EAAE,mBAAmB;IAU9B,IAAI;IAIK,MAAM;CAYhB"}
1
+ {"version":3,"file":"ErrorScreen.d.ts","sourceRoot":"","sources":["../../../src/plugins/error-screen/ErrorScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAA;AAO7D,OAAO,gDAAgD,CAAA;AAGvD,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AASD,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAID;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,GAAG,CAA+B;IAE1C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,OAAO;IAOf;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,OAAO;IAgBf;;OAEG;IACM,MAAM;CAkBhB"}
@@ -1,184 +1,118 @@
1
- import { UICorePlugin, Events, template, PlayerError } from '@clappr/core';
1
+ import { UICorePlugin, Events, template } from '@clappr/core';
2
2
  import { trace } from '@gcorevideo/utils';
3
3
  import { CLAPPR_VERSION } from '../../build.js';
4
4
  import reloadIcon from '../../../assets/icons/old/reload.svg';
5
5
  import templateHtml from '../../../assets/error-screen/error_screen.ejs';
6
6
  import '../../../assets/error-screen/error_screen.scss';
7
- const TIME_FOR_UPDATE = 10000;
8
- const MAX_RETRY = 10;
9
7
  const T = 'plugins.error_screen';
10
8
  /**
11
- * Displays a descriptive error in the overlay on top of the player.
9
+ * Displays an error nicely in the overlay on top of the player.
12
10
  * @beta
13
11
  */
14
12
  export class ErrorScreen extends UICorePlugin {
15
- _retry = 0;
16
13
  err = null;
17
- hideValue = false;
18
- timeout = null;
19
- reloadButton = null;
14
+ /**
15
+ * @internal
16
+ */
20
17
  get name() {
21
- return 'error_gplayer';
18
+ return 'error_screen';
22
19
  }
20
+ /**
21
+ * @internal
22
+ */
23
23
  get supportedVersion() {
24
24
  return { min: CLAPPR_VERSION };
25
25
  }
26
- get template() {
27
- return template(templateHtml);
28
- }
29
- get container() {
30
- return this.core.activeContainer;
31
- }
26
+ static template = template(templateHtml);
27
+ /**
28
+ * @internal
29
+ */
32
30
  get attributes() {
33
31
  return {
34
- 'class': 'player-error-screen',
32
+ class: 'player-error-screen',
35
33
  'data-error-screen': '',
36
34
  };
37
35
  }
36
+ /**
37
+ * @internal
38
+ */
38
39
  bindEvents() {
39
40
  this.listenTo(this.core, Events.ERROR, this.onError);
40
- this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
41
- this.listenTo(this.core, 'core:advertisement:start', this.onStartAd);
42
- this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd);
43
- this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged);
44
- }
45
- onCoreReady() {
46
- trace(`${T} onCoreReady`);
47
- if (this.core.activePlayback) {
48
- this.listenTo(this.core.activePlayback, Events.PLAYBACK_PLAY, this.onPlay);
49
- }
41
+ this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
50
42
  }
51
43
  onPlay() {
52
44
  trace(`${T} onPlay`);
53
- this.destroyError();
45
+ this.unmount();
54
46
  }
55
- destroyError() {
56
- trace(`${T} destroyError`);
57
- this._retry = 0;
47
+ unmount() {
48
+ trace(`${T} unmount`);
58
49
  this.err = null;
59
- if (this.timeout !== null) {
60
- clearTimeout(this.timeout);
61
- this.timeout = null;
62
- }
63
- this.$el.hide();
64
- }
65
- unBindEvents() {
66
- // @ts-ignore
67
- this.stopListening(this.core, 'core:advertisement:start');
68
- // @ts-ignore
69
- this.stopListening(this.core, 'core:advertisement:finish');
70
- // @ts-ignore
71
- this.stopListening(this.core, Events.ERROR);
50
+ this.$el.empty();
51
+ // this.$el.hide();
72
52
  }
73
- bindReload() {
74
- this.reloadButton = this.$el.find('.player-error-screen__reload');
75
- this.reloadButton && this.reloadButton.on('click', this.reload.bind(this));
53
+ /**
54
+ * @internal
55
+ */
56
+ get events() {
57
+ return {
58
+ 'click .player-error-screen__reload': 'reload',
59
+ };
76
60
  }
77
61
  reload() {
78
- this._retry++;
79
- this.core.configure({
80
- ...this.options,
81
- autoPlay: true
62
+ setTimeout(() => {
63
+ this.core.configure({
64
+ reloading: true,
65
+ source: this.core.options.source,
66
+ sources: this.core.options.sources,
67
+ });
68
+ }, 0);
69
+ }
70
+ onActiveContainerChanged() {
71
+ trace(`${T} onActiveContainerChanged`, {
72
+ reloading: this.core.options.reloading,
82
73
  });
83
- this.core.activeContainer.mediaControlDisabled = false;
84
- this.unbindReload();
85
- }
86
- unbindReload() {
87
- this.reloadButton && this.reloadButton.off('click');
88
- }
89
- onContainerChanged() {
90
74
  this.err = null;
91
- if (this.core.getPlugin('error_screen')) {
92
- this.core.getPlugin('error_screen').disable();
93
- }
94
- this.unbindReload();
95
- this.hide();
96
- }
97
- onStartAd() {
98
- this.hideValue = true;
99
- if (this.err) {
100
- this.hide();
101
- }
102
- }
103
- onFinishAd() {
104
- this.hideValue = false;
105
- if (this.err) {
106
- this.container.disableMediaControl();
107
- this.container.stop();
108
- this.show();
75
+ this.listenTo(this.core.activeContainer.playback, Events.PLAYBACK_PLAY, this.onPlay);
76
+ if (this.core.options.reloading) {
77
+ setTimeout(() => {
78
+ this.core.options.reloading = false;
79
+ this.unmount();
80
+ this.core.activeContainer.play({
81
+ reloading: true,
82
+ });
83
+ }, 0);
109
84
  }
110
85
  }
111
86
  onError(err) {
112
87
  trace(`${T} onError`, { err });
113
- if (err.level === PlayerError.Levels.FATAL ||
114
- err.details === 'bufferStalledError' ||
115
- err.details === 'manifestParsingError') {
88
+ if (err.UI) {
89
+ if (this.err) {
90
+ this.unmount();
91
+ }
116
92
  this.err = {
117
- title: this.core.i18n.t('no_broadcast'),
118
- message: '',
119
- code: '',
120
- // icon: (this.err.UI && this.err.UI.icon) || '',
121
- icon: '',
122
- reloadIcon,
93
+ title: err.UI.title,
94
+ message: err.UI.message,
95
+ code: err.code,
96
+ icon: err.UI.icon,
123
97
  };
124
- if (this.options.errorScreen?.reloadOnError === false) {
125
- return;
126
- }
127
- if (this.options.errorScreen?.neverStopToRetry) {
128
- this._retry = 0;
129
- }
130
- if (this._retry >= MAX_RETRY) {
131
- this.drying();
132
- return;
133
- }
134
- const ctp = this.container.getPlugin('click_to_pause_custom');
135
- const toggleCTP = !!ctp?.enabled;
136
- if (toggleCTP) {
137
- // clickToPausePlugin.afterEnabled = true;
138
- ctp.disable();
139
- }
140
- this.timeout = setTimeout(() => {
141
- if (toggleCTP) {
142
- ctp.enable();
143
- }
144
- this.reload();
145
- }, TIME_FOR_UPDATE);
146
- const spinnerPlugin = this.container.getPlugin('spinner');
147
- if (spinnerPlugin) {
148
- spinnerPlugin.show(); // TODO remove?
149
- setTimeout(() => spinnerPlugin.show(), 0);
150
- }
98
+ this.render();
151
99
  }
152
100
  }
153
- drying() {
154
- const spinnerPlugin = this.container.getPlugin('spinner');
155
- spinnerPlugin?.hide();
156
- this._retry = 0;
157
- if (!this.hideValue) {
158
- this.container.disableMediaControl();
159
- this.container.stop();
160
- this.show();
161
- }
162
- }
163
- show(err) {
164
- if (err) {
165
- this.err = err;
166
- }
167
- // TODO use container.disableMediaControl() instead
168
- this.core.mediaControl.disable();
169
- this.render();
170
- this.$el.show();
171
- }
172
- hide() {
173
- this.$el.hide();
174
- }
101
+ /**
102
+ * @internal
103
+ */
175
104
  render() {
176
105
  if (!this.err) {
177
106
  return this;
178
107
  }
179
- this.$el.html(this.template(this.err));
180
- this.core.$el.append(this.el);
181
- this.bindReload();
108
+ this.$el.html(ErrorScreen.template({
109
+ ...this.err,
110
+ reloadIcon: this.options.errorScreen?.noReload ? null : reloadIcon,
111
+ }));
112
+ // TODO append to container instead of core?
113
+ if (!this.el.parentElement) {
114
+ this.core.$el.append(this.el);
115
+ }
182
116
  return this;
183
117
  }
184
118
  }
@@ -152,7 +152,7 @@ export declare class MediaControl extends UICorePlugin {
152
152
  bindEvents(): void;
153
153
  private bindContainerEvents;
154
154
  /**
155
- * Disables the plugin and unmounts its UI
155
+ * Hides the media control UI
156
156
  */
157
157
  disable(): void;
158
158
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  // license that can be found in the LICENSE file.
4
4
  import assert from 'assert';
5
5
  import { Events, UICorePlugin, Browser, Playback, Utils, template, $, } from '@clappr/core';
6
- import { reportError } from '@gcorevideo/utils';
6
+ import { reportError, trace } from '@gcorevideo/utils';
7
7
  import { Kibo } from '../kibo/index.js';
8
8
  import { CLAPPR_VERSION } from '../../build.js';
9
9
  import { getPageX, isFullscreen } from '../utils.js';
@@ -262,9 +262,10 @@ export class MediaControl extends UICorePlugin {
262
262
  }
263
263
  }
264
264
  /**
265
- * Disables the plugin and unmounts its UI
265
+ * Hides the media control UI
266
266
  */
267
267
  disable() {
268
+ trace(`${T} disable`);
268
269
  this.userDisabled = true;
269
270
  this.hide();
270
271
  this.unbindKeyEvents();
@@ -274,6 +275,7 @@ export class MediaControl extends UICorePlugin {
274
275
  * Reenables the plugin disabled earlier with the {@link MediaControl.disable} method
275
276
  */
276
277
  enable() {
278
+ trace(`${T} enable`);
277
279
  if (this.options.chromeless) {
278
280
  return;
279
281
  }
@@ -951,13 +953,13 @@ export class MediaControl extends UICorePlugin {
951
953
  destroy() {
952
954
  $(document).unbind('mouseup', this.stopDrag);
953
955
  $(document).unbind('mousemove', this.updateDrag);
956
+ $(document).unbind('touchend', this.stopDrag);
957
+ $(document).unbind('touchmove', this.updateDrag);
954
958
  this.unbindKeyEvents();
955
- // @ts-ignore
956
- this.stopListening();
957
959
  return super.destroy();
958
960
  }
959
961
  configure() {
960
- this.advertisementPlaying ? this.disable() : this.enable();
962
+ // this.advertisementPlaying ? this.disable() : this.enable()
961
963
  this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE);
962
964
  }
963
965
  /**
@@ -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;;;GAGG;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"}
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;;;GAGG;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;IAmBjB,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"}
@@ -262,13 +262,12 @@ export class MultiCamera extends UICorePlugin {
262
262
  catch (error) {
263
263
  reportError(error);
264
264
  }
265
- // TODO figure out
266
- this.core.getPlugin('error_gplayer')?.show({
265
+ // TODO trigger error instead
266
+ this.core.getPlugin('error_screen')?.show({
267
267
  title: this.core.i18n.t('source_offline'),
268
268
  message: '',
269
269
  code: '',
270
270
  icon: '',
271
- reloadIcon: '',
272
271
  });
273
272
  }
274
273
  hideError() {
@@ -55,7 +55,7 @@ export class Poster extends UIContainerPlugin {
55
55
  }
56
56
  static template = template(posterHTML);
57
57
  get shouldRender() {
58
- if (!this.enabled) {
58
+ if (!this.enabled || this.options.reloading) {
59
59
  return false;
60
60
  }
61
61
  const showForNoOp = !!this.options.poster?.showForNoOp;
@@ -37,7 +37,8 @@ export declare class SourceController extends CorePlugin {
37
37
  * @internal
38
38
  */
39
39
  bindEvents(): void;
40
- private onReady;
40
+ private onCoreReady;
41
+ private onActiveContainerChanged;
41
42
  private bindContainerEventListeners;
42
43
  private reset;
43
44
  private retryPlayback;
@@ -1 +1 @@
1
- {"version":3,"file":"SourceController.d.ts","sourceRoot":"","sources":["../../../src/plugins/source-controller/SourceController.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,IAAI,IAAI,UAAU,EACxB,MAAM,cAAc,CAAA;AA6BrB;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAuC9C,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,kBAAkB,CAAI;IAE9B,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,IAAI,CAAiB;IAE7B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;gBAEW,IAAI,EAAE,UAAU;IAW5B;;OAEG;IACM,UAAU;IAMnB,OAAO,CAAC,OAAO;IAoBf,OAAO,CAAC,2BAA2B;IAsCnC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;CACF"}
1
+ {"version":3,"file":"SourceController.d.ts","sourceRoot":"","sources":["../../../src/plugins/source-controller/SourceController.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,IAAI,IAAI,UAAU,EACxB,MAAM,cAAc,CAAA;AAwBrB;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAuC9C,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,kBAAkB,CAAI;IAE9B,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,IAAI,CAAiB;IAE7B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;gBAEW,IAAI,EAAE,UAAU;IAW5B;;OAEG;IACM,UAAU;IAWnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,2BAA2B;IAsCnC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;CACF"}