@gcorevideo/player 2.24.2 → 2.24.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 (69) hide show
  1. package/assets/big-mute-button/big-mute-button.ejs +2 -2
  2. package/dist/core.js +2 -2
  3. package/dist/index.css +418 -418
  4. package/dist/index.js +135 -112
  5. package/dist/player.d.ts +76 -30
  6. package/docs/api/player.bigmutebutton.md +13 -1
  7. package/docs/api/player.clapprstatssettings.md +51 -4
  8. package/docs/api/player.clapprstatssettings.runeach.md +16 -0
  9. package/docs/api/player.clipspluginsettings.md +1 -1
  10. package/docs/api/player.clipspluginsettings.text.md +1 -1
  11. package/docs/api/player.cmcdconfig.exportids.md +4 -0
  12. package/docs/api/player.cmcdconfig.md +19 -105
  13. package/docs/api/{player.cmcdconfig.version.md → player.cmcdconfigoptions.contentid.md} +5 -3
  14. package/docs/api/player.cmcdconfigoptions.md +79 -0
  15. package/docs/api/{player.cmcdconfigpluginsettings.md → player.cmcdconfigoptions.sessionid.md} +4 -6
  16. package/docs/api/player.extendedevents.md +9 -0
  17. package/docs/api/player.md +37 -31
  18. package/docs/api/player.mediacontrol.getavailableheight.md +24 -0
  19. package/docs/api/player.mediacontrol.md +14 -0
  20. package/docs/api/{player.cmcdconfig.name.md → player.posterpluginsettings.custom.md} +4 -3
  21. package/docs/api/player.posterpluginsettings.md +108 -7
  22. package/docs/api/player.posterpluginsettings.showfornoop.md +16 -0
  23. package/docs/api/player.posterpluginsettings.showonvideoend.md +16 -0
  24. package/docs/api/{player.cmcdconfig.bindevents.md → player.posterpluginsettings.url.md} +4 -7
  25. package/lib/Player.js +1 -1
  26. package/lib/index.embed.d.ts +30 -0
  27. package/lib/index.embed.d.ts.map +1 -0
  28. package/lib/index.embed.js +29 -0
  29. package/lib/plugins/big-mute-button/BigMuteButton.d.ts +18 -13
  30. package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
  31. package/lib/plugins/big-mute-button/BigMuteButton.js +77 -83
  32. package/lib/plugins/clappr-stats/ClapprStats.d.ts +6 -2
  33. package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
  34. package/lib/plugins/click-to-pause/ClickToPause.js +1 -1
  35. package/lib/plugins/clips/Clips.d.ts +1 -1
  36. package/lib/plugins/clips/Clips.d.ts.map +1 -1
  37. package/lib/plugins/clips/Clips.js +2 -1
  38. package/lib/plugins/cmcd-config/CmcdConfig.d.ts +34 -11
  39. package/lib/plugins/cmcd-config/CmcdConfig.d.ts.map +1 -1
  40. package/lib/plugins/cmcd-config/CmcdConfig.js +28 -18
  41. package/lib/plugins/media-control/MediaControl.d.ts +4 -0
  42. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  43. package/lib/plugins/media-control/MediaControl.js +6 -1
  44. package/lib/plugins/poster/Poster.d.ts +7 -3
  45. package/lib/plugins/poster/Poster.d.ts.map +1 -1
  46. package/lib/plugins/source-controller/SourceController.d.ts +1 -0
  47. package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
  48. package/lib/plugins/source-controller/SourceController.js +22 -9
  49. package/lib/testUtils.d.ts +1 -0
  50. package/lib/testUtils.d.ts.map +1 -1
  51. package/lib/testUtils.js +1 -0
  52. package/package.json +1 -1
  53. package/src/Player.ts +1 -1
  54. package/src/index.embed.ts +29 -0
  55. package/src/plugins/big-mute-button/BigMuteButton.ts +84 -108
  56. package/src/plugins/big-mute-button/__tests__/BigMuteButton.test.ts +86 -0
  57. package/src/plugins/big-mute-button/__tests__/__snapshots__/BigMuteButton.test.ts.snap +8 -0
  58. package/src/plugins/clappr-stats/ClapprStats.ts +5 -1
  59. package/src/plugins/click-to-pause/ClickToPause.ts +1 -1
  60. package/src/plugins/clips/Clips.ts +3 -2
  61. package/src/plugins/cmcd-config/CmcdConfig.ts +33 -27
  62. package/src/plugins/media-control/MediaControl.ts +6 -1
  63. package/src/plugins/poster/Poster.ts +6 -2
  64. package/src/plugins/source-controller/SourceController.ts +27 -9
  65. package/src/plugins/source-controller/__tests__/SourceController.test.ts +28 -8
  66. package/src/testUtils.ts +5 -1
  67. package/temp/player.api.json +229 -154
  68. package/tsconfig.tsbuildinfo +1 -1
  69. package/docs/api/player.cmcdconfig.supportedversion.md +0 -14
