@livepeer-frameworks/player-wc 0.1.2 → 0.1.4

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 (116) hide show
  1. package/dist/cjs/components/fw-dev-mode-panel.js +845 -212
  2. package/dist/cjs/components/fw-dev-mode-panel.js.map +1 -1
  3. package/dist/cjs/components/fw-dvd-logo.js +211 -0
  4. package/dist/cjs/components/fw-dvd-logo.js.map +1 -0
  5. package/dist/cjs/components/fw-idle-screen.js +641 -97
  6. package/dist/cjs/components/fw-idle-screen.js.map +1 -1
  7. package/dist/cjs/components/fw-loading-screen.js +513 -0
  8. package/dist/cjs/components/fw-loading-screen.js.map +1 -0
  9. package/dist/cjs/components/fw-player-controls.js +390 -173
  10. package/dist/cjs/components/fw-player-controls.js.map +1 -1
  11. package/dist/cjs/components/fw-player.js +506 -63
  12. package/dist/cjs/components/fw-player.js.map +1 -1
  13. package/dist/cjs/components/fw-seek-bar.js +292 -142
  14. package/dist/cjs/components/fw-seek-bar.js.map +1 -1
  15. package/dist/cjs/components/fw-settings-menu.js +208 -81
  16. package/dist/cjs/components/fw-settings-menu.js.map +1 -1
  17. package/dist/cjs/components/fw-stats-panel.js +134 -70
  18. package/dist/cjs/components/fw-stats-panel.js.map +1 -1
  19. package/dist/cjs/components/fw-stream-state-overlay.js +338 -0
  20. package/dist/cjs/components/fw-stream-state-overlay.js.map +1 -0
  21. package/dist/cjs/components/fw-subtitle-renderer.js +174 -27
  22. package/dist/cjs/components/fw-subtitle-renderer.js.map +1 -1
  23. package/dist/cjs/components/fw-thumbnail-overlay.js +161 -0
  24. package/dist/cjs/components/fw-thumbnail-overlay.js.map +1 -0
  25. package/dist/cjs/components/fw-volume-control.js +150 -69
  26. package/dist/cjs/components/fw-volume-control.js.map +1 -1
  27. package/dist/cjs/components/shared/hitmarker-audio.js +76 -0
  28. package/dist/cjs/components/shared/hitmarker-audio.js.map +1 -0
  29. package/dist/cjs/constants/media-assets.js +11 -0
  30. package/dist/cjs/constants/media-assets.js.map +1 -0
  31. package/dist/cjs/controllers/player-controller-host.js +51 -2
  32. package/dist/cjs/controllers/player-controller-host.js.map +1 -1
  33. package/dist/cjs/define.js +8 -0
  34. package/dist/cjs/define.js.map +1 -1
  35. package/dist/cjs/icons/index.js +27 -0
  36. package/dist/cjs/icons/index.js.map +1 -1
  37. package/dist/cjs/index.js +20 -0
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/esm/components/fw-dev-mode-panel.js +846 -213
  40. package/dist/esm/components/fw-dev-mode-panel.js.map +1 -1
  41. package/dist/esm/components/fw-dvd-logo.js +211 -0
  42. package/dist/esm/components/fw-dvd-logo.js.map +1 -0
  43. package/dist/esm/components/fw-idle-screen.js +643 -99
  44. package/dist/esm/components/fw-idle-screen.js.map +1 -1
  45. package/dist/esm/components/fw-loading-screen.js +513 -0
  46. package/dist/esm/components/fw-loading-screen.js.map +1 -0
  47. package/dist/esm/components/fw-player-controls.js +391 -174
  48. package/dist/esm/components/fw-player-controls.js.map +1 -1
  49. package/dist/esm/components/fw-player.js +506 -63
  50. package/dist/esm/components/fw-player.js.map +1 -1
  51. package/dist/esm/components/fw-seek-bar.js +293 -143
  52. package/dist/esm/components/fw-seek-bar.js.map +1 -1
  53. package/dist/esm/components/fw-settings-menu.js +209 -82
  54. package/dist/esm/components/fw-settings-menu.js.map +1 -1
  55. package/dist/esm/components/fw-stats-panel.js +135 -71
  56. package/dist/esm/components/fw-stats-panel.js.map +1 -1
  57. package/dist/esm/components/fw-stream-state-overlay.js +338 -0
  58. package/dist/esm/components/fw-stream-state-overlay.js.map +1 -0
  59. package/dist/esm/components/fw-subtitle-renderer.js +175 -28
  60. package/dist/esm/components/fw-subtitle-renderer.js.map +1 -1
  61. package/dist/esm/components/fw-thumbnail-overlay.js +161 -0
  62. package/dist/esm/components/fw-thumbnail-overlay.js.map +1 -0
  63. package/dist/esm/components/fw-volume-control.js +150 -69
  64. package/dist/esm/components/fw-volume-control.js.map +1 -1
  65. package/dist/esm/components/shared/hitmarker-audio.js +74 -0
  66. package/dist/esm/components/shared/hitmarker-audio.js.map +1 -0
  67. package/dist/esm/constants/media-assets.js +8 -0
  68. package/dist/esm/constants/media-assets.js.map +1 -0
  69. package/dist/esm/controllers/player-controller-host.js +51 -2
  70. package/dist/esm/controllers/player-controller-host.js.map +1 -1
  71. package/dist/esm/define.js +8 -0
  72. package/dist/esm/define.js.map +1 -1
  73. package/dist/esm/icons/index.js +26 -2
  74. package/dist/esm/icons/index.js.map +1 -1
  75. package/dist/esm/index.js +4 -0
  76. package/dist/esm/index.js.map +1 -1
  77. package/dist/fw-player.iife.js +2097 -883
  78. package/dist/types/components/fw-dev-mode-panel.d.ts +36 -9
  79. package/dist/types/components/fw-dvd-logo.d.ts +29 -0
  80. package/dist/types/components/fw-idle-screen.d.ts +36 -0
  81. package/dist/types/components/fw-loading-screen.d.ts +36 -0
  82. package/dist/types/components/fw-player-controls.d.ts +23 -6
  83. package/dist/types/components/fw-player.d.ts +32 -1
  84. package/dist/types/components/fw-seek-bar.d.ts +31 -14
  85. package/dist/types/components/fw-settings-menu.d.ts +16 -1
  86. package/dist/types/components/fw-stats-panel.d.ts +4 -4
  87. package/dist/types/components/fw-stream-state-overlay.d.ts +20 -0
  88. package/dist/types/components/fw-subtitle-renderer.d.ts +33 -2
  89. package/dist/types/components/fw-thumbnail-overlay.d.ts +17 -0
  90. package/dist/types/components/fw-volume-control.d.ts +11 -4
  91. package/dist/types/components/shared/hitmarker-audio.d.ts +1 -0
  92. package/dist/types/constants/media-assets.d.ts +5 -0
  93. package/dist/types/controllers/player-controller-host.d.ts +14 -1
  94. package/dist/types/iife-entry.d.ts +4 -0
  95. package/dist/types/index.d.ts +4 -0
  96. package/package.json +2 -2
  97. package/src/components/fw-dev-mode-panel.ts +929 -228
  98. package/src/components/fw-dvd-logo.ts +233 -0
  99. package/src/components/fw-idle-screen.ts +680 -100
  100. package/src/components/fw-loading-screen.ts +540 -0
  101. package/src/components/fw-player-controls.ts +475 -175
  102. package/src/components/fw-player.ts +551 -60
  103. package/src/components/fw-seek-bar.ts +336 -143
  104. package/src/components/fw-settings-menu.ts +248 -85
  105. package/src/components/fw-stats-panel.ts +150 -77
  106. package/src/components/fw-stream-state-overlay.ts +331 -0
  107. package/src/components/fw-subtitle-renderer.ts +216 -28
  108. package/src/components/fw-thumbnail-overlay.ts +148 -0
  109. package/src/components/fw-volume-control.ts +166 -66
  110. package/src/components/shared/hitmarker-audio.ts +92 -0
  111. package/src/constants/media-assets.ts +7 -0
  112. package/src/controllers/player-controller-host.ts +52 -3
  113. package/src/define.ts +8 -0
  114. package/src/iife-entry.ts +4 -0
  115. package/src/index.ts +4 -0
  116. package/dist/fw-player.iife.js.map +0 -1
@@ -54,7 +54,7 @@ export interface PlayerControllerHostState {
54
54
  isAuto?: boolean;
55
55
  active?: boolean;
56
56
  }>;
57
- textTracks: Array<{ id: string; label: string; language?: string; active: boolean }>;
57
+ textTracks: Array<{ id: string; label: string; lang?: string; active: boolean }>;
58
58
  streamInfo: StreamInfo | null;
59
59
  toast: { message: string; timestamp: number } | null;
60
60
  }
@@ -185,6 +185,7 @@ export class PlayerControllerHost implements ReactiveController {
185
185
  isLoopEnabled: c.isLoopEnabled(),
186
186
  subtitlesEnabled: c.isSubtitlesEnabled(),
187
187
  qualities: c.getQualities(),
188
+ textTracks: c.getTextTracks(),
188
189
  streamInfo: c.getStreamInfo(),
189
190
  });
190
191
  }
@@ -215,7 +216,18 @@ export class PlayerControllerHost implements ReactiveController {
215
216
 
216
217
  u.push(
217
218
  controller.on("timeUpdate", ({ currentTime, duration }) => {
218
- this.update({ currentTime, duration });
219
+ const next: Partial<PlayerControllerHostState> = {
220
+ currentTime,
221
+ duration,
222
+ shouldShowControls: controller.shouldShowControls(),
223
+ };
224
+ if (this.s.qualities.length === 0) {
225
+ const qualities = controller.getQualities();
226
+ if (qualities.length > 0) {
227
+ next.qualities = qualities;
228
+ }
229
+ }
230
+ this.update(next);
219
231
  this.dispatchEvent("fw-time-update", { currentTime, duration });
220
232
  })
221
233
  );
@@ -248,8 +260,10 @@ export class PlayerControllerHost implements ReactiveController {
248
260
  currentPlayerInfo: controller.getCurrentPlayerInfo(),
249
261
  currentSourceInfo: controller.getCurrentSourceInfo(),
250
262
  qualities: controller.getQualities(),
263
+ textTracks: controller.getTextTracks(),
251
264
  });
252
265
  this.dispatchEvent("fw-ready", { videoElement });
266
+ this.syncState();
253
267
 
254
268
  const handleVideoEvent = () => {
255
269
  if (this.controller?.shouldSuppressVideoEvents?.()) return;
@@ -274,7 +288,9 @@ export class PlayerControllerHost implements ReactiveController {
274
288
  currentPlayerInfo: controller.getCurrentPlayerInfo(),
275
289
  currentSourceInfo: { url: source.url, type: source.type },
276
290
  qualities: controller.getQualities(),
291
+ textTracks: controller.getTextTracks(),
277
292
  });
293
+ this.syncState();
278
294
  })
279
295
  );
280
296
 
@@ -334,7 +350,7 @@ export class PlayerControllerHost implements ReactiveController {
334
350
 
335
351
  u.push(
336
352
  controller.on("captionsChange", ({ enabled }) => {
337
- this.update({ subtitlesEnabled: enabled });
353
+ this.update({ subtitlesEnabled: enabled, textTracks: controller.getTextTracks() });
338
354
  })
339
355
  );
340
356
 
@@ -428,18 +444,51 @@ export class PlayerControllerHost implements ReactiveController {
428
444
  selectQuality(id: string) {
429
445
  this.controller?.selectQuality(id);
430
446
  }
447
+ getTextTracks() {
448
+ return this.controller?.getTextTracks() ?? [];
449
+ }
450
+ selectTextTrack(id: string | null) {
451
+ this.controller?.selectTextTrack(id);
452
+ }
453
+ setPlaybackRate(rate: number) {
454
+ this.controller?.setPlaybackRate(rate);
455
+ }
456
+ getSeekableStart() {
457
+ return this.controller?.getSeekableStart() ?? 0;
458
+ }
459
+ getLiveEdge() {
460
+ return this.controller?.getLiveEdge() ?? 0;
461
+ }
462
+ canSeekStream() {
463
+ return this.controller?.canSeekStream() ?? false;
464
+ }
465
+ getBufferedRanges() {
466
+ return this.controller?.getBufferedRanges() ?? null;
467
+ }
468
+ async getStats() {
469
+ return this.controller?.getStats();
470
+ }
431
471
 
432
472
  handleMouseEnter() {
433
473
  this.controller?.handleMouseEnter();
474
+ this.update({ isHovering: true, shouldShowControls: true });
434
475
  }
435
476
  handleMouseLeave() {
436
477
  this.controller?.handleMouseLeave();
478
+ this.update({
479
+ isHovering: false,
480
+ shouldShowControls: this.controller?.shouldShowControls() ?? false,
481
+ });
437
482
  }
438
483
  handleMouseMove() {
439
484
  this.controller?.handleMouseMove();
485
+ if (this.controller) {
486
+ this.update({ shouldShowControls: this.controller.shouldShowControls() });
487
+ }
440
488
  }
441
489
  handleTouchStart() {
442
490
  this.controller?.handleTouchStart();
491
+ this.update({ shouldShowControls: true });
443
492
  }
444
493
 
445
494
  async setDevModeOptions(options: {
package/src/define.ts CHANGED
@@ -9,6 +9,10 @@ import { FwVolumeControl } from "./components/fw-volume-control.js";
9
9
  import { FwSettingsMenu } from "./components/fw-settings-menu.js";
10
10
  import { FwIdleScreen } from "./components/fw-idle-screen.js";
11
11
  import { FwLoadingSpinner } from "./components/fw-loading-spinner.js";
12
+ import { FwLoadingScreen } from "./components/fw-loading-screen.js";
13
+ import { FwStreamStateOverlay } from "./components/fw-stream-state-overlay.js";
14
+ import { FwThumbnailOverlay } from "./components/fw-thumbnail-overlay.js";
15
+ import { FwDvdLogo } from "./components/fw-dvd-logo.js";
12
16
  import { FwTitleOverlay } from "./components/fw-title-overlay.js";
13
17
  import { FwErrorOverlay } from "./components/fw-error-overlay.js";
14
18
  import { FwToast } from "./components/fw-toast.js";
@@ -32,6 +36,10 @@ safeDefine("fw-volume-control", FwVolumeControl);
32
36
  safeDefine("fw-settings-menu", FwSettingsMenu);
33
37
  safeDefine("fw-idle-screen", FwIdleScreen);
34
38
  safeDefine("fw-loading-spinner", FwLoadingSpinner);
39
+ safeDefine("fw-loading-screen", FwLoadingScreen);
40
+ safeDefine("fw-stream-state-overlay", FwStreamStateOverlay);
41
+ safeDefine("fw-thumbnail-overlay", FwThumbnailOverlay);
42
+ safeDefine("fw-dvd-logo", FwDvdLogo);
35
43
  safeDefine("fw-title-overlay", FwTitleOverlay);
36
44
  safeDefine("fw-error-overlay", FwErrorOverlay);
37
45
  safeDefine("fw-toast", FwToast);
package/src/iife-entry.ts CHANGED
@@ -8,4 +8,8 @@
8
8
  */
9
9
  import "./define.js";
10
10
  export { FwPlayer } from "./components/fw-player.js";
11
+ export { FwLoadingScreen } from "./components/fw-loading-screen.js";
12
+ export { FwIdleScreen } from "./components/fw-idle-screen.js";
13
+ export { FwStreamStateOverlay } from "./components/fw-stream-state-overlay.js";
14
+ export { FwThumbnailOverlay } from "./components/fw-thumbnail-overlay.js";
11
15
  export { PlayerControllerHost } from "./controllers/player-controller-host.js";
package/src/index.ts CHANGED
@@ -16,6 +16,10 @@ export { FwVolumeControl } from "./components/fw-volume-control.js";
16
16
  export { FwSettingsMenu } from "./components/fw-settings-menu.js";
17
17
  export { FwIdleScreen } from "./components/fw-idle-screen.js";
18
18
  export { FwLoadingSpinner } from "./components/fw-loading-spinner.js";
19
+ export { FwLoadingScreen } from "./components/fw-loading-screen.js";
20
+ export { FwStreamStateOverlay } from "./components/fw-stream-state-overlay.js";
21
+ export { FwThumbnailOverlay } from "./components/fw-thumbnail-overlay.js";
22
+ export { FwDvdLogo } from "./components/fw-dvd-logo.js";
19
23
  export { FwTitleOverlay } from "./components/fw-title-overlay.js";
20
24
  export { FwErrorOverlay } from "./components/fw-error-overlay.js";
21
25
  export { FwToast } from "./components/fw-toast.js";