@gcorevideo/player 2.20.11 → 2.20.13

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 (66) hide show
  1. package/dist/core.js +26 -2
  2. package/dist/index.css +953 -953
  3. package/dist/index.js +61 -55
  4. package/dist/player.d.ts +47 -15
  5. package/dist/plugins/index.css +1475 -1475
  6. package/dist/plugins/index.js +36 -49
  7. package/docs/api/player.contextmenupluginsettings.md +1 -1
  8. package/docs/api/player.favicon.md +4 -174
  9. package/docs/api/{player.favicon.bindevents.md → player.faviconpluginsettings.faviconcolor.md} +5 -7
  10. package/docs/api/{player.favicon._constructor_.md → player.faviconpluginsettings.md} +17 -8
  11. package/docs/api/player.md +15 -4
  12. package/docs/api/{player.favicon.disable.md → player.mediacontrol.getcenterpanel.md} +4 -4
  13. package/docs/api/{player.favicon.configure.md → player.mediacontrol.getleftpanel.md} +8 -4
  14. package/docs/api/player.mediacontrol.md +30 -11
  15. package/docs/api/player.playbackerror.md +2 -2
  16. package/docs/api/player.playbackerror.origin.md +1 -1
  17. package/docs/api/player.playbackerror.scope.md +1 -1
  18. package/docs/api/player.poster.md +1 -1
  19. package/docs/api/player.sourcecontroller.md +2 -33
  20. package/lib/Player.js +1 -1
  21. package/lib/playback/HTML5Video.d.ts +5 -0
  22. package/lib/playback/HTML5Video.d.ts.map +1 -1
  23. package/lib/playback/HTML5Video.js +21 -0
  24. package/lib/playback/hls-playback/HlsPlayback.d.ts +2 -2
  25. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  26. package/lib/playback/hls-playback/HlsPlayback.js +4 -0
  27. package/lib/playback.types.d.ts +2 -2
  28. package/lib/plugins/click-to-pause/ClickToPause.d.ts.map +1 -1
  29. package/lib/plugins/click-to-pause/ClickToPause.js +0 -4
  30. package/lib/plugins/context-menu/ContextMenu.d.ts +1 -1
  31. package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
  32. package/lib/plugins/dvr-controls/DvrControls.js +0 -1
  33. package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
  34. package/lib/plugins/error-screen/ErrorScreen.js +0 -1
  35. package/lib/plugins/favicon/Favicon.d.ts +30 -3
  36. package/lib/plugins/favicon/Favicon.d.ts.map +1 -1
  37. package/lib/plugins/favicon/Favicon.js +28 -35
  38. package/lib/plugins/media-control/MediaControl.d.ts +1 -8
  39. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  40. package/lib/plugins/media-control/MediaControl.js +2 -9
  41. package/lib/plugins/poster/Poster.d.ts +2 -0
  42. package/lib/plugins/poster/Poster.d.ts.map +1 -1
  43. package/lib/plugins/poster/Poster.js +3 -3
  44. package/lib/plugins/source-controller/SourceController.d.ts +3 -0
  45. package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
  46. package/lib/plugins/source-controller/SourceController.js +3 -0
  47. package/package.json +1 -1
  48. package/src/Player.ts +1 -1
  49. package/src/playback/HTML5Video.ts +29 -1
  50. package/src/playback/__tests__/HTML5Video.test.ts +47 -0
  51. package/src/playback/hls-playback/HlsPlayback.ts +5 -1
  52. package/src/playback.types.ts +2 -2
  53. package/src/plugins/click-to-pause/ClickToPause.ts +0 -5
  54. package/src/plugins/context-menu/ContextMenu.ts +1 -1
  55. package/src/plugins/dvr-controls/DvrControls.ts +0 -1
  56. package/src/plugins/error-screen/ErrorScreen.ts +0 -1
  57. package/src/plugins/favicon/Favicon.ts +38 -41
  58. package/src/plugins/media-control/MediaControl.ts +2 -9
  59. package/src/plugins/poster/Poster.ts +4 -3
  60. package/src/plugins/source-controller/SourceController.ts +3 -0
  61. package/temp/player.api.json +101 -246
  62. package/tsconfig.tsbuildinfo +1 -1
  63. package/docs/api/player.favicon.destroy.md +0 -18
  64. package/docs/api/player.favicon.name.md +0 -14
  65. package/docs/api/player.favicon.supportedversion.md +0 -16
  66. package/docs/api/player.sourcecontroller._constructor_.md +0 -50
@@ -22,6 +22,8 @@ Have a look at the [source failover diagram](https://miro.com/app/board/uXjVLiN1
22
22
 
23
23
  This plugin does not expose any public methods apart from required by the Clappr plugin interface. It is supposed to work autonomously.
24
24
 
25
+ The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `SourceController` class.
26
+
25
27
  ## Example
26
28
 
27
29
 
@@ -31,36 +33,3 @@ import { SourceController } from '@gcorevideo/player'
31
33
  Player.registerPlugin(SourceController)
32
34
  ```
33
35
 
34
- ## Constructors
35
-
36
- <table><thead><tr><th>
37
-
38
- Constructor
39
-
40
-
41
- </th><th>
42
-
43
- Modifiers
44
-
45
-
46
- </th><th>
47
-
48
- Description
49
-
50
-
51
- </th></tr></thead>
52
- <tbody><tr><td>
53
-
54
- [(constructor)(core)](./player.sourcecontroller._constructor_.md)
55
-
56
-
57
- </td><td>
58
-
59
-
60
- </td><td>
61
-
62
- **_(BETA)_** Constructs a new instance of the `SourceController` class
63
-
64
-
65
- </td></tr>
66
- </tbody></table>
package/lib/Player.js CHANGED
@@ -101,7 +101,7 @@ export class Player {
101
101
  const coreOpts = this.buildCoreOptions(playerElement);
102
102
  const { core, container } = Player.getRegisteredPlugins();
103
103
  trace(`${T} init`, {
104
- registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.name),
104
+ registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.prototype.name),
105
105
  });
106
106
  coreOpts.plugins = {
107
107
  core: Object.values(core),
@@ -1,4 +1,9 @@
1
+ import { ErrorOptions } from '@clappr/core';
1
2
  import { BasePlayback } from './BasePlayback.js';
2
3
  export default class HTML5Video extends BasePlayback {
4
+ /**
5
+ * @internal
6
+ */
7
+ createError(errorData: any, options?: ErrorOptions): Error;
3
8
  }
4
9
  //# sourceMappingURL=HTML5Video.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HTML5Video.d.ts","sourceRoot":"","sources":["../../src/playback/HTML5Video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,YAAY;CAAG"}
1
+ {"version":3,"file":"HTML5Video.d.ts","sourceRoot":"","sources":["../../src/playback/HTML5Video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,YAAY;IAClD;;OAEG;IACM,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;CAqB5D"}
@@ -1,3 +1,24 @@
1
+ import { PlaybackErrorCode } from '../playback.types.js';
1
2
  import { BasePlayback } from './BasePlayback.js';
2
3
  export default class HTML5Video extends BasePlayback {
4
+ /**
5
+ * @internal
6
+ */
7
+ createError(errorData, options) {
8
+ const i18n = this.i18n ||
9
+ // @ts-ignore
10
+ (this.core && this.core.i18n) ||
11
+ // @ts-ignore
12
+ (this.container && this.container.i18n);
13
+ if (i18n &&
14
+ !errorData.UI &&
15
+ errorData.code === MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED) {
16
+ errorData.UI = {
17
+ title: i18n.t('no_broadcast'),
18
+ message: errorData.message,
19
+ };
20
+ errorData.code = PlaybackErrorCode.MediaSourceUnavailable;
21
+ }
22
+ return super.createError(errorData, { ...options, useCodePrefix: false });
23
+ }
3
24
  }
@@ -1,5 +1,5 @@
1
1
  import HLSJS, { Events as HlsEvents, type ErrorData as HlsErrorData, type FragChangedData, type FragLoadedData, type FragParsingMetadataData, type LevelSwitchingData } from 'hls.js';
2
- import { PlaybackError, QualityLevel } from '../../playback.types.js';
2
+ import { QualityLevel } from '../../playback.types.js';
3
3
  import { PlaybackType } from '../../types.js';
4
4
  import { BasePlayback } from '../BasePlayback.js';
5
5
  export default class HlsPlayback extends BasePlayback {
@@ -64,7 +64,7 @@ export default class HlsPlayback extends BasePlayback {
64
64
  _onFragmentParsingMetadata(evt: HlsEvents.FRAG_PARSING_METADATA, data: FragParsingMetadataData): void;
65
65
  render(): this;
66
66
  _ready(): void;
67
- _recover(evt: HlsEvents.ERROR, data: HlsErrorData, error: PlaybackError): void;
67
+ private _recover;
68
68
  protected _setupSrc(srcUrl: string): void;
69
69
  _startTimeUpdateTimer(): void;
70
70
  _stopTimeUpdateTimer(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EACZ,MAAM,IAAI,SAAS,EAEnB,KAAK,SAAS,IAAI,YAAY,EAE9B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAG5B,KAAK,kBAAkB,EACxB,MAAM,QAAQ,CAAA;AAEf,OAAO,EACL,aAAa,EAGb,YAAY,EAGb,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA0CjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,YAAY;IACnD,OAAO,CAAC,UAAU,CAAQ;IAE1B,OAAO,CAAC,gBAAgB,CAAQ;IAEhC,OAAO,CAAC,gBAAgB,CAAwB;IAEhD,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,mCAAmC,CAAQ;IAEnD,OAAO,CAAC,8BAA8B,CAAI;IAE1C,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,eAAe,CAA4B;IAEnD,OAAO,CAAC,OAAO,CAA8B;IAE7C,OAAO,CAAC,0BAA0B,CAA+B;IAEjE,OAAO,CAAC,wBAAwB,CAA+B;IAE/D,OAAO,CAAC,eAAe,CAAQ;IAE/B,OAAO,CAAC,uBAAuB,CAAI;IAEnC,OAAO,CAAC,aAAa,CAA6C;IAElE,OAAO,CAAC,aAAa,CAA4B;IAEjD,OAAO,CAAC,wBAAwB,CAAI;IAEpC,OAAO,CAAC,gBAAgB,CAAsB;IAE9C,OAAO,CAAC,yBAAyB,CAAI;IAErC,OAAO,CAAC,yBAAyB,CAAQ;IAEzC,OAAO,CAAC,uBAAuB,CAAQ;IAEvC,OAAO,CAAC,sBAAsB,CAAsB;IAEpD,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,MAAM,mBAET;IAED,IAAI,YAAY,IAQK,MAAM,CAN1B;IAED,IAAI,OAAO,YAEV;IAED,IAAI,YAAY,CAAC,EAAE,EAAE,MAAM,EAS1B;IAED,IAAI,OAAO,WAGV;IAED,IAAI,sBAAsB,SAIzB;IAED,IAAI,UAAU,WASb;IAED,IAAI,IAAI,WAEP;IAID,IAAI,sBAAsB,WAczB;IAID,IAAI,oBAAoB,WAevB;IAED,IAAI,SAAS,WAEZ;IAmBD,IAAI,2BAA2B,WAM9B;IAED,IAAI,iBAAiB,kBAEpB;IAED,IAAI,cAAc;;MAEjB;IAED,IAAI,eAAe,QAKlB;IAED,IAAI,WAAW,QAEd;IAED,IAAI,gBAAgB,kBAcnB;IAED,MAAM,KAAK,KAAK,iBAEf;gBAEW,GAAG,IAAI,EAAE,GAAG,EAAE;IAU1B,gBAAgB;IAmDhB,MAAM;IAON,mBAAmB;IAYnB,kBAAkB;IAclB,eAAe;IAOf,gBAAgB;IA0EhB,mBAAmB;IAUnB,qBAAqB;IASrB,0BAA0B,CACxB,GAAG,EAAE,SAAS,CAAC,qBAAqB,EACpC,IAAI,EAAE,uBAAuB;IAS/B,MAAM;IAMN,MAAM;IASN,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa;cAsBpD,SAAS,CAAC,MAAM,EAAE,MAAM;IAE3C,qBAAqB;IAUrB,oBAAoB;IAQpB,kBAAkB;IAOlB,WAAW;IAIX,cAAc;IAad,kBAAkB;IAIlB,cAAc,CAAC,UAAU,EAAE,MAAM;IAOjC,IAAI,CAAC,IAAI,EAAE,MAAM;IAajB,eAAe;IAIf,UAAU,CAAC,MAAM,EAAE,OAAO;IAK1B,eAAe;IAiBf,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY;IA4GtD,YAAY,CAAC,IAAI,EAAE,YAAY;IAU/B,aAAa;IAkBJ,iBAAiB;IAUjB,WAAW;IAwCpB,IAAI,CAAC,GAAG,EAAE,MAAM;IAMhB,IAAI;IAUJ,KAAK;IAUL,IAAI;IAQJ,OAAO;IAMP,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,eAAe;IAkJvB,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,eAAe;IAMrE,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,cAAc;IAIlE,iBAAiB;IAajB,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,kBAAkB;IAOvE,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAmBvE,IAAI,UAAU,YAUb;IAED,eAAe;IAIf,aAAa;IAIb,OAAO,CAAC,YAAY;CASrB"}
1
+ {"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"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"}
@@ -484,6 +484,10 @@ export default class HlsPlayback extends BasePlayback {
484
484
  details: data.details,
485
485
  });
486
486
  error.level = PlayerError.Levels.WARN;
487
+ // TODO check
488
+ // if (data.error instanceof MediaError && data.error.code === MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED) {
489
+ // error.code = PlaybackErrorCode.MediaSourceUnavailable
490
+ // }
487
491
  this._recover(evt, data, error);
488
492
  break;
489
493
  default:
@@ -103,7 +103,7 @@ export interface PlaybackError {
103
103
  */
104
104
  message: string;
105
105
  /**
106
- * Exact component that originated the error.
106
+ * Name of the component that originated the error.
107
107
  * @example
108
108
  * - 'core'
109
109
  * - 'dash'
@@ -111,7 +111,7 @@ export interface PlaybackError {
111
111
  */
112
112
  origin: string;
113
113
  /**
114
- * Component subsystem of the error origin
114
+ * Component subsystem of the error origin, together with the `origin` uniquely identifies the originating component.
115
115
  */
116
116
  scope: PlayerComponentType;
117
117
  /**
@@ -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,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
+ {"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;IActB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;CAMnB"}
@@ -52,10 +52,6 @@ export class ClickToPause extends ContainerPlugin {
52
52
  settingsUpdate() {
53
53
  const isLivePlayback = this.container.getPlaybackType() === Playback.LIVE;
54
54
  const pointerEnabled = !isLivePlayback || this.container.isDvrEnabled();
55
- trace(`${T} settingsUpdate`, {
56
- isLivePlayback,
57
- pointerEnabled,
58
- });
59
55
  if (pointerEnabled === this.pointerEnabled) {
60
56
  return;
61
57
  }
@@ -1,7 +1,7 @@
1
1
  import { Container, UIContainerPlugin } from '@clappr/core';
2
2
  import '../../../assets/context-menu/context_menu.scss';
3
3
  /**
4
- * The plugin adds a context menu to the player.
4
+ * Context menu plugin settings
5
5
  * @beta
6
6
  */
7
7
  export interface ContextMenuPluginSettings {
@@ -1 +1 @@
1
- {"version":3,"file":"DvrControls.d.ts","sourceRoot":"","sources":["../../../src/plugins/dvr-controls/DvrControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,YAAY,EAAY,MAAM,cAAc,CAAA;AAM7E,OAAO,gDAAgD,CAAA;AAMvD;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAEpD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACM,MAAM;CAoBhB"}
1
+ {"version":3,"file":"DvrControls.d.ts","sourceRoot":"","sources":["../../../src/plugins/dvr-controls/DvrControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,YAAY,EAAY,MAAM,cAAc,CAAA;AAM7E,OAAO,gDAAgD,CAAA;AAMvD;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAEpD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACM,MAAM;CAoBhB"}
@@ -98,7 +98,6 @@ export class DvrControls extends UICorePlugin {
98
98
  container.seek(container.getDuration());
99
99
  }
100
100
  settingsUpdate() {
101
- trace(`${T} settingsUpdate`);
102
101
  this.core.getPlugin('media_control').$el.removeClass('live');
103
102
  this.render();
104
103
  }
@@ -1 +1 @@
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;AAUvD;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,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;IAMf;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,OAAO;IAgBf;;OAEG;IACM,MAAM;CAkBhB"}
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;AAUvD;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,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;IAMf;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,OAAO;IAgBf;;OAEG;IACM,MAAM;CAiBhB"}
@@ -108,7 +108,6 @@ export class ErrorScreen extends UICorePlugin {
108
108
  ...this.err,
109
109
  reloadIcon: this.options.errorScreen?.noReload ? null : reloadIcon,
110
110
  }));
111
- // TODO append to container instead of core?
112
111
  if (!this.el.parentElement) {
113
112
  this.core.$el.append(this.el);
114
113
  }
@@ -1,23 +1,50 @@
1
1
  import { CorePlugin, Core } from '@clappr/core';
2
2
  /**
3
- * `PLUGIN` that adds custom favicon to the player's tab.
4
3
  * @beta
5
4
  */
5
+ export interface FaviconPluginSettings {
6
+ /**
7
+ * CSS color of the favicon.
8
+ */
9
+ faviconColor?: string;
10
+ }
11
+ /**
12
+ * `PLUGIN` that changes the favicon according to the player's state.
13
+ * @beta
14
+ * @remarks
15
+ * There are three states: stopped, playing and paused.
16
+ */
6
17
  export declare class Favicon extends CorePlugin {
7
- private _container;
8
18
  private oldIcon;
9
19
  private playIcon;
10
20
  private pauseIcon;
11
21
  private stopIcon;
22
+ /**
23
+ * @internal
24
+ */
12
25
  get name(): string;
26
+ /**
27
+ * @internal
28
+ */
13
29
  get supportedVersion(): {
14
30
  min: string;
15
31
  };
32
+ /**
33
+ * @internal
34
+ */
16
35
  constructor(core: Core);
17
- configure(): void;
36
+ /**
37
+ * @internal
38
+ */
18
39
  bindEvents(): void;
19
40
  private containerChanged;
41
+ /**
42
+ * @internal
43
+ */
20
44
  disable(): void;
45
+ /**
46
+ * @internal
47
+ */
21
48
  destroy(): void;
22
49
  private createIcon;
23
50
  private setPlayIcon;
@@ -1 +1 @@
1
- {"version":3,"file":"Favicon.d.ts","sourceRoot":"","sources":["../../../src/plugins/favicon/Favicon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,IAAI,EAAa,MAAM,cAAc,CAAC;AActE;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACrC,OAAO,CAAC,UAAU,CAA0B;IAE5C,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAA4B;IAE5C,OAAO,CAAC,SAAS,CAA4B;IAE7C,OAAO,CAAC,QAAQ,CAA4B;IAE5C,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;gBAMW,IAAI,EAAE,IAAI;IAUtB,SAAS;IAaA,UAAU;IAMnB,OAAO,CAAC,gBAAgB;IAYf,OAAO;IAKP,OAAO;IAKhB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;CAMnB"}
1
+ {"version":3,"file":"Favicon.d.ts","sourceRoot":"","sources":["../../../src/plugins/favicon/Favicon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,IAAI,EAAa,MAAM,cAAc,CAAC;AAYtE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACrC,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAA4B;IAE5C,OAAO,CAAC,SAAS,CAA4B;IAE7C,OAAO,CAAC,QAAQ,CAA4B;IAE5C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;gBACS,IAAI,EAAE,IAAI;IAStB;;OAEG;IACM,UAAU;IAInB,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACM,OAAO;IAKhB;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,UAAU;CAInB"}
@@ -5,26 +5,32 @@ import pauseIcon from '../../../assets/icons/new/pause.svg';
5
5
  import stopIcon from '../../../assets/icons/new/stop.svg';
6
6
  const FAVICON_COLOR = '#567';
7
7
  const FAVICON_SELECTOR = 'link[rel="shortcut icon"]';
8
- // const oldIcon = $(FAVICON_SELECTOR);
9
8
  /**
10
- * `PLUGIN` that adds custom favicon to the player's tab.
9
+ * `PLUGIN` that changes the favicon according to the player's state.
11
10
  * @beta
11
+ * @remarks
12
+ * There are three states: stopped, playing and paused.
12
13
  */
13
14
  export class Favicon extends CorePlugin {
14
- _container = null;
15
15
  oldIcon;
16
16
  playIcon = null;
17
17
  pauseIcon = null;
18
18
  stopIcon = null;
19
+ /**
20
+ * @internal
21
+ */
19
22
  get name() {
20
23
  return 'favicon';
21
24
  }
25
+ /**
26
+ * @internal
27
+ */
22
28
  get supportedVersion() {
23
29
  return { min: CLAPPR_VERSION };
24
30
  }
25
- // get oldIcon() {
26
- // return oldIcon;
27
- // }
31
+ /**
32
+ * @internal
33
+ */
28
34
  constructor(core) {
29
35
  super(core);
30
36
  this.oldIcon = $(FAVICON_SELECTOR);
@@ -32,41 +38,31 @@ export class Favicon extends CorePlugin {
32
38
  this.stopIcon = this.createIcon(stopIcon);
33
39
  this.changeIcon(this.stopIcon);
34
40
  }
35
- this.configure();
36
- }
37
- configure() {
38
- if (this.core.options.changeFavicon) {
39
- if (!this.enabled) {
40
- // @ts-ignore
41
- this.stopListening(this.core, Events.CORE_OPTIONS_CHANGE);
42
- this.enable();
43
- }
44
- }
45
- else if (this.enabled) {
46
- this.disable();
47
- this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure);
48
- }
49
41
  }
42
+ /**
43
+ * @internal
44
+ */
50
45
  bindEvents() {
51
- this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure);
52
46
  this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged);
53
- this.core.activeContainer && this.containerChanged();
54
47
  }
55
48
  containerChanged() {
56
- // @ts-ignore
57
- this._container && this.stopListening(this._container);
58
- this._container = this.core.activeContainer;
59
- this.listenTo(this._container, Events.CONTAINER_PLAY, this.setPlayIcon);
60
- this.listenTo(this._container, Events.CONTAINER_PAUSE, this.setPauseIcon);
61
- this.listenTo(this._container, Events.CONTAINER_STOP, this.resetIcon);
62
- this.listenTo(this._container, Events.CONTAINER_ENDED, this.resetIcon);
63
- this.listenTo(this._container, Events.CONTAINER_ERROR, this.resetIcon);
49
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAY, this.setPlayIcon);
50
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_PAUSE, this.setPauseIcon);
51
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_STOP, this.resetIcon);
52
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_ENDED, this.resetIcon);
53
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_ERROR, this.resetIcon);
64
54
  this.resetIcon();
65
55
  }
56
+ /**
57
+ * @internal
58
+ */
66
59
  disable() {
67
60
  super.disable();
68
61
  this.resetIcon();
69
62
  }
63
+ /**
64
+ * @internal
65
+ */
70
66
  destroy() {
71
67
  super.destroy();
72
68
  this.resetIcon();
@@ -97,14 +93,11 @@ export class Favicon extends CorePlugin {
97
93
  this.changeIcon(this.pauseIcon);
98
94
  }
99
95
  resetIcon() {
100
- $(FAVICON_SELECTOR).remove();
101
96
  const icon = this.oldIcon.length > 0 ? this.oldIcon : this.stopIcon;
102
97
  this.changeIcon(icon);
103
98
  }
104
99
  changeIcon(icon) {
105
- if (icon) {
106
- $('link[rel="shortcut icon"]').remove();
107
- $('head').append(icon);
108
- }
100
+ $('link[rel="shortcut icon"]').remove();
101
+ $('head').append(icon);
109
102
  }
110
103
  }
@@ -18,17 +18,10 @@ export declare enum MediaControlEvents {
18
18
  MEDIACONTROL_GEAR_RENDERED = "mediacontrol:gear:rendered"
19
19
  }
20
20
  /**
21
- * `PLUGIN` that provides a foundation for developing custom media controls UI.
21
+ * `PLUGIN` that provides basic playback controls UI and a foundation for developing custom UI.
22
22
  * @beta
23
23
  * @remarks
24
24
  * The methods exposed are to be used by the other plugins that extend the media control UI.
25
- * The plugin registration should be arranged so that MediaControl is initialized before every other `PLUGIN` that depends on it.
26
- * @example
27
- * ```ts
28
- * Player.registerPlugin(MediaControl) // <--- This must go first
29
- * Player.registerPlugin(LevelSelector) // a media control plugin
30
- * Player.registerPlugin(NerdStats) // another media control plugin
31
- * ```
32
25
  */
33
26
  export declare class MediaControl extends UICorePlugin {
34
27
  private advertisementPlaying;
@@ -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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"}
@@ -6,6 +6,7 @@
6
6
  import assert from 'assert';
7
7
  import { Events, UICorePlugin, Browser, Playback, Utils, template, $, } from '@clappr/core';
8
8
  import { reportError, trace } from '@gcorevideo/utils';
9
+ // TODO replace Kibo with mousetrap
9
10
  import { Kibo } from '../kibo/index.js';
10
11
  import { CLAPPR_VERSION } from '../../build.js';
11
12
  import { getPageX, isFullscreen } from '../utils.js';
@@ -47,17 +48,10 @@ function orderByOrderPattern(arr, order) {
47
48
  return [...ordered, ...rest];
48
49
  }
49
50
  /**
50
- * `PLUGIN` that provides a foundation for developing custom media controls UI.
51
+ * `PLUGIN` that provides basic playback controls UI and a foundation for developing custom UI.
51
52
  * @beta
52
53
  * @remarks
53
54
  * The methods exposed are to be used by the other plugins that extend the media control UI.
54
- * The plugin registration should be arranged so that MediaControl is initialized before every other `PLUGIN` that depends on it.
55
- * @example
56
- * ```ts
57
- * Player.registerPlugin(MediaControl) // <--- This must go first
58
- * Player.registerPlugin(LevelSelector) // a media control plugin
59
- * Player.registerPlugin(NerdStats) // another media control plugin
60
- * ```
61
55
  */
62
56
  export class MediaControl extends UICorePlugin {
63
57
  advertisementPlaying = false;
@@ -990,7 +984,6 @@ export class MediaControl extends UICorePlugin {
990
984
  return super.destroy();
991
985
  }
992
986
  configure() {
993
- // this.advertisementPlaying ? this.disable() : this.enable()
994
987
  this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE);
995
988
  }
996
989
  /**
@@ -5,6 +5,8 @@ import '../../../assets/poster/poster.scss';
5
5
  * @beta
6
6
  * @remarks
7
7
  * When the playback is stopped, media control UI is disabled.
8
+ * Note that the poster image, if specified via the player config, will be used to update video element's poster attribute by the
9
+ * HTML5-video-based playback module.
8
10
  *
9
11
  * Configuration options:
10
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Poster.d.ts","sourceRoot":"","sources":["../../../src/plugins/poster/Poster.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,iBAAiB,EAIlB,MAAM,cAAc,CAAA;AAMrB,OAAO,oCAAoC,CAAA;AAO3C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,MAAO,SAAQ,iBAAiB;IAC3C,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,WAAW,CAA2B;IAE9C,OAAO,CAAC,YAAY,CAA2B;IAE/C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD,OAAO,KAAK,YAAY,GAUvB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED;;OAEG;IACM,UAAU;IAiBnB;;OAEG;IACM,MAAM;IAMf;;OAEG;IACM,OAAO;IAOhB,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,OAAO;IAqBf,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACM,MAAM;IAuCf;;OAEG;IACM,OAAO;CAIjB"}
1
+ {"version":3,"file":"Poster.d.ts","sourceRoot":"","sources":["../../../src/plugins/poster/Poster.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,iBAAiB,EAGlB,MAAM,cAAc,CAAA;AAMrB,OAAO,oCAAoC,CAAA;AAO3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,MAAO,SAAQ,iBAAiB;IAG3C,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,WAAW,CAA2B;IAE9C,OAAO,CAAC,YAAY,CAA2B;IAE/C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD,OAAO,KAAK,YAAY,GAUvB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED;;OAEG;IACM,UAAU;IAiBnB;;OAEG;IACM,MAAM;IAMf;;OAEG;IACM,OAAO;IAOhB,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACM,MAAM;IAuCf;;OAEG;IACM,OAAO;CAIjB"}
@@ -13,6 +13,8 @@ const T = 'plugins.poster';
13
13
  * @beta
14
14
  * @remarks
15
15
  * When the playback is stopped, media control UI is disabled.
16
+ * Note that the poster image, if specified via the player config, will be used to update video element's poster attribute by the
17
+ * HTML5-video-based playback module.
16
18
  *
17
19
  * Configuration options:
18
20
  *
@@ -36,6 +38,7 @@ const T = 'plugins.poster';
36
38
  * ```
37
39
  */
38
40
  export class Poster extends UIContainerPlugin {
41
+ // TODO merge non-poster related functionality into the ClickToPause plugin
39
42
  hasFatalError = false;
40
43
  hasStartedPlaying = false;
41
44
  playRequested = false;
@@ -191,9 +194,6 @@ export class Poster extends UIContainerPlugin {
191
194
  this.container.playback.play();
192
195
  }
193
196
  }
194
- else {
195
- this.container.trigger('container:start');
196
- }
197
197
  return false;
198
198
  }
199
199
  shouldHideOnPlay() {
@@ -33,6 +33,9 @@ export declare class SourceController extends CorePlugin {
33
33
  get supportedVersion(): {
34
34
  min: string;
35
35
  };
36
+ /**
37
+ * @internal
38
+ */
36
39
  constructor(core: ClapprCore);
37
40
  /**
38
41
  * @internal
@@ -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;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,SAAS,CAAQ;IAEzB,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;IAwCnC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,aAAa;IA4BrB,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,SAAS,CAAQ;IAEzB,OAAO,CAAC,IAAI,CAAiB;IAE7B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;gBACS,IAAI,EAAE,UAAU;IAW5B;;OAEG;IACM,UAAU;IAWnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,2BAA2B;IAwCnC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;CACF"}
@@ -85,6 +85,9 @@ export class SourceController extends CorePlugin {
85
85
  get supportedVersion() {
86
86
  return { min: CLAPPR_VERSION };
87
87
  }
88
+ /**
89
+ * @internal
90
+ */
88
91
  constructor(core) {
89
92
  super(core);
90
93
  this.sourcesList = this.core.options.sources;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcorevideo/player",
3
- "version": "2.20.11",
3
+ "version": "2.20.13",
4
4
  "description": "Gcore JavaScript video player",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
package/src/Player.ts CHANGED
@@ -168,7 +168,7 @@ export class Player {
168
168
  const coreOpts = this.buildCoreOptions(playerElement)
169
169
  const { core, container } = Player.getRegisteredPlugins()
170
170
  trace(`${T} init`, {
171
- registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.name),
171
+ registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.prototype.name),
172
172
  })
173
173
  coreOpts.plugins = {
174
174
  core: Object.values(core),
@@ -1,3 +1,31 @@
1
+ import { ErrorOptions } from '@clappr/core'
2
+
3
+ import { PlaybackErrorCode } from '../playback.types.js'
1
4
  import { BasePlayback } from './BasePlayback.js'
2
5
 
3
- export default class HTML5Video extends BasePlayback {}
6
+ export default class HTML5Video extends BasePlayback {
7
+ /**
8
+ * @internal
9
+ */
10
+ override createError(errorData: any, options?: ErrorOptions) {
11
+ const i18n =
12
+ this.i18n ||
13
+ // @ts-ignore
14
+ (this.core && this.core.i18n) ||
15
+ // @ts-ignore
16
+ (this.container && this.container.i18n)
17
+
18
+ if (
19
+ i18n &&
20
+ !errorData.UI &&
21
+ errorData.code === MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED
22
+ ) {
23
+ errorData.UI = {
24
+ title: i18n.t('no_broadcast'),
25
+ message: errorData.message,
26
+ }
27
+ errorData.code = PlaybackErrorCode.MediaSourceUnavailable
28
+ }
29
+ return super.createError(errorData, { ...options, useCodePrefix: false })
30
+ }
31
+ }
@@ -0,0 +1,47 @@
1
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
2
+
3
+ import HTML5Video from '../HTML5Video.js'
4
+ import { PlaybackErrorCode } from '../../playback.types.js'
5
+
6
+ let savedMediaError: any
7
+
8
+ beforeEach(() => {
9
+ savedMediaError = globalThis.MediaError
10
+ if (!globalThis.MediaError) {
11
+ globalThis.MediaError = {
12
+ MEDIA_ERR_ABORTED: 1,
13
+ MEDIA_ERR_NETWORK: 2,
14
+ MEDIA_ERR_DECODE: 3,
15
+ MEDIA_ERR_SRC_NOT_SUPPORTED: 4,
16
+ } as any
17
+ }
18
+ })
19
+
20
+ afterEach(() => {
21
+ globalThis.MediaError = savedMediaError
22
+ })
23
+
24
+ describe('HTML5Video', () => {
25
+ describe('errors', () => {
26
+ describe('when the media element emits MEDIA_ERR_SRC_NOT_SUPPORTED', () => {
27
+ it('should trigger MEDIA_SOURCE_UNAVAILABLE error', () => {
28
+ const i18n = {
29
+ t: vi.fn().mockImplementation((key: string) => key),
30
+ }
31
+ const playerError = {
32
+ createError: vi.fn(),
33
+ }
34
+ const html5Video = new HTML5Video({}, i18n, playerError)
35
+ html5Video.load('https://example.com/video.mp4')
36
+ ;(html5Video.el as any).error = {
37
+ code: MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED,
38
+ message: 'Media source not supported',
39
+ }
40
+ html5Video.el.dispatchEvent(new Event('error', { bubbles: true }))
41
+ expect(playerError.createError).toHaveBeenCalledWith(expect.objectContaining({
42
+ code: PlaybackErrorCode.MediaSourceUnavailable,
43
+ }))
44
+ })
45
+ })
46
+ })
47
+ })