Implement built-in web player in the Elm frontend #23

Open
opened 2026-03-17 16:41:54 -04:00 by connor · 0 comments
Owner

Add a built-in music player to the Elm web UI so users can listen to their library directly in the browser without needing an external Subsonic client.

  1. Audio player component:

    • HTML5 <audio> element integration in Elm
    • Play/pause, next/previous, seek bar, volume control
    • Track info display (title, artist, album, cover art)
    • Persistent player bar at the bottom of the UI (doesn't disappear when navigating)
  2. Queue management:

    • "Play now" adds a track and starts playing
    • "Add to queue" appends to the play queue
    • "Play album" / "Play artist" loads all tracks into the queue
    • Queue is viewable, reorderable, and clearable
    • Shuffle and repeat modes
  3. Integration with library browser:

    • Play buttons on tracks, albums, and artists in the library view
    • "Now playing" indicator in the library browser
    • Clicking a track in album view plays that track and queues the rest of the album

Acceptance Criteria

  • Audio playback works in the browser for all supported formats
  • Player controls (play, pause, seek, volume, next, previous) work
  • Track info and cover art display while playing
  • Play queue is functional (add, remove, reorder, clear)
  • Shuffle and repeat modes work
  • Player persists across page navigation
  • Playing a track from the library browser works seamlessly

Dependencies

  • Issue #10 (Elm frontend)
  • Issue #22 (music serving — or alternatively, serve files directly from the Actix backend)
Add a built-in music player to the Elm web UI so users can listen to their library directly in the browser without needing an external Subsonic client. 1. **Audio player component:** - HTML5 `<audio>` element integration in Elm - Play/pause, next/previous, seek bar, volume control - Track info display (title, artist, album, cover art) - Persistent player bar at the bottom of the UI (doesn't disappear when navigating) 2. **Queue management:** - "Play now" adds a track and starts playing - "Add to queue" appends to the play queue - "Play album" / "Play artist" loads all tracks into the queue - Queue is viewable, reorderable, and clearable - Shuffle and repeat modes 3. **Integration with library browser:** - Play buttons on tracks, albums, and artists in the library view - "Now playing" indicator in the library browser - Clicking a track in album view plays that track and queues the rest of the album ### Acceptance Criteria - [ ] Audio playback works in the browser for all supported formats - [ ] Player controls (play, pause, seek, volume, next, previous) work - [ ] Track info and cover art display while playing - [ ] Play queue is functional (add, remove, reorder, clear) - [ ] Shuffle and repeat modes work - [ ] Player persists across page navigation - [ ] Playing a track from the library browser works seamlessly ### Dependencies - Issue #10 (Elm frontend) - Issue #22 (music serving — or alternatively, serve files directly from the Actix backend)
connor added the MediumPriority label 2026-03-19 12:29:52 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Shanty/Main#23