@gcorevideo/player 2.20.12 → 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 (48) hide show
  1. package/dist/core.js +26 -2
  2. package/dist/index.css +1197 -1197
  3. package/dist/index.js +33 -19
  4. package/dist/player.d.ts +8 -10
  5. package/dist/plugins/index.css +1619 -1619
  6. package/dist/plugins/index.js +8 -13
  7. package/docs/api/player.md +1 -1
  8. package/docs/api/player.mediacontrol.md +2 -11
  9. package/docs/api/player.playbackerror.md +2 -2
  10. package/docs/api/player.playbackerror.origin.md +1 -1
  11. package/docs/api/player.playbackerror.scope.md +1 -1
  12. package/docs/api/player.poster.md +1 -1
  13. package/docs/api/player.sourcecontroller.md +2 -33
  14. package/lib/Player.js +1 -1
  15. package/lib/playback/HTML5Video.d.ts +5 -0
  16. package/lib/playback/HTML5Video.d.ts.map +1 -1
  17. package/lib/playback/HTML5Video.js +21 -0
  18. package/lib/playback/hls-playback/HlsPlayback.d.ts +2 -2
  19. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  20. package/lib/playback/hls-playback/HlsPlayback.js +4 -0
  21. package/lib/playback.types.d.ts +2 -2
  22. package/lib/plugins/click-to-pause/ClickToPause.d.ts.map +1 -1
  23. package/lib/plugins/click-to-pause/ClickToPause.js +0 -4
  24. package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
  25. package/lib/plugins/dvr-controls/DvrControls.js +0 -1
  26. package/lib/plugins/media-control/MediaControl.d.ts +1 -8
  27. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  28. package/lib/plugins/media-control/MediaControl.js +2 -9
  29. package/lib/plugins/poster/Poster.d.ts +2 -0
  30. package/lib/plugins/poster/Poster.d.ts.map +1 -1
  31. package/lib/plugins/poster/Poster.js +3 -3
  32. package/lib/plugins/source-controller/SourceController.d.ts +3 -0
  33. package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
  34. package/lib/plugins/source-controller/SourceController.js +3 -0
  35. package/package.json +1 -1
  36. package/src/Player.ts +1 -1
  37. package/src/playback/HTML5Video.ts +29 -1
  38. package/src/playback/__tests__/HTML5Video.test.ts +47 -0
  39. package/src/playback/hls-playback/HlsPlayback.ts +5 -1
  40. package/src/playback.types.ts +2 -2
  41. package/src/plugins/click-to-pause/ClickToPause.ts +0 -5
  42. package/src/plugins/dvr-controls/DvrControls.ts +0 -1
  43. package/src/plugins/media-control/MediaControl.ts +2 -9
  44. package/src/plugins/poster/Poster.ts +4 -3
  45. package/src/plugins/source-controller/SourceController.ts +3 -0
  46. package/temp/player.api.json +6 -40
  47. package/tsconfig.tsbuildinfo +1 -1
  48. package/docs/api/player.sourcecontroller._constructor_.md +0 -50
@@ -33094,17 +33094,10 @@ function orderByOrderPattern(arr, order) {
33094
33094
  return [...ordered, ...rest];
33095
33095
  }
33096
33096
  /**
33097
- * `PLUGIN` that provides a foundation for developing custom media controls UI.
33097
+ * `PLUGIN` that provides basic playback controls UI and a foundation for developing custom UI.
33098
33098
  * @beta
33099
33099
  * @remarks
33100
33100
  * The methods exposed are to be used by the other plugins that extend the media control UI.
33101
- * The plugin registration should be arranged so that MediaControl is initialized before every other `PLUGIN` that depends on it.
33102
- * @example
33103
- * ```ts
33104
- * Player.registerPlugin(MediaControl) // <--- This must go first
33105
- * Player.registerPlugin(LevelSelector) // a media control plugin
33106
- * Player.registerPlugin(NerdStats) // another media control plugin
33107
- * ```
33108
33101
  */
33109
33102
  class MediaControl extends UICorePlugin {
33110
33103
  advertisementPlaying = false;
@@ -34034,7 +34027,6 @@ class MediaControl extends UICorePlugin {
34034
34027
  return super.destroy();
34035
34028
  }
34036
34029
  configure() {
34037
- // this.advertisementPlaying ? this.disable() : this.enable()
34038
34030
  this.trigger(Events$1.MEDIACONTROL_OPTIONS_CHANGE);
34039
34031
  }
34040
34032
  /**
@@ -37257,7 +37249,7 @@ class ClipsPlugin extends UICorePlugin {
37257
37249
 
37258
37250
  const templateHtml$1 = "<ul class=\"context-menu-list\">\n <% if(options) { %>\n <% for (var i = 0; i < options.length; i++) { %>\n <li class=\"context-menu-list-item <%= options[i].class %>\"\n data-<%= options[i].name %>><%= options[i].label %></li>\n <% } %>\n <% } %>\n</ul>\n";
37259
37251
 
37260
- var version$1 = "2.20.12";
37252
+ var version$1 = "2.20.13";
37261
37253
 
37262
37254
  var packages = {
37263
37255
  "node_modules/@clappr/core": {
@@ -39028,6 +39020,8 @@ const T$5 = 'plugins.poster';
39028
39020
  * @beta
39029
39021
  * @remarks
39030
39022
  * When the playback is stopped, media control UI is disabled.
39023
+ * Note that the poster image, if specified via the player config, will be used to update video element's poster attribute by the
39024
+ * HTML5-video-based playback module.
39031
39025
  *
39032
39026
  * Configuration options:
39033
39027
  *
@@ -39051,6 +39045,7 @@ const T$5 = 'plugins.poster';
39051
39045
  * ```
39052
39046
  */
39053
39047
  class Poster extends UIContainerPlugin {
39048
+ // TODO merge non-poster related functionality into the ClickToPause plugin
39054
39049
  hasFatalError = false;
39055
39050
  hasStartedPlaying = false;
39056
39051
  playRequested = false;
@@ -39201,9 +39196,6 @@ class Poster extends UIContainerPlugin {
39201
39196
  this.container.playback.play();
39202
39197
  }
39203
39198
  }
39204
- else {
39205
- this.container.trigger('container:start');
39206
- }
39207
39199
  return false;
39208
39200
  }
39209
39201
  shouldHideOnPlay() {
@@ -39924,6 +39916,9 @@ class SourceController extends CorePlugin {
39924
39916
  get supportedVersion() {
39925
39917
  return { min: CLAPPR_VERSION };
39926
39918
  }
39919
+ /**
39920
+ * @internal
39921
+ */
39927
39922
  constructor(core) {
39928
39923
  super(core);
39929
39924
  this.sourcesList = this.core.options.sources;
@@ -204,7 +204,7 @@ Description
204
204
 
205
205
  </td><td>
206
206
 
207
- **_(BETA)_** `PLUGIN` that provides a foundation for developing custom media controls UI.
207
+ **_(BETA)_** `PLUGIN` that provides basic playback controls UI and a foundation for developing custom UI.
208
208
 
209
209
 
210
210
  </td></tr>
@@ -7,7 +7,7 @@
7
7
  > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
8
  >
9
9
 
10
- `PLUGIN` that provides a foundation for developing custom media controls UI.
10
+ `PLUGIN` that provides basic playback controls UI and a foundation for developing custom UI.
11
11
 
12
12
  **Signature:**
13
13
 
@@ -18,16 +18,7 @@ export declare class MediaControl extends UICorePlugin
18
18
 
19
19
  ## Remarks
20
20
 
21
- The methods exposed are to be used by the other plugins that extend the media control UI. The plugin registration should be arranged so that MediaControl is initialized before every other `PLUGIN` that depends on it.
22
-
23
- ## Example
24
-
25
-
26
- ```ts
27
- Player.registerPlugin(MediaControl) // <--- This must go first
28
- Player.registerPlugin(LevelSelector) // a media control plugin
29
- Player.registerPlugin(NerdStats) // another media control plugin
30
- ```
21
+ The methods exposed are to be used by the other plugins that extend the media control UI.
31
22
 
32
23
  ## Constructors
33
24
 
@@ -126,7 +126,7 @@ string
126
126
 
127
127
  </td><td>
128
128
 
129
- Exact component that originated the error.
129
+ Name of the component that originated the error.
130
130
 
131
131
 
132
132
  </td></tr>
@@ -145,7 +145,7 @@ Exact component that originated the error.
145
145
 
146
146
  </td><td>
147
147
 
148
- Component subsystem of the error origin
148
+ Component subsystem of the error origin, together with the `origin` uniquely identifies the originating component.
149
149
 
150
150
 
151
151
  </td></tr>
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## PlaybackError.origin property
6
6
 
7
- Exact component that originated the error.
7
+ Name of the component that originated the error.
8
8
 
9
9
  **Signature:**
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## PlaybackError.scope property
6
6
 
7
- Component subsystem of the error origin
7
+ Component subsystem of the error origin, together with the `origin` uniquely identifies the originating component.
8
8
 
9
9
  **Signature:**
10
10
 
@@ -18,7 +18,7 @@ export declare class Poster extends UIContainerPlugin
18
18
 
19
19
  ## Remarks
20
20
 
21
- When the playback is stopped, media control UI is disabled.
21
+ When the playback is stopped, media control UI is disabled. Note that the poster image, if specified via the player config, will be used to update video element's poster attribute by the HTML5-video-based playback module.
22
22
 
23
23
  Configuration options:
24
24
 
@@ -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":"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"}
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 +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
  }
@@ -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":"AAOA,OAAO,EAEL,YAAY,EAMZ,IAAI,EACL,MAAM,cAAc,CAAA;AAQrB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAG5C,OAAO,kDAAkD,CAAA;AACzD,OAAO,4CAA4C,CAAA;AAWnD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,YAAY,GACZ,UAAU,GACV,MAAM,GACN,KAAK,GACL,cAAc,GACd,kBAAkB,GAClB,mBAAmB,CAAA;AAEvB;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B;;OAEG;IACH,0BAA0B,+BAA+B;CAC1D;AA6BD;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,wBAAwB,CAAI;IAEpC,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,0BAA0B,CAAsB;IAExD,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,OAAO,CAAC,6BAA6B,CAAuB;IAE5D,OAAO,CAAC,MAAM,CAA6C;IAC3D,OAAO,CAAC,YAAY,CAA6C;IAEjE,OAAO,CAAC,cAAc,CAAM;IAE5B,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,WAAW,CAAQ;IAE3B,OAAO,CAAC,IAAI,CAAM;IAElB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IAEtB,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,QAAQ,CAA8B;IAE9C,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,eAAe,CAAQ;IAE/B,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,oBAAoB,CAA2B;IAEvD,OAAO,CAAC,WAAW,CAA2B;IAE9C,OAAO,CAAC,SAAS,CAA2B;IAE5C,OAAO,CAAC,kBAAkB,CAA2B;IAErD,OAAO,CAAC,SAAS,CAA2B;IAE5C,OAAO,CAAC,iBAAiB,CAA2B;IAEpD,OAAO,CAAC,oBAAoB,CAA2B;IAEvD,OAAO,CAAC,IAAI,CAA2B;IAEvC,OAAO,CAAC,gBAAgB,CAA2B;IAEnD,OAAO,CAAC,eAAe,CAA2B;IAElD,OAAO,CAAC,aAAa,CAA2B;IAEhD,OAAO,CAAC,SAAS,CAA2B;IAE5C,OAAO,CAAC,iBAAiB,CAA2B;IAEpD,OAAO,CAAC,aAAa,CAA2B;IAEhD,OAAO,CAAC,cAAc,CAA2B;IAEjD,OAAO,CAAC,gBAAgB,CAA2B;IAEnD,OAAO,CAAC,gBAAgB,CAA2B;IAEnD,OAAO,CAAC,kBAAkB,CAA2B;IAErD,OAAO,CAAC,mBAAmB,CAA2B;IAEtD,OAAO,CAAC,oBAAoB,CAA2B;IAEvD,OAAO,CAAC,cAAc,CAA2B;IAEjD,OAAO,CAAC,kBAAkB,CAA2B;IAErD,OAAO,CAAC,gBAAgB,CAA2B;IAEnD,OAAO,CAAC,WAAW,CAA2B;IAE9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,KAAK,QAAQ,GAKnB;IAED;;;OAGG;IACH,IAAI,SAAS,QAEZ;IAED;;;OAGG;IACH,IAAI,QAAQ,QAEX;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;MA4BlB;IAED,IAAI,cAAc,WAEjB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAInB;IAED;;OAEG;IACH,IAAI,KAAK,YAER;gBAEW,IAAI,EAAE,IAAI;IAsBtB;;OAEG;IACM,oBAAoB;2BAoYZ,MAAM;;;IA7XvB;;OAEG;IACM,UAAU;IAyCnB,OAAO,CAAC,mBAAmB;IA6D3B;;OAEG;IACM,OAAO;IAQhB;;OAEG;IACM,MAAM;IAUf;;OAEG;IACH,gBAAgB;IAOhB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,cAAc;IA0DtB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,QAAQ,CAQf;IAED,OAAO,CAAC,UAAU,CAgBjB;IAED,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,UAAU;IAIlB;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,UAAQ;IA0BhD,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,wBAAwB;IAuChC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,IAAI;IAkBZ,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,IAAI;IAgCZ,OAAO,CAAC,IAAI;IAmCZ,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,cAAc;IAkDtB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,oBAAoB;IAgD5B;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,GAAG,IAAI;IAoBzD;;;OAGG;IACH,aAAa;IAIb;;;OAGG;IACH,YAAY;IAIZ,cAAc;IAId,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACM,OAAO;IAShB,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACM,MAAM;IAoEf,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,MAAM,CAAC,QAAQ;IAIvB,OAAO,CAAC,MAAM,CAAC,QAAQ;IAcvB;;OAEG;IACH,mBAAmB;IAMnB;;OAEG;IACH,qBAAqB;IAMrB,OAAO,CAAC,6BAA6B;CAOtC"}
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.12",
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
+ })
@@ -504,7 +504,7 @@ export default class HlsPlayback extends BasePlayback {
504
504
  this.trigger(Events.PLAYBACK_READY, this.name)
505
505
  }
506
506
 
507
- _recover(evt: HlsEvents.ERROR, data: HlsErrorData, error: PlaybackError) {
507
+ private _recover(evt: HlsEvents.ERROR, data: HlsErrorData, error: PlaybackError) {
508
508
  assert(this._hls, 'Hls.js instance is not available')
509
509
  if (!this._recoveredDecodingError) {
510
510
  this._recoveredDecodingError = true
@@ -690,6 +690,10 @@ export default class HlsPlayback extends BasePlayback {
690
690
  details: data.details,
691
691
  })
692
692
  error.level = PlayerError.Levels.WARN
693
+ // TODO check
694
+ // if (data.error instanceof MediaError && data.error.code === MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED) {
695
+ // error.code = PlaybackErrorCode.MediaSourceUnavailable
696
+ // }
693
697
  this._recover(evt, data, error)
694
698
  break
695
699
  default:
@@ -109,7 +109,7 @@ export interface PlaybackError {
109
109
  */
110
110
  message: string
111
111
  /**
112
- * Exact component that originated the error.
112
+ * Name of the component that originated the error.
113
113
  * @example
114
114
  * - 'core'
115
115
  * - 'dash'
@@ -117,7 +117,7 @@ export interface PlaybackError {
117
117
  */
118
118
  origin: string
119
119
  /**
120
- * Component subsystem of the error origin
120
+ * Component subsystem of the error origin, together with the `origin` uniquely identifies the originating component.
121
121
  */
122
122
  scope: PlayerComponentType
123
123