@gcorevideo/player 2.25.8 → 2.25.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -42124,9 +42124,9 @@ class HlsPlayback extends BasePlayback {
42124
42124
  this._hls.on(Hls.Events.FRAG_LOADED, (evt, data) => this._onFragmentLoaded(evt, data));
42125
42125
  this._hls.on(Hls.Events.FRAG_PARSING_METADATA, (evt, data) => this._onFragmentParsingMetadata(evt, data));
42126
42126
  this._hls.on(Hls.Events.ERROR, (evt, data) => this._onHLSJSError(evt, data));
42127
- // this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, (evt, data) => this._onSubtitleLoaded(evt, data));
42128
- this._hls.on(Hls.Events.SUBTITLE_TRACK_LOADED, () => this._onSubtitleLoaded());
42129
- this._hls.on(Hls.Events.SUBTITLE_TRACKS_UPDATED, () => (this._ccTracksUpdated = true));
42127
+ // this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, () =>
42128
+ // this._onSubtitleLoaded(),
42129
+ // )
42130
42130
  this._hls.on(Events.AUDIO_TRACKS_UPDATED, (evt, data) => this._onAudioTracksUpdated(evt, data));
42131
42131
  this._hls.on(Events.AUDIO_TRACK_SWITCHED, (evt, data) => this._onAudioTrackSwitched(evt, data));
42132
42132
  this.bindCustomListeners();
@@ -42456,11 +42456,13 @@ class HlsPlayback extends BasePlayback {
42456
42456
  this._playbackType = (data.details.live ? Playback.LIVE : Playback.VOD);
42457
42457
  this._onLevelUpdated(evt, data);
42458
42458
  // Live stream subtitle tracks detection hack (may not immediately available)
42459
- if (this._ccTracksUpdated &&
42460
- this._playbackType === Playback.LIVE &&
42461
- this.hasClosedCaptionsTracks) {
42462
- this._onSubtitleLoaded();
42463
- }
42459
+ // if (
42460
+ // this._ccTracksUpdated &&
42461
+ // this._playbackType === Playback.LIVE &&
42462
+ // this.hasClosedCaptionsTracks
42463
+ // ) {
42464
+ // this._onSubtitleLoaded()
42465
+ // }
42464
42466
  if (prevPlaybackType !== this._playbackType) {
42465
42467
  this._updateSettings();
42466
42468
  }
@@ -42613,16 +42615,18 @@ class HlsPlayback extends BasePlayback {
42613
42615
  _onFragmentLoaded(evt, data) {
42614
42616
  this.trigger(Events$1.PLAYBACK_FRAGMENT_LOADED, data);
42615
42617
  }
42616
- _onSubtitleLoaded() {
42617
- // This event may be triggered multiple times
42618
- // Setup CC only once (disable CC by default)
42619
- if (!this._ccIsSetup) {
42620
- this.trigger(Events$1.PLAYBACK_SUBTITLE_AVAILABLE);
42621
- const trackId = this._playbackType === Playback.LIVE ? -1 : this.closedCaptionsTrackId;
42622
- this.closedCaptionsTrackId = trackId;
42623
- this._ccIsSetup = true;
42624
- }
42625
- }
42618
+ // _onSubtitleLoaded() {
42619
+ // trace(`${T} _onSubtitleLoaded`)
42620
+ // // This event may be triggered multiple times
42621
+ // // Setup CC only once (disable CC by default)
42622
+ // if (!this._ccIsSetup) {
42623
+ // this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)
42624
+ // const trackId =
42625
+ // this._playbackType === Playback.LIVE ? -1 : this.closedCaptionsTrackId
42626
+ // this.closedCaptionsTrackId = trackId
42627
+ // this._ccIsSetup = true
42628
+ // }
42629
+ // }
42626
42630
  _onLevelSwitch(evt, data) {
42627
42631
  if (!this.levels.length) {
42628
42632
  this._fillLevels();
@@ -43314,7 +43318,7 @@ class Player {
43314
43318
  }
43315
43319
  }
43316
43320
 
43317
- var version$1 = "2.25.8";
43321
+ var version$1 = "2.25.10";
43318
43322
 
43319
43323
  var packages = {
43320
43324
  "node_modules/@clappr/core": {
@@ -51652,6 +51656,14 @@ const T$3 = 'plugins.cc';
51652
51656
  * - {@link MediaControl}
51653
51657
  *
51654
51658
  * Configuration options - {@link ClosedCaptionsPluginSettings}
51659
+ *
51660
+ * Known issues:
51661
+ *
51662
+ * 1. When media source changes, the subtitles tracks aren't reloaded. Possible solution: use `playback.recycleVideo = false`
51663
+ * {@link PlayerConfig | main config option}, which will force new video element creation every time media source changes.
51664
+ * However, this may lead to other issues, such as autoplay not working (after media source has been changed).
51665
+ * {@link https://github.com/video-dev/hls.js/issues/2198 | related discussion}
51666
+ *
51655
51667
  * @example
51656
51668
  * ```ts
51657
51669
  * import { ClosedCaptions } from '@gcorevideo/player'
@@ -51720,7 +51732,6 @@ class ClosedCaptions extends UICorePlugin {
51720
51732
  */
51721
51733
  bindEvents() {
51722
51734
  this.listenTo(this.core, Events$1.CORE_READY, this.onCoreReady);
51723
- this.listenTo(this.core, Events$1.CORE_RESIZE, this.playerResize);
51724
51735
  this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged);
51725
51736
  }
51726
51737
  onCoreReady() {
@@ -51737,7 +51748,8 @@ class ClosedCaptions extends UICorePlugin {
51737
51748
  });
51738
51749
  }
51739
51750
  onContainerChanged() {
51740
- this.listenTo(this.core.activeContainer, Events$1.CONTAINER_FULLSCREEN, this.playerResize);
51751
+ this.listenTo(this.core.activeContainer, Events$1.CONTAINER_FULLSCREEN, this.onContainerResize);
51752
+ this.listenTo(this.core.activeContainer, Events$1.CONTAINER_RESIZE, this.onContainerResize);
51741
51753
  this.listenTo(this.core.activeContainer, 'container:advertisement:start', this.onStartAd);
51742
51754
  this.listenTo(this.core.activePlayback, Events$1.PLAYBACK_SUBTITLE_AVAILABLE, this.onSubtitleAvailable);
51743
51755
  this.listenTo(this.core.activePlayback, Events$1.PLAYBACK_SUBTITLE_CHANGED, this.onSubtitleChanged);
@@ -51760,7 +51772,9 @@ class ClosedCaptions extends UICorePlugin {
51760
51772
  });
51761
51773
  }
51762
51774
  onSubtitleAvailable() {
51763
- trace(`${T$3} onSubtitleAvailable`);
51775
+ trace(`${T$3} onSubtitleAvailable`, {
51776
+ tracks: this.core.activePlayback.closedCaptionsTracks.length,
51777
+ });
51764
51778
  this.applyTracks();
51765
51779
  this.mount();
51766
51780
  }
@@ -51814,8 +51828,7 @@ class ClosedCaptions extends UICorePlugin {
51814
51828
  this.show();
51815
51829
  this.stopListening(this.core.activeContainer, 'container:advertisement:finish', this.onFinishAd);
51816
51830
  }
51817
- playerResize() {
51818
- trace(`${T$3} playerResize`);
51831
+ onContainerResize() {
51819
51832
  const shouldShow = this.core.activeContainer &&
51820
51833
  isFullscreen(this.core.activeContainer.el) &&
51821
51834
  this.track &&
@@ -1 +1 @@
1
- {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"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"}
@@ -97,7 +97,6 @@ export default class HlsPlayback extends BasePlayback {
97
97
  private _onLevelUpdated;
98
98
  _onFragmentChanged(evt: HlsEvents.FRAG_CHANGED, data: FragChangedData): void;
99
99
  _onFragmentLoaded(evt: HlsEvents.FRAG_LOADED, data: FragLoadedData): void;
100
- _onSubtitleLoaded(): void;
101
100
  _onLevelSwitch(evt: HlsEvents.LEVEL_SWITCHING, data: LevelSwitchingData): void;
102
101
  _onLevelSwitched(evt: HlsEvents.LEVEL_SWITCHED, data: {
103
102
  level: number;
@@ -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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"}
@@ -288,9 +288,9 @@ export default class HlsPlayback extends BasePlayback {
288
288
  this._hls.on(HLSJS.Events.FRAG_LOADED, (evt, data) => this._onFragmentLoaded(evt, data));
289
289
  this._hls.on(HLSJS.Events.FRAG_PARSING_METADATA, (evt, data) => this._onFragmentParsingMetadata(evt, data));
290
290
  this._hls.on(HLSJS.Events.ERROR, (evt, data) => this._onHLSJSError(evt, data));
291
- // this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, (evt, data) => this._onSubtitleLoaded(evt, data));
292
- this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, () => this._onSubtitleLoaded());
293
- this._hls.on(HLSJS.Events.SUBTITLE_TRACKS_UPDATED, () => (this._ccTracksUpdated = true));
291
+ // this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, () =>
292
+ // this._onSubtitleLoaded(),
293
+ // )
294
294
  this._hls.on(HlsEvents.AUDIO_TRACKS_UPDATED, (evt, data) => this._onAudioTracksUpdated(evt, data));
295
295
  this._hls.on(HlsEvents.AUDIO_TRACK_SWITCHED, (evt, data) => this._onAudioTrackSwitched(evt, data));
296
296
  this.bindCustomListeners();
@@ -621,11 +621,13 @@ export default class HlsPlayback extends BasePlayback {
621
621
  this._playbackType = (data.details.live ? Playback.LIVE : Playback.VOD);
622
622
  this._onLevelUpdated(evt, data);
623
623
  // Live stream subtitle tracks detection hack (may not immediately available)
624
- if (this._ccTracksUpdated &&
625
- this._playbackType === Playback.LIVE &&
626
- this.hasClosedCaptionsTracks) {
627
- this._onSubtitleLoaded();
628
- }
624
+ // if (
625
+ // this._ccTracksUpdated &&
626
+ // this._playbackType === Playback.LIVE &&
627
+ // this.hasClosedCaptionsTracks
628
+ // ) {
629
+ // this._onSubtitleLoaded()
630
+ // }
629
631
  if (prevPlaybackType !== this._playbackType) {
630
632
  this._updateSettings();
631
633
  }
@@ -778,16 +780,18 @@ export default class HlsPlayback extends BasePlayback {
778
780
  _onFragmentLoaded(evt, data) {
779
781
  this.trigger(Events.PLAYBACK_FRAGMENT_LOADED, data);
780
782
  }
781
- _onSubtitleLoaded() {
782
- // This event may be triggered multiple times
783
- // Setup CC only once (disable CC by default)
784
- if (!this._ccIsSetup) {
785
- this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE);
786
- const trackId = this._playbackType === Playback.LIVE ? -1 : this.closedCaptionsTrackId;
787
- this.closedCaptionsTrackId = trackId;
788
- this._ccIsSetup = true;
789
- }
790
- }
783
+ // _onSubtitleLoaded() {
784
+ // trace(`${T} _onSubtitleLoaded`)
785
+ // // This event may be triggered multiple times
786
+ // // Setup CC only once (disable CC by default)
787
+ // if (!this._ccIsSetup) {
788
+ // this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)
789
+ // const trackId =
790
+ // this._playbackType === Playback.LIVE ? -1 : this.closedCaptionsTrackId
791
+ // this.closedCaptionsTrackId = trackId
792
+ // this._ccIsSetup = true
793
+ // }
794
+ // }
791
795
  _onLevelSwitch(evt, data) {
792
796
  if (!this.levels.length) {
793
797
  this._fillLevels();
@@ -23,6 +23,14 @@ export type ClosedCaptionsPluginSettings = {
23
23
  * - {@link MediaControl}
24
24
  *
25
25
  * Configuration options - {@link ClosedCaptionsPluginSettings}
26
+ *
27
+ * Known issues:
28
+ *
29
+ * 1. When media source changes, the subtitles tracks aren't reloaded. Possible solution: use `playback.recycleVideo = false`
30
+ * {@link PlayerConfig | main config option}, which will force new video element creation every time media source changes.
31
+ * However, this may lead to other issues, such as autoplay not working (after media source has been changed).
32
+ * {@link https://github.com/video-dev/hls.js/issues/2198 | related discussion}
33
+ *
26
34
  * @example
27
35
  * ```ts
28
36
  * import { ClosedCaptions } from '@gcorevideo/player'
@@ -85,7 +93,7 @@ export declare class ClosedCaptions extends UICorePlugin {
85
93
  private applyTracks;
86
94
  private onStartAd;
87
95
  private onFinishAd;
88
- private playerResize;
96
+ private onContainerResize;
89
97
  /**
90
98
  * Hides the subtitles menu and the subtitles.
91
99
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ClosedCaptions.d.ts","sourceRoot":"","sources":["../../../src/plugins/subtitles/ClosedCaptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAwB,MAAM,cAAc,CAAA;AAOzE,OAAO,sCAAsC,CAAA;AAgB7C;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,KAAK,CAA6B;IAE1C,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,KAAK,CAA2B;IAExC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEhE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAE3D;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAED;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACH,IAAI;IAcJ;;OAEG;IACH,IAAI;IAiBJ,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IA4Bf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,KAAK;CAMd"}
1
+ {"version":3,"file":"ClosedCaptions.d.ts","sourceRoot":"","sources":["../../../src/plugins/subtitles/ClosedCaptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAwB,MAAM,cAAc,CAAA;AAOzE,OAAO,sCAAsC,CAAA;AAgB7C;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,KAAK,CAA6B;IAE1C,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,KAAK,CAA2B;IAExC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEhE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAE3D;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,kBAAkB;IAgD1B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,IAAI;IAcJ;;OAEG;IACH,IAAI;IAiBJ,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IA4Bf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,KAAK;CAMd"}
@@ -25,6 +25,14 @@ const T = 'plugins.cc';
25
25
  * - {@link MediaControl}
26
26
  *
27
27
  * Configuration options - {@link ClosedCaptionsPluginSettings}
28
+ *
29
+ * Known issues:
30
+ *
31
+ * 1. When media source changes, the subtitles tracks aren't reloaded. Possible solution: use `playback.recycleVideo = false`
32
+ * {@link PlayerConfig | main config option}, which will force new video element creation every time media source changes.
33
+ * However, this may lead to other issues, such as autoplay not working (after media source has been changed).
34
+ * {@link https://github.com/video-dev/hls.js/issues/2198 | related discussion}
35
+ *
28
36
  * @example
29
37
  * ```ts
30
38
  * import { ClosedCaptions } from '@gcorevideo/player'
@@ -93,7 +101,6 @@ export class ClosedCaptions extends UICorePlugin {
93
101
  */
94
102
  bindEvents() {
95
103
  this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
96
- this.listenTo(this.core, Events.CORE_RESIZE, this.playerResize);
97
104
  this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged);
98
105
  }
99
106
  onCoreReady() {
@@ -110,7 +117,8 @@ export class ClosedCaptions extends UICorePlugin {
110
117
  });
111
118
  }
112
119
  onContainerChanged() {
113
- this.listenTo(this.core.activeContainer, Events.CONTAINER_FULLSCREEN, this.playerResize);
120
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_FULLSCREEN, this.onContainerResize);
121
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_RESIZE, this.onContainerResize);
114
122
  this.listenTo(this.core.activeContainer, 'container:advertisement:start', this.onStartAd);
115
123
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.onSubtitleAvailable);
116
124
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_SUBTITLE_CHANGED, this.onSubtitleChanged);
@@ -133,7 +141,9 @@ export class ClosedCaptions extends UICorePlugin {
133
141
  });
134
142
  }
135
143
  onSubtitleAvailable() {
136
- trace(`${T} onSubtitleAvailable`);
144
+ trace(`${T} onSubtitleAvailable`, {
145
+ tracks: this.core.activePlayback.closedCaptionsTracks.length,
146
+ });
137
147
  this.applyTracks();
138
148
  this.mount();
139
149
  }
@@ -187,8 +197,7 @@ export class ClosedCaptions extends UICorePlugin {
187
197
  this.show();
188
198
  this.stopListening(this.core.activeContainer, 'container:advertisement:finish', this.onFinishAd);
189
199
  }
190
- playerResize() {
191
- trace(`${T} playerResize`);
200
+ onContainerResize() {
192
201
  const shouldShow = this.core.activeContainer &&
193
202
  isFullscreen(this.core.activeContainer.el) &&
194
203
  this.track &&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcorevideo/player",
3
- "version": "2.25.8",
3
+ "version": "2.25.10",
4
4
  "description": "Gcore JavaScript video player",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
package/src/Player.ts CHANGED
@@ -167,7 +167,6 @@ export class Player {
167
167
  if (this.config.debug === 'all' || this.config.debug === 'clappr') {
168
168
  Log.setLevel(0)
169
169
  }
170
-
171
170
  const coreOpts = this.buildCoreOptions(playerElement)
172
171
  const { core, container } = Player.getRegisteredPlugins()
173
172
  trace(`${T} init`, {
@@ -450,14 +450,9 @@ export default class HlsPlayback extends BasePlayback {
450
450
  this._hls.on(HLSJS.Events.ERROR, (evt, data) =>
451
451
  this._onHLSJSError(evt, data),
452
452
  )
453
- // this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, (evt, data) => this._onSubtitleLoaded(evt, data));
454
- this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, () =>
455
- this._onSubtitleLoaded(),
456
- )
457
- this._hls.on(
458
- HLSJS.Events.SUBTITLE_TRACKS_UPDATED,
459
- () => (this._ccTracksUpdated = true),
460
- )
453
+ // this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, () =>
454
+ // this._onSubtitleLoaded(),
455
+ // )
461
456
  this._hls.on(HlsEvents.AUDIO_TRACKS_UPDATED, (evt, data) =>
462
457
  this._onAudioTracksUpdated(evt, data),
463
458
  )
@@ -863,13 +858,13 @@ export default class HlsPlayback extends BasePlayback {
863
858
  ) as PlaybackType
864
859
  this._onLevelUpdated(evt, data)
865
860
  // Live stream subtitle tracks detection hack (may not immediately available)
866
- if (
867
- this._ccTracksUpdated &&
868
- this._playbackType === Playback.LIVE &&
869
- this.hasClosedCaptionsTracks
870
- ) {
871
- this._onSubtitleLoaded()
872
- }
861
+ // if (
862
+ // this._ccTracksUpdated &&
863
+ // this._playbackType === Playback.LIVE &&
864
+ // this.hasClosedCaptionsTracks
865
+ // ) {
866
+ // this._onSubtitleLoaded()
867
+ // }
873
868
  if (prevPlaybackType !== this._playbackType) {
874
869
  this._updateSettings()
875
870
  }
@@ -1044,18 +1039,19 @@ export default class HlsPlayback extends BasePlayback {
1044
1039
  this.trigger(Events.PLAYBACK_FRAGMENT_LOADED, data)
1045
1040
  }
1046
1041
 
1047
- _onSubtitleLoaded() {
1048
- // This event may be triggered multiple times
1049
- // Setup CC only once (disable CC by default)
1050
- if (!this._ccIsSetup) {
1051
- this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)
1052
- const trackId =
1053
- this._playbackType === Playback.LIVE ? -1 : this.closedCaptionsTrackId
1042
+ // _onSubtitleLoaded() {
1043
+ // trace(`${T} _onSubtitleLoaded`)
1044
+ // // This event may be triggered multiple times
1045
+ // // Setup CC only once (disable CC by default)
1046
+ // if (!this._ccIsSetup) {
1047
+ // this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)
1048
+ // const trackId =
1049
+ // this._playbackType === Playback.LIVE ? -1 : this.closedCaptionsTrackId
1054
1050
 
1055
- this.closedCaptionsTrackId = trackId
1056
- this._ccIsSetup = true
1057
- }
1058
- }
1051
+ // this.closedCaptionsTrackId = trackId
1052
+ // this._ccIsSetup = true
1053
+ // }
1054
+ // }
1059
1055
 
1060
1056
  _onLevelSwitch(evt: HlsEvents.LEVEL_SWITCHING, data: LevelSwitchingData) {
1061
1057
  if (!this.levels.length) {
@@ -45,6 +45,14 @@ export type ClosedCaptionsPluginSettings = {
45
45
  * - {@link MediaControl}
46
46
  *
47
47
  * Configuration options - {@link ClosedCaptionsPluginSettings}
48
+ *
49
+ * Known issues:
50
+ *
51
+ * 1. When media source changes, the subtitles tracks aren't reloaded. Possible solution: use `playback.recycleVideo = false`
52
+ * {@link PlayerConfig | main config option}, which will force new video element creation every time media source changes.
53
+ * However, this may lead to other issues, such as autoplay not working (after media source has been changed).
54
+ * {@link https://github.com/video-dev/hls.js/issues/2198 | related discussion}
55
+ *
48
56
  * @example
49
57
  * ```ts
50
58
  * import { ClosedCaptions } from '@gcorevideo/player'
@@ -129,7 +137,6 @@ export class ClosedCaptions extends UICorePlugin {
129
137
  */
130
138
  override bindEvents() {
131
139
  this.listenTo(this.core, Events.CORE_READY, this.onCoreReady)
132
- this.listenTo(this.core, Events.CORE_RESIZE, this.playerResize)
133
140
  this.listenTo(
134
141
  this.core,
135
142
  Events.CORE_ACTIVE_CONTAINER_CHANGED,
@@ -159,7 +166,12 @@ export class ClosedCaptions extends UICorePlugin {
159
166
  this.listenTo(
160
167
  this.core.activeContainer,
161
168
  Events.CONTAINER_FULLSCREEN,
162
- this.playerResize,
169
+ this.onContainerResize,
170
+ )
171
+ this.listenTo(
172
+ this.core.activeContainer,
173
+ Events.CONTAINER_RESIZE,
174
+ this.onContainerResize,
163
175
  )
164
176
  this.listenTo(
165
177
  this.core.activeContainer,
@@ -199,7 +211,9 @@ export class ClosedCaptions extends UICorePlugin {
199
211
  }
200
212
 
201
213
  private onSubtitleAvailable() {
202
- trace(`${T} onSubtitleAvailable`)
214
+ trace(`${T} onSubtitleAvailable`, {
215
+ tracks: this.core.activePlayback.closedCaptionsTracks.length,
216
+ })
203
217
  this.applyTracks()
204
218
  this.mount()
205
219
  }
@@ -265,8 +279,7 @@ export class ClosedCaptions extends UICorePlugin {
265
279
  )
266
280
  }
267
281
 
268
- private playerResize() {
269
- trace(`${T} playerResize`)
282
+ private onContainerResize() {
270
283
  const shouldShow =
271
284
  this.core.activeContainer &&
272
285
  isFullscreen(this.core.activeContainer.el) &&
@@ -61,7 +61,7 @@ describe('ClosedCaptions', () => {
61
61
  width: 320,
62
62
  height: 260,
63
63
  })
64
- core.emit(Events.CORE_RESIZE, { width: 320, height: 260 })
64
+ // core.emit(Events.CORE_RESIZE, { width: 320, height: 260 })
65
65
  })
66
66
  it('should clamp popup height', () => {
67
67
  expect(cc.$el.find('#gplayer-cc-menu').css('max-height')).toBe('197px')