Fix video not advancing + media not downloading on same-version startup
BUG-009: _on_video_eos was empty (stub). Added Clock.schedule_once for next_media() when video reaches end of stream. BUG-008: download_media_files only ran when server_version > local_version. Added download check in up-to-date branch so media files are synced even when playlist version hasn't changed.
This commit is contained in:
@@ -454,6 +454,18 @@ def update_playlist_if_needed(config, playlist_dir, media_dir):
|
|||||||
return playlist_file
|
return playlist_file
|
||||||
else:
|
else:
|
||||||
logger.info("✓ Playlist is up to date")
|
logger.info("✓ Playlist is up to date")
|
||||||
|
# Even when the playlist version matches, ensure media files exist locally.
|
||||||
|
# The media folder might be empty (e.g. fresh install or deleted files).
|
||||||
|
logger.info("📥 Checking for missing media files...")
|
||||||
|
ssl_manager = auth.ssl_manager if config.get('use_https', True) else None
|
||||||
|
server_url = auth.auth_data.get('server_url', '')
|
||||||
|
downloaded = download_media_files(
|
||||||
|
server_data.get('playlist', []), media_dir, ssl_manager, server_url
|
||||||
|
)
|
||||||
|
if downloaded:
|
||||||
|
server_data['playlist'] = downloaded
|
||||||
|
# Re-save playlist with updated URLs if needed
|
||||||
|
save_playlist(server_data, playlist_dir)
|
||||||
return playlist_file
|
return playlist_file
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@@ -1522,6 +1522,9 @@ class SignagePlayer(Widget):
|
|||||||
def _on_video_eos(self, instance):
|
def _on_video_eos(self, instance):
|
||||||
"""Callback when video reaches end of stream"""
|
"""Callback when video reaches end of stream"""
|
||||||
Logger.debug("SignagePlayer: Video finished playing (EOS)")
|
Logger.debug("SignagePlayer: Video finished playing (EOS)")
|
||||||
|
# Unschedule any pending timer and advance to next media
|
||||||
|
Clock.unschedule(self.next_media)
|
||||||
|
Clock.schedule_once(self.next_media, 0.5)
|
||||||
|
|
||||||
def _on_video_loaded(self, instance, value):
|
def _on_video_loaded(self, instance, value):
|
||||||
"""Callback when video is loaded - log video information"""
|
"""Callback when video is loaded - log video information"""
|
||||||
|
|||||||
@@ -99,12 +99,22 @@
|
|||||||
- **Files:** `windows/run_win.py`, `windows/cef_browser.py`
|
- **Files:** `windows/run_win.py`, `windows/cef_browser.py`
|
||||||
|
|
||||||
### [BUG-008] Intro video and media files not found at runtime
|
### [BUG-008] Intro video and media files not found at runtime
|
||||||
- **Status:** 🟡 **Known** 2026-07-24
|
- **Status:** ✅ **Fixed** 2026-07-24
|
||||||
- **Symptom:** `[ERROR] [Image] Error loading <...intro1.mp4>` — intro
|
- **Symptom:** `[ERROR] [Image] Error loading <...intro1.mp4>` — intro
|
||||||
broken. Also `❌ Media file not found` for playlist items.
|
broken. Also `❌ Media file not found` for playlist items.
|
||||||
- **Root cause:** Media files are not bundled in .exe — must be downloaded
|
- **Root cause:** Media download only ran when `server_version > local_version`.
|
||||||
from server. Player connects (v16 received) but hasn't downloaded files.
|
When versions matched (v16 == v16), `download_media_files` was never called
|
||||||
- **Fix:** Verify server is sending media content and player downloads it.
|
→ media folder stayed empty.
|
||||||
|
- **Fix:** Added download check in the "up to date" branch — now downloads
|
||||||
|
missing media files even when playlist version hasn't changed.
|
||||||
|
|
||||||
|
### [BUG-009] Video never advances to next item (EOS handler empty)
|
||||||
|
- **Status:** ✅ **Fixed** 2026-07-24
|
||||||
|
- **Symptom:** Video plays but never advances to the next playlist item.
|
||||||
|
- **Root cause:** `_on_video_eos()` callback was a stub — just logged
|
||||||
|
"Video finished playing (EOS)" but never called `next_media()`.
|
||||||
|
- **Fix:** Added `Clock.unschedule(self.next_media)` + `Clock.schedule_once`
|
||||||
|
to advance after 0.5s when a video reaches end of stream.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user