@gcorevideo/player 2.22.9 → 2.22.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.
@@ -13320,7 +13320,7 @@ class ClipsPlugin extends UICorePlugin {
13320
13320
 
13321
13321
  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";
13322
13322
 
13323
- var version$1 = "2.22.9";
13323
+ var version$1 = "2.22.10";
13324
13324
 
13325
13325
  var packages = {
13326
13326
  "node_modules/@clappr/core": {
@@ -16077,6 +16077,7 @@ class PlaybackRate extends UICorePlugin {
16077
16077
  this.metadataLoaded = false;
16078
16078
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_STOP, this.onStop);
16079
16079
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_PLAY, this.onPlay);
16080
+ this.listenTo(this.core.activePlayback, Events.PLAYBACK_SETTINGSUPDATE, this.onSettingsUpdate);
16080
16081
  this.listenTo(this.core.activePlayback, PlaybackEvents.PLAYBACK_RATE_CHANGED, this.onPlaybackRateChange);
16081
16082
  this.listenTo(this.core.activeContainer, Events.CONTAINER_LOADEDMETADATA, this.onMetaDataLoaded);
16082
16083
  }
@@ -16103,9 +16104,22 @@ class PlaybackRate extends UICorePlugin {
16103
16104
  i18n: this.core.i18n,
16104
16105
  })));
16105
16106
  }
16107
+ onSettingsUpdate() {
16108
+ trace(`${T$7} onSettingsUpdate`, {
16109
+ playbackType: this.core.activePlayback.getPlaybackType(),
16110
+ dvrEnabled: this.core.activePlayback.dvrEnabled,
16111
+ });
16112
+ // this.metadataLoaded = false
16113
+ }
16106
16114
  onMetaDataLoaded() {
16107
- this.metadataLoaded = true;
16108
- this.render();
16115
+ trace(`${T$7} onMetaDataLoaded`, {
16116
+ playbackType: this.core.activePlayback.getPlaybackType(),
16117
+ dvrEnabled: this.core.activePlayback.dvrEnabled,
16118
+ });
16119
+ setTimeout(() => {
16120
+ this.metadataLoaded = true;
16121
+ this.render();
16122
+ }, 0);
16109
16123
  }
16110
16124
  allRateElements() {
16111
16125
  return this.$el.find('#playback-rate-menu li');
@@ -16125,13 +16139,13 @@ class PlaybackRate extends UICorePlugin {
16125
16139
  }
16126
16140
  }
16127
16141
  shouldMount() {
16142
+ trace(`${T$7} shouldMount`, {
16143
+ playbackType: this.core.activePlayback?.getPlaybackType(),
16144
+ dvrEnabled: this.core.activePlayback?.dvrEnabled,
16145
+ });
16128
16146
  if (!this.core.activePlayback || !this.metadataLoaded) {
16129
16147
  return false;
16130
16148
  }
16131
- trace(`${T$7} shouldMount`, {
16132
- playbackType: this.core.activePlayback.getPlaybackType(),
16133
- dvrEnabled: this.core.activePlayback.dvrEnabled,
16134
- });
16135
16149
  if (this.core.activePlayback.getPlaybackType() === Playback.LIVE &&
16136
16150
  !this.core.activePlayback.dvrEnabled) {
16137
16151
  return false;
package/lib/Player.js CHANGED
@@ -11,7 +11,7 @@ const DEFAULT_OPTIONS = {
11
11
  debug: 'none',
12
12
  loop: false,
13
13
  mute: false,
14
- playbackType: 'vod',
14
+ // playbackType: 'vod',
15
15
  priorityTransport: 'dash',
16
16
  sources: [],
17
17
  strings: {},
@@ -83,6 +83,7 @@ export declare class PlaybackRate extends UICorePlugin {
83
83
  private onMediaControlRendered;
84
84
  private onGearRendered;
85
85
  private mount;
86
+ private onSettingsUpdate;
86
87
  private onMetaDataLoaded;
87
88
  private allRateElements;
88
89
  private rateElement;
@@ -1 +1 @@
1
- {"version":3,"file":"PlaybackRate.d.ts","sourceRoot":"","sources":["../../../src/plugins/playback-rate/PlaybackRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAsB,IAAI,EAAK,MAAM,cAAc,CAAA;AAiBhF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAI5C,OAAO,CAAC,YAAY,CAAwB;IAE5C,OAAO,CAAC,cAAc,CAAQ;IAE9B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAE7C,IAAI,EAAE,IAAI;IAOtB,OAAO,KAAK,aAAa,GAExB;IAED;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,KAAK;IAsBb,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,WAAW;IAoBnB;;OAEG;IACM,MAAM;IAoCf,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,qBAAqB;CAM9B"}
1
+ {"version":3,"file":"PlaybackRate.d.ts","sourceRoot":"","sources":["../../../src/plugins/playback-rate/PlaybackRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAsB,IAAI,EAAK,MAAM,cAAc,CAAA;AAiBhF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAI5C,OAAO,CAAC,YAAY,CAAwB;IAE5C,OAAO,CAAC,cAAc,CAAQ;IAE9B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAE7C,IAAI,EAAE,IAAI;IAOtB,OAAO,KAAK,aAAa,GAExB;IAED;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,uBAAuB;IAsB/B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,KAAK;IAsBb,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,WAAW;IAoBnB;;OAEG;IACM,MAAM;IAoCf,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,qBAAqB;CAM9B"}
@@ -118,6 +118,7 @@ export class PlaybackRate extends UICorePlugin {
118
118
  this.metadataLoaded = false;
119
119
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_STOP, this.onStop);
120
120
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_PLAY, this.onPlay);
121
+ this.listenTo(this.core.activePlayback, Events.PLAYBACK_SETTINGSUPDATE, this.onSettingsUpdate);
121
122
  this.listenTo(this.core.activePlayback, PlaybackEvents.PLAYBACK_RATE_CHANGED, this.onPlaybackRateChange);
122
123
  this.listenTo(this.core.activeContainer, Events.CONTAINER_LOADEDMETADATA, this.onMetaDataLoaded);
123
124
  }
@@ -146,10 +147,22 @@ export class PlaybackRate extends UICorePlugin {
146
147
  i18n: this.core.i18n,
147
148
  })));
148
149
  }
150
+ onSettingsUpdate() {
151
+ trace(`${T} onSettingsUpdate`, {
152
+ playbackType: this.core.activePlayback.getPlaybackType(),
153
+ dvrEnabled: this.core.activePlayback.dvrEnabled,
154
+ });
155
+ // this.metadataLoaded = false
156
+ }
149
157
  onMetaDataLoaded() {
150
- trace(`${T} onMetaDataLoaded`);
151
- this.metadataLoaded = true;
152
- this.render();
158
+ trace(`${T} onMetaDataLoaded`, {
159
+ playbackType: this.core.activePlayback.getPlaybackType(),
160
+ dvrEnabled: this.core.activePlayback.dvrEnabled,
161
+ });
162
+ setTimeout(() => {
163
+ this.metadataLoaded = true;
164
+ this.render();
165
+ }, 0);
153
166
  }
154
167
  allRateElements() {
155
168
  return this.$el.find('#playback-rate-menu li');
@@ -170,13 +183,13 @@ export class PlaybackRate extends UICorePlugin {
170
183
  }
171
184
  }
172
185
  shouldMount() {
186
+ trace(`${T} shouldMount`, {
187
+ playbackType: this.core.activePlayback?.getPlaybackType(),
188
+ dvrEnabled: this.core.activePlayback?.dvrEnabled,
189
+ });
173
190
  if (!this.core.activePlayback || !this.metadataLoaded) {
174
191
  return false;
175
192
  }
176
- trace(`${T} shouldMount`, {
177
- playbackType: this.core.activePlayback.getPlaybackType(),
178
- dvrEnabled: this.core.activePlayback.dvrEnabled,
179
- });
180
193
  if (this.core.activePlayback.getPlaybackType() === Playback.LIVE &&
181
194
  !this.core.activePlayback.dvrEnabled) {
182
195
  return false;
package/lib/types.d.ts CHANGED
@@ -144,9 +144,10 @@ export interface PlayerConfig extends Record<string, unknown> {
144
144
  */
145
145
  mute?: boolean;
146
146
  /**
147
- * The type of playback (live stream or video on demand).
148
- *
149
- * @defaultValue 'vod'
147
+ * Stream type.
148
+ * @remark
149
+ * Should only be set if known in advance, as it should not change once determined.
150
+ * Otherwise it might cause inconsistencies in the UI plugins behavior, for instance, glitches with rendering of the DVR controls or seek bar.
150
151
  */
151
152
  playbackType?: PlaybackType;
152
153
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcorevideo/player",
3
- "version": "2.22.9",
3
+ "version": "2.22.10",
4
4
  "description": "Gcore JavaScript video player",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
package/src/Player.ts CHANGED
@@ -59,7 +59,7 @@ const DEFAULT_OPTIONS: PlayerConfig = {
59
59
  debug: 'none',
60
60
  loop: false,
61
61
  mute: false,
62
- playbackType: 'vod',
62
+ // playbackType: 'vod',
63
63
  priorityTransport: 'dash',
64
64
  sources: [],
65
65
  strings: {},
@@ -164,6 +164,11 @@ export class PlaybackRate extends UICorePlugin {
164
164
  this.metadataLoaded = false
165
165
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_STOP, this.onStop)
166
166
  this.listenTo(this.core.activePlayback, Events.PLAYBACK_PLAY, this.onPlay)
167
+ this.listenTo(
168
+ this.core.activePlayback,
169
+ Events.PLAYBACK_SETTINGSUPDATE,
170
+ this.onSettingsUpdate,
171
+ )
167
172
  this.listenTo(
168
173
  this.core.activePlayback,
169
174
  PlaybackEvents.PLAYBACK_RATE_CHANGED,
@@ -208,10 +213,23 @@ export class PlaybackRate extends UICorePlugin {
208
213
  )
209
214
  }
210
215
 
216
+ private onSettingsUpdate() {
217
+ trace(`${T} onSettingsUpdate`, {
218
+ playbackType: this.core.activePlayback.getPlaybackType(),
219
+ dvrEnabled: this.core.activePlayback.dvrEnabled,
220
+ })
221
+ // this.metadataLoaded = false
222
+ }
223
+
211
224
  private onMetaDataLoaded() {
212
- trace(`${T} onMetaDataLoaded`)
213
- this.metadataLoaded = true
214
- this.render()
225
+ trace(`${T} onMetaDataLoaded`, {
226
+ playbackType: this.core.activePlayback.getPlaybackType(),
227
+ dvrEnabled: this.core.activePlayback.dvrEnabled,
228
+ })
229
+ setTimeout(() => {
230
+ this.metadataLoaded = true
231
+ this.render()
232
+ }, 0)
215
233
  }
216
234
 
217
235
  private allRateElements(): ZeptoResult {
@@ -240,15 +258,15 @@ export class PlaybackRate extends UICorePlugin {
240
258
  }
241
259
 
242
260
  private shouldMount() {
261
+ trace(`${T} shouldMount`, {
262
+ playbackType: this.core.activePlayback?.getPlaybackType(),
263
+ dvrEnabled: this.core.activePlayback?.dvrEnabled,
264
+ })
265
+
243
266
  if (!this.core.activePlayback || !this.metadataLoaded) {
244
267
  return false
245
268
  }
246
269
 
247
- trace(`${T} shouldMount`, {
248
- playbackType: this.core.activePlayback.getPlaybackType(),
249
- dvrEnabled: this.core.activePlayback.dvrEnabled,
250
- })
251
-
252
270
  if (
253
271
  this.core.activePlayback.getPlaybackType() === Playback.LIVE &&
254
272
  !this.core.activePlayback.dvrEnabled
package/src/types.ts CHANGED
@@ -162,9 +162,10 @@ export interface PlayerConfig extends Record<string, unknown> {
162
162
  mute?: boolean
163
163
 
164
164
  /**
165
- * The type of playback (live stream or video on demand).
166
- *
167
- * @defaultValue 'vod'
165
+ * Stream type.
166
+ * @remark
167
+ * Should only be set if known in advance, as it should not change once determined.
168
+ * Otherwise it might cause inconsistencies in the UI plugins behavior, for instance, glitches with rendering of the DVR controls or seek bar.
168
169
  */
169
170
  playbackType?: PlaybackType
170
171