71 lines
2.3 KiB
Markdown
71 lines
2.3 KiB
Markdown
# rkt-web-player
|
|
|
|
Een audioplayer met webinterface, gebouwd op de bestaande Racket-pakketten:
|
|
|
|
- `racket-audio` voor lokale weergave en metadata;
|
|
- `racket-upnp` en `racket-sonos` voor ontdekking van netwerkspelers;
|
|
- `racket-audio-dlna` voor het publiceren en afspelen van lokale bestanden;
|
|
- `racket-mimetypes`, `simple-ini` en `simple-log` voor ondersteunende taken.
|
|
|
|
## Starten
|
|
|
|
De gekoppelde ontwikkelpackages kunnen direct worden gebruikt:
|
|
|
|
```console
|
|
racket main.rkt D:\Muziek
|
|
```
|
|
|
|
Standaard opent de speler `http://127.0.0.1:8080/`. Iedere opgegeven map wordt
|
|
een afzonderlijke muziekbibliotheek. Bij het starten wordt alleen de inhoud van
|
|
de eerste rootmap gelezen; er vindt geen recursieve bibliotheekscan plaats.
|
|
|
|
```console
|
|
racket main.rkt --port 8090 --no-browser D:\Muziek D:\Podcasts
|
|
```
|
|
|
|
Met een klein INI-bestand zijn vaste defaults mogelijk:
|
|
|
|
```ini
|
|
[server]
|
|
listen-ip=127.0.0.1
|
|
port=8080
|
|
|
|
[player]
|
|
dlna-port=8734
|
|
|
|
[library]
|
|
paths=D:\Muziek;D:\Podcasts
|
|
```
|
|
|
|
Start dat bestand met `racket main.rkt --config rkt-web-player.ini`. Meerdere
|
|
bibliotheekpaden worden met een puntkomma gescheiden.
|
|
|
|
## Werking
|
|
|
|
De interface volgt de informatiearchitectuur van `rktplayer`, maar is
|
|
responsive en geschikt voor muis, toetsenbord en touch. Links staat de lazy
|
|
mappenbrowser met trackinformatie; rechts staan playlisttabs en de huidige
|
|
playlist. Een map wordt pas recursief gelezen wanneer die met **afspelen** of
|
|
**toevoegen** wordt gekozen. Trackmetadata wordt eveneens pas op dat moment
|
|
geladen.
|
|
|
|
De webinterface praat met een kleine JSON-API onder `/api`. Lokale weergave
|
|
wordt pas geïnitialiseerd bij het eerste afspeelcommando. De knop naast de
|
|
uitvoerkeuze start UPnP-discovery; gevonden Sonos-zones worden als logische
|
|
groepen aangeboden en niet nogmaals als losse UPnP-renderers.
|
|
|
|
Playlisttabs kunnen worden toegevoegd, geselecteerd, hernoemd door dubbel te
|
|
klikken en verwijderd. Tracks kunnen worden afgespeeld, verwijderd en met
|
|
drag-and-drop verplaatst. De tabs zijn in deze versie alleen in het geheugen
|
|
aanwezig en worden niet na een herstart hersteld.
|
|
|
|
De server luistert standaard alleen op localhost. Geef alleen bewust een
|
|
LAN-adres aan `--listen-ip`; de huidige opzet bevat geen authenticatie.
|
|
|
|
## Controleren
|
|
|
|
```console
|
|
raco test --drdr private/library.rkt private/player.rkt
|
|
raco setup --check-pkg-deps rkt-web-player
|
|
```
|