stream: expose OS media controls via the Media Session API
All checks were successful
continuous-integration/drone/push Build is passing

Wire the web player into system media controls (MPRIS, Control Center,
lock screen) and keyboard media keys: push track metadata and handle
play/pause/next, with seek neutralized on the live stream.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
nemunaire 2026-07-03 19:17:20 +08:00
commit 622210197f
2 changed files with 37 additions and 0 deletions

View file

@ -32,6 +32,10 @@ simultaneous listeners), not for public broadcasting.
- **Built-in web player** at `http://localhost:8000/`: now playing (linked to
its source page), track history, skip button, per-track download, volume
memory, live auto-reconnect, prefetch progress, and a synthwave look.
- **OS media controls**: the player exposes current track metadata and
play/pause/next through the Media Session API, so it wires into system media
controls (MPRIS on Linux, macOS Control Center, Windows, mobile lock screen)
and keyboard media keys.
- **Robust in a container**: Docker healthcheck, graceful shutdown, retries on
transient HTTP errors.