@@ -1,45 +1,68 @@
1
1
  import { Core, CorePlugin } from '@clappr/core';
2
2
  /**
3
+ * Config options for the {@link CmcdConfig} plugin
3
4
  * @beta
4
5
  */
5
- export type CmcdConfigPluginSettings = {
6
+ export interface CmcdConfigOptions {
6
7
  /**
7
- * Session ID. If ommitted, a random UUID will be generated
8
+ * `sid` value. If ommitted, a random UUID will be generated
8
9
  */
9
- sessionId: string;
10
+ sessionId?: string;
10
11
  /**
11
- * Content ID,
12
+ * `cid` value.
12
13
  * If ommitted, the pathname part of the first source URL will be used
13
14
  */
14
15
  contentId?: string;
15
- };
16
+ }
16
17
  /**
17
- * A `PLUGIN` that configures CMCD for playback
18
+ * A `PLUGIN` that configures {@link https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf | CMCD} for playback
18
19
  * @beta
19
20
  * @remarks
20
- * Configuration options
21
- * `cmcd`: {@link CmcdConfigPluginSettings}
21
+ * Configuration options - {@link CmcdConfigOptions}.
22
+ * @example
23
+ * ```ts
24
+ * import { CmcdConfig } from '@gcorevideo/player'
25
+ * Player.registerPlugin(CmcdConfig)
26
+ *
27
+ * const player = new Player({
28
+ * source: 'https://example.com/video.mp4',
29
+ * cmcd: {
30
+ * sessionId: '1234567890',
31
+ * contentId: 'f572d396fae9206628714fb2ce00f72e94f2258f',
32
+ * },
33
+ * })
34
+ * ```
22
35
  */
23
36
  export declare class CmcdConfig extends CorePlugin {
24
37
  private sid;
25
38
  private cid;
26
39
  /**
27
- * @inheritdocs
40
+ * @internal
28
41
  */
29
42
  get name(): string;
43
+ /**
44
+ * @internal
45
+ */
30
46
  get version(): string;
47
+ /**
48
+ * @internal
49
+ */
31
50
  get supportedVersion(): string;
32
51
  constructor(core: Core);
33
52
  /**
34
- * @inheritdocs
53
+ * @internal
35
54
  */
36
55
  bindEvents(): void;
56
+ /**
57
+ * Returns the current `sid` and `cid` values.
58
+ * Useful when the auto-generated values need to be known.
59
+ * @returns `sid` and `cid` values
60
+ */
37
61
  exportIds(): {
38
62
  sid: string;
39
63
  cid: string;
40
64
  };
41
65
  private updateSettings;
42
- private updateHlsjsSettings;
43
66
  private generateContentId;
44
67
  }
45
68
  //# sourceMappingURL=CmcdConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CmcdConfig.d.ts","sourceRoot":"","sources":["../../../src/plugins/cmcd-config/CmcdConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAE,UAAU,EAAU,MAAM,cAAc,CAAA;AA6BrE;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAID;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,OAAO,CAAC,GAAG,CAAQ;IAEnB,OAAO,CAAC,GAAG,CAAK;IAEhB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,IAAI,OAAO,WAEV;IAED,IAAI,gBAAgB,WAEnB;gBAEW,IAAI,EAAE,IAAI;IAMtB;;OAEG;IACM,UAAU;IAMnB,SAAS,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;YAO3B,cAAc;IA8B5B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,iBAAiB;CAK1B"}
1
+ {"version":3,"file":"CmcdConfig.d.ts","sourceRoot":"","sources":["../../../src/plugins/cmcd-config/CmcdConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAE,UAAU,EAAU,MAAM,cAAc,CAAA;AA4BrE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,OAAO,CAAC,GAAG,CAAQ;IAEnB,OAAO,CAAC,GAAG,CAAK;IAEhB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,OAAO,WAEV;IAED;;OAEG;IACH,IAAI,gBAAgB,WAEnB;gBAEW,IAAI,EAAE,IAAI;IAMtB;;OAEG;IACM,UAAU;IAMnB;;;;OAIG;IACH,SAAS,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;YAO3B,cAAc;IA8B5B,OAAO,CAAC,iBAAiB;CAK1B"}
@@ -24,24 +24,42 @@ const CMCD_KEYS = [
24
24
  ];
25
25
  // const T = 'plugins.cmcd'
26
26
  /**
27
- * A `PLUGIN` that configures CMCD for playback
27
+ * A `PLUGIN` that configures {@link https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf | CMCD} for playback
28
28
  * @beta
29
29
  * @remarks
30
- * Configuration options
31
- * `cmcd`: {@link CmcdConfigPluginSettings}
30
+ * Configuration options - {@link CmcdConfigOptions}.
31
+ * @example
32
+ * ```ts
33
+ * import { CmcdConfig } from '@gcorevideo/player'
34
+ * Player.registerPlugin(CmcdConfig)
35
+ *
36
+ * const player = new Player({
37
+ * source: 'https://example.com/video.mp4',
38
+ * cmcd: {
39
+ * sessionId: '1234567890',
40
+ * contentId: 'f572d396fae9206628714fb2ce00f72e94f2258f',
41
+ * },
42
+ * })
43
+ * ```
32
44
  */
33
45
  export class CmcdConfig extends CorePlugin {
34
46
  sid;
35
47
  cid = '';
36
48
  /**
37
- * @inheritdocs
49
+ * @internal
38
50
  */
39
51
  get name() {
40
52
  return 'cmcd';
41
53
  }
54
+ /**
55
+ * @internal
56
+ */
42
57
  get version() {
43
58
  return '0.1.0';
44
59
  }
60
+ /**
61
+ * @internal
62
+ */
45
63
  get supportedVersion() {
46
64
  return CLAPPR_VERSION;
47
65
  }
@@ -51,11 +69,16 @@ export class CmcdConfig extends CorePlugin {
51
69
  this.cid = this.options.cmcd?.contentId ?? this.generateContentId();
52
70
  }
53
71
  /**
54
- * @inheritdocs
72
+ * @internal
55
73
  */
56
74
  bindEvents() {
57
75
  this.listenTo(this.core, Events.CORE_CONTAINERS_CREATED, () => this.updateSettings(this.core.containers[0]));
58
76
  }
77
+ /**
78
+ * Returns the current `sid` and `cid` values.
79
+ * Useful when the auto-generated values need to be known.
80
+ * @returns `sid` and `cid` values
81
+ */
59
82
  exportIds() {
60
83
  return {
61
84
  sid: this.sid,
@@ -91,19 +114,6 @@ export class CmcdConfig extends CorePlugin {
91
114
  break;
92
115
  }
93
116
  }
94
- updateHlsjsSettings(options, { cid, sid }) {
95
- $.extend(true, options, {
96
- playback: {
97
- hlsjsConfig: {
98
- cmcd: {
99
- includeKeys: CMCD_KEYS,
100
- sessionId: sid,
101
- contentId: cid,
102
- },
103
- },
104
- },
105
- });
106
- }
107
117
  generateContentId() {
108
118
  return new URL(this.core.options.source ?? this.core.options.sources[0].source).pathname.slice(0, 64);
109
119
  }
@@ -32,6 +32,10 @@ export type MediaControlSettings = {
32
32
  default: MediaControlLayerElement[];
33
33
  seekEnabled: boolean;
34
34
  };
35
+ /**
36
+ * Extended events for the {@link MediaControl} plugin
37
+ * @beta
38
+ */
35
39
  export declare enum ExtendedEvents {
36
40
  MEDIACONTROL_VOLUME = "mediacontrol:volume",
37
41
  MEDIACONTROL_MENU_COLLAPSE = "mediacontrol:menu:collapse"
@@ -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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"}
@@ -58,6 +58,10 @@ const LEFT_ORDER = [
58
58
  'duration',
59
59
  'dvr',
60
60
  ];
61
+ /**
62
+ * Extended events for the {@link MediaControl} plugin
63
+ * @beta
64
+ */
61
65
  export var ExtendedEvents;
62
66
  (function (ExtendedEvents) {
63
67
  ExtendedEvents["MEDIACONTROL_VOLUME"] = "mediacontrol:volume";
@@ -338,6 +342,7 @@ export class MediaControl extends UICorePlugin {
338
342
  onVolumeChanged() {
339
343
  this.updateVolumeUI();
340
344
  }
345
+ // TODO check if CONTAINER_SETTINGSUPDATE handler is sufficient
341
346
  onLoadedMetadata() {
342
347
  const video = this.core.activePlayback?.el;
343
348
  // video.webkitSupportsFullscreen is deprecated but iOS appears to only use this
@@ -478,7 +483,7 @@ export class MediaControl extends UICorePlugin {
478
483
  return false;
479
484
  }
480
485
  togglePlayStop() {
481
- this.container.isPlaying() ? this.container.stop() : this.container.play();
486
+ this.container.isPlaying() ? this.container.stop({ ui: true }) : this.container.play();
482
487
  }
483
488
  startSeekDrag(event) {
484
489
  if (!this.settings.seekEnabled) {
@@ -1,6 +1,10 @@
1
1
  import { UIContainerPlugin } from '@clappr/core';
2
2
  import '../../../assets/poster/poster.scss';
3
- export type PosterPluginSettings = {
3
+ /**
4
+ * Config options for the {@link Poster} plugin
5
+ * @beta
6
+ */
7
+ export interface PosterPluginSettings {
4
8
  /**
5
9
  * Custom CSS background
6
10
  */
@@ -14,10 +18,10 @@ export type PosterPluginSettings = {
14
18
  */
15
19
  url?: string;
16
20
  /**
17
- * Whether to show the poster after playback has ended @default true
21
+ * Whether to show the poster after playback has ended, by default `true`
18
22
  */
19
23
  showOnVideoEnd?: boolean;
20
- };
24
+ }
21
25
  /**
22
26
  * `PLUGIN` that displays a poster image in the background and a big play button on top when playback is stopped
23
27
  * @beta
@@ -1 +1 @@
1
- {"version":3,"file":"Poster.d.ts","sourceRoot":"","sources":["../../../src/plugins/poster/Poster.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,iBAAiB,EAElB,MAAM,cAAc,CAAA;AAMrB,OAAO,oCAAoC,CAAA;AAK3C,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,MAAO,SAAQ,iBAAiB;IAG3C,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,WAAW,CAA2B;IAE9C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD,OAAO,KAAK,YAAY,GASvB;IAED,OAAO,KAAK,MAAM,GAEjB;IAED;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACM,UAAU;IAuBnB;;OAEG;IACM,MAAM;IAOf;;OAEG;IACM,OAAO;IAOhB,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IAgCf;;OAEG;IACM,OAAO;CAIjB"}
1
+ {"version":3,"file":"Poster.d.ts","sourceRoot":"","sources":["../../../src/plugins/poster/Poster.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,iBAAiB,EAElB,MAAM,cAAc,CAAA;AAMrB,OAAO,oCAAoC,CAAA;AAK3C;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,MAAO,SAAQ,iBAAiB;IAG3C,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,WAAW,CAA2B;IAE9C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD,OAAO,KAAK,YAAY,GASvB;IAED,OAAO,KAAK,MAAM,GAEjB;IAED;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACM,UAAU;IAuBnB;;OAEG;IACM,MAAM;IAOf;;OAEG;IACM,OAAO;IAOhB,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IAgCf;;OAEG;IACM,OAAO;CAIjB"}
@@ -57,6 +57,7 @@ export declare class SourceController extends CorePlugin {
57
57
  private currentSourceIndex;
58
58
  private sourcesDelay;
59
59
  private active;
60
+ private autoPlay;
60
61
  private switching;
61
62
  private sync;
62
63
  /**
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAwC9C,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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAwC9C,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,kBAAkB,CAAI;IAE9B,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,QAAQ,CAAQ;IAExB,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;IAqDnC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;CACF"}
@@ -1,4 +1,4 @@
1
- import { Events as ClapprEvents, CorePlugin, } from '@clappr/core';
1
+ import { Events as Events, CorePlugin, } from '@clappr/core';
2
2
  import { PlaybackErrorCode } from '../../playback.types.js';
3
3
  import { trace } from '@gcorevideo/utils';
4
4
  import { SpinnerEvents } from '../spinner-three-bounce/SpinnerThreeBounce.js';
@@ -108,6 +108,7 @@ export class SourceController extends CorePlugin {
108
108
  currentSourceIndex = 0;
109
109
  sourcesDelay = {};
110
110
  active = false;
111
+ autoPlay = false;
111
112
  switching = false;
112
113
  sync = noSync;
113
114
  /**
@@ -141,8 +142,8 @@ export class SourceController extends CorePlugin {
141
142
  */
142
143
  bindEvents() {
143
144
  super.bindEvents();
144
- this.listenTo(this.core, ClapprEvents.CORE_READY, this.onCoreReady);
145
- this.listenTo(this.core, ClapprEvents.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
145
+ this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
146
+ this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
146
147
  }
147
148
  onCoreReady() {
148
149
  trace(`${T} onCoreReady`);
@@ -169,7 +170,7 @@ export class SourceController extends CorePlugin {
169
170
  }
170
171
  }
171
172
  bindContainerEventListeners() {
172
- this.core.activePlayback.on(ClapprEvents.PLAYBACK_ERROR, (error) => {
173
+ this.core.activePlayback.on(Events.PLAYBACK_ERROR, (error) => {
173
174
  trace(`${T} on PLAYBACK_ERROR`, {
174
175
  error: {
175
176
  code: error?.code,
@@ -183,6 +184,9 @@ export class SourceController extends CorePlugin {
183
184
  if (this.switching) {
184
185
  return;
185
186
  }
187
+ // The autoPlay metadata flag is set between a call to play and the actual playback start event, after which the flag is cleared.
188
+ this.autoPlay =
189
+ !!this.core.activeContainer.actionsMetadata.playEvent?.autoPlay;
186
190
  switch (error.code) {
187
191
  case PlaybackErrorCode.MediaSourceUnavailable:
188
192
  this.core.activeContainer?.getPlugin('poster')?.disable();
@@ -192,7 +196,7 @@ export class SourceController extends CorePlugin {
192
196
  break;
193
197
  }
194
198
  });
195
- this.core.activePlayback.on(ClapprEvents.PLAYBACK_PLAY, () => {
199
+ this.core.activePlayback.on(Events.PLAYBACK_PLAY, () => {
196
200
  trace(`${T} on PLAYBACK_PLAY`, {
197
201
  currentSource: this.sourcesList[this.currentSourceIndex],
198
202
  retrying: this.active,
@@ -203,6 +207,12 @@ export class SourceController extends CorePlugin {
203
207
  this.core.activeContainer?.getPlugin('spinner')?.hide();
204
208
  }
205
209
  });
210
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAY, (_, { autoPlay }) => {
211
+ trace(`${T} onContainerPlay`, {
212
+ autoPlay,
213
+ });
214
+ this.autoPlay = !!autoPlay;
215
+ });
206
216
  }
207
217
  reset() {
208
218
  this.active = false;
@@ -220,17 +230,20 @@ export class SourceController extends CorePlugin {
220
230
  trace(`${T} retryPlayback syncing...`, {
221
231
  nextSource,
222
232
  });
223
- const rnd = RETRY_DELAY_BLUR * Math.random();
233
+ const rnd = Math.round(RETRY_DELAY_BLUR * Math.random());
224
234
  this.sync(() => {
225
- trace(`${T} retryPlayback loading...`);
226
235
  this.switching = false;
227
236
  this.core.load(nextSource.source, nextSource.mimeType);
228
237
  trace(`${T} retryPlayback loaded`, {
229
238
  nextSource,
230
239
  });
231
240
  setTimeout(() => {
232
- this.core.activePlayback.play();
233
- trace(`${T} retryPlayback playing`);
241
+ trace(`${T} retryPlayback playing`, {
242
+ autoPlay: this.autoPlay,
243
+ });
244
+ this.core.activeContainer.play({
245
+ autoPlay: this.autoPlay,
246
+ });
234
247
  }, rnd);
235
248
  });
236
249
  });
@@ -66,6 +66,7 @@ export declare function createMockPlayback(name?: string, options?: Record<strin
66
66
  trigger: <T extends string | symbol>(event: T, ...args: any[]) => boolean;
67
67
  };
68
68
  export declare function createMockContainer(options?: Record<string, unknown>, playback?: any): Events<string | symbol, any> & {
69
+ actionsMetadata: {};
69
70
  el: any;
70
71
  playback: any;
71
72
  options: {
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,MAAM,MAAM,eAAe,CAAA;AAGlC,wBAAgB,cAAc,CAC5B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,SAAS,GAAE,GAAkC;;;;;;;;;;;;;;;;;EAsB9C;AAED,wBAAgB,gBAAgB;;;EAK/B;AAED,wBAAgB,mBAAmB;;;;;;EAKlC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAS,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCtF;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,QAAQ,GAAE,GAAgD;;;;;;;;;;;;;;;;;;;;;;;;EA6B3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,gBAmB/C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,OAe7C"}
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,MAAM,MAAM,eAAe,CAAA;AAGlC,wBAAgB,cAAc,CAC5B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,SAAS,GAAE,GAAkC;;;;;;;;;;;;;;;;;EAsB9C;AAED,wBAAgB,gBAAgB;;;EAK/B;AAED,wBAAgB,mBAAmB;;;;;;EAKlC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,SAAS,EACb,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCtC;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,QAAQ,GAAE,GAAgD;;;;;;;;;;;;;;;;;;;;;;;;;EA8B3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,gBAmB/C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,OAe7C"}
package/lib/testUtils.js CHANGED
@@ -76,6 +76,7 @@ export function createMockContainer(options = {}, playback = createMockPlayback(
76
76
  const el = playback.el;
77
77
  const emitter = new Events();
78
78
  return Object.assign(emitter, {
79
+ actionsMetadata: {},
79
80
  el,
80
81
  playback,
81
82
  options: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcorevideo/player",
3
- "version": "2.24.2",
3
+ "version": "2.24.5",
4
4
  "description": "Gcore JavaScript video player",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
package/src/Player.ts CHANGED
@@ -52,7 +52,7 @@ export type PlayerEventHandler<E extends PlayerEvent> = (
52
52
  ...args: PlayerEventParams<E>
53
53
  ) => void
54
54
 
55
- const T = 'GPlayer'
55
+ const T = 'gplayer'
56
56
 
57
57
  const DEFAULT_OPTIONS: PlayerConfig = {
58
58
  autoPlay: false,
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Video player for the Gcore streaming platform
3
+ *
4
+ * @remarks
5
+ * This package provides a video player for the Gcore streaming platform.
6
+ * It is built on top of the {@link https://github.com/clappr/clappr | Clappr} library and provides a framework for building custom integrations.
7
+ * Start with {@link Player} for more information.
8
+ *
9
+ * Various plugins (marked with `PLUGIN` keyword) are available to extend the core functionality with additional features.
10
+ * @example
11
+ * ```ts
12
+ * import { Player, MediaControl, ErrorScreen } from '@gcorevideo/player'
13
+ *
14
+ * Player.registerPlugin(MediaControl)
15
+ * Player.registerPlugin(ErrorScreen)
16
+ *
17
+ * const player = new Player({
18
+ * autoPlay: true,
19
+ * mute: true,
20
+ * sources: [{ source: 'https://example.com/a.mpd', mimeType: 'application/dash+xml' }],
21
+ * })
22
+ *
23
+ * player.attachTo(document.getElementById('container'))
24
+ * ```
25
+ *
26
+ * @packageDocumentation
27
+ */
28
+ export * from './index.core.js'
29
+ export * from './index.plugins.js'