@xiboplayer/pwa 0.4.0 → 0.4.1

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 (2) hide show
  1. package/README.md +35 -3
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -13,8 +13,8 @@ Lightweight PWA Xibo digital signage player built on the [`@xiboplayer` SDK](htt
13
13
  - **XLF layout rendering** — video (MP4/HLS), images (scale/align), audio overlay, PDF, text/ticker, web pages via RendererLite
14
14
  - **Campaign scheduling** — priority-based campaigns, dayparting, interrupts, and overlays
15
15
  - **Playback control** — skip to next/previous layout via keyboard or click a layout in the timeline overlay
16
- - **Conflict indicators** — timeline overlay highlights overlapping schedule entries
17
- - **Multi-display sync** — BroadcastChannel-based lead/follower synchronized playback for video walls
16
+ - **Conflict indicators** — timeline overlay highlights overlapping schedule entries with accurate per-layout durations
17
+ - **Multi-display sync** — BroadcastChannel-based lead/follower synchronized playback for video walls, with cross-tab stats/logs delegation so followers submit proof-of-play through the sync lead
18
18
  - **Real-time CMS commands** — collectNow, screenshot, changeLayout, overlayLayout via XMR WebSocket
19
19
  - **SDK event wiring** — widget duration events, scheduled commands, event-based proof of play
20
20
  - **Proof of play** — per-layout and per-widget duration tracking with stats reporting
@@ -39,13 +39,45 @@ All overlays and controls are hidden by default for clean kiosk operation.
39
39
 
40
40
  Timeline overlay also supports **click-to-skip** — click any layout in the timeline to jump directly to it.
41
41
 
42
+ ## Debug Overlays
43
+
44
+ Three toggleable overlays provide real-time insight into player operation without leaving the playback screen. All are hidden by default for clean kiosk operation — press the corresponding key to toggle.
45
+
46
+ ### Timeline Overlay (`T`)
47
+
48
+ Shows the upcoming schedule as a scrollable list (up to 8 entries visible):
49
+
50
+ - **Current layout** highlighted with a `▶` marker and blue left border
51
+ - **Time range** and **duration** for each entry (e.g. `19:25–19:31 #362 6m 15s`)
52
+ - **`[def]`** tag on default/fallback layouts (no campaign scheduled)
53
+ - **`OFFLINE`** badge when the player has lost CMS connectivity
54
+ - **⚠ conflict indicators** — an orange `⚠ N` badge appears when N lower-priority layouts were scheduled for the same time slot but suppressed by a higher-priority campaign. Hover over the ⚠ to see which layouts were hidden and their priorities (e.g. `Hidden: #366 (p0), #362 (p0)`)
55
+ - **Click-to-skip** — click any future layout to jump to it immediately. The player enters override mode (the schedule won't auto-advance). Press `R` to return to normal schedule playback
56
+ - **Remaining duration** — the currently playing layout shows time remaining rather than full duration, so the predicted end time is always accurate
57
+
58
+ ### Download Overlay (`D`)
59
+
60
+ Shows real-time media download progress:
61
+
62
+ - **Active downloads** with progress bars, speed, and chunk status
63
+ - **Queue depth** — how many files are waiting to download
64
+ - **Idle status** when all media is cached and up to date
65
+ - Auto-hides when all downloads complete (if auto-hide is enabled)
66
+
67
+ Useful during initial deployment or after a `purgeAll` command to monitor how quickly content is being cached.
68
+
69
+ ### Video Controls (`V`)
70
+
71
+ Toggles native browser `<video>` controls on all video elements currently in the DOM. Shows play/pause, seek bar, volume, and fullscreen buttons on each video widget — helpful for debugging video playback issues, checking codec info, or manually seeking within a video.
72
+
42
73
  ## Service Worker Architecture
43
74
 
44
75
  The Service Worker (`sw-pwa.js`) provides:
45
76
 
46
77
  - **Progressive streaming** — large media served via chunk streaming with Range request support
47
78
  - **BlobCache** — in-memory assembled chunks with LRU eviction for fast video seeking
48
- - **XLF-driven media resolution** — parses layout XLF to download exactly the media each layout needs
79
+ - **XLF-driven media resolution** — parses layout XLF to download exactly the media each layout needs, including data widget IDs (media tags without fileId) and unclaimed media files
80
+ - **Server-enriched widget data** — RSS/dataset widget data paths are provided by the CMS in enriched RequiredFiles responses, downloaded alongside regular media rather than fetched client-side
49
81
  - **Layout-ordered downloads** — media queued with barriers so the currently-playing layout downloads first
50
82
  - **Version-aware activation** — same-version SW update skips activation to preserve in-flight video streams
51
83
  - **Adaptive chunk sizing** — adjusts chunk size and concurrency based on device RAM (4GB/8GB+ tiers)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiboplayer/pwa",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Lightweight PWA Xibo Player with RendererLite",
5
5
  "type": "module",
6
6
  "files": [