51 lines
No EOL
3.2 KiB
Markdown
51 lines
No EOL
3.2 KiB
Markdown
# 📻 Radioplayer mit Presets
|
||
|
||
Ein moderner, leichtgewichtiger Internetradio-Player zum Selber-Hosten. Der Player ist modular aufgebaut, responsiv und bietet volle Kontrolle über deine Senderliste.
|
||
|
||
## ✨ Features
|
||
|
||
- **Läuft auch auf Servern ohne PHP:** Es ist nur HTML und JavaScript nötig.
|
||
- **Individuelle Presets:** Sender können einfach hinzugefügt, bearbeitet, gelöscht und per Drag & Drop sortiert werden.
|
||
- **Metadaten-Anzeige:** Automatische Anzeige von Sendername und aktuellem Song (erfordert PHP-Unterstützung für den Proxy).
|
||
- **Flexibler Import/Export:** Sichere deine Senderliste als JSON-Datei oder teile sie über einen kompakten URL-String.
|
||
- **Sleeptimer:** Praktische Abschaltautomatik mit Live-Restzeitanzeige auf dem Button.
|
||
- **Local Storage:** Deine Einstellungen werden direkt im Browser gespeichert – kein Datenbank-Setup nötig und Multi-User tauglich.
|
||
- **Modularer Code:** Sauber getrennte Logik für UI, Presets, Metadaten und Player.
|
||
|
||
## 🛠 Installation
|
||
|
||
1. Lade alle Dateien herunter und kopiere sie auf deinen Webserver.
|
||
2. Falls du die Titelanzeige (Metadaten) nutzen möchtest, muss dein Server **PHP** unterstützen.
|
||
3. **Keine Datenbank nötig:** Beim ersten Aufruf ist die Senderliste leer. Du kannst deine Sender einfach über "Presets bearbeiten" hinzufügen oder einen Export-String importieren.
|
||
|
||
## 📂 Dateistruktur & Module
|
||
|
||
Um den Code wartungsfreundlich zu halten, ist das Projekt modular aufgebaut:
|
||
|
||
- `index.html`: Das Grundgerüst und das User-Interface.
|
||
- `main.js`: Die Schaltzentrale (Orchestrierung von Player und Events).
|
||
- `ui-helper.js`: Zentrale Steuerung für Modals (Fenster) und allgemeine UI-Elemente.
|
||
- `preset-manager.js`: Logik für das Speichern, Laden und Komprimieren der Senderliste.
|
||
- `preset-ui.js`: Verwaltung der Bearbeitungs-Tabelle und der Export-Funktionen.
|
||
- `sleeptimer.js`: Logik für die automatische Abschaltung und das Update der Zeitanzeige.
|
||
- `meta-handler.js`: Kommuniziert mit dem PHP-Proxy für Song-Metadaten.
|
||
- `metadata.php`: Der PHP-Backend-Proxy zum Abrufen von ICY-Metadaten der Streams.
|
||
|
||
## 🚀 Nutzung
|
||
|
||
- **Sender hinzufügen:** Über "Presets bearbeiten" kannst du eigene Namen und Stream-URLs eintragen.
|
||
- **Sortieren:** Nutze das ☰-Symbol in der Liste, um die Reihenfolge per Drag & Drop zu ändern.
|
||
- **Teilen:** Kopiere den Share-Link im Bearbeitungs-Fenster, um deine Liste auf einem anderen Gerät (z.B. Handy) zu öffnen.
|
||
|
||
## 🔍 Fehlerbehebung (Troubleshooting)
|
||
- **Keine Titelanzeige:** Überprüfe, ob die `metadata.php` erreichbar ist und die PHP-Erweiterung `CURL` aktiviert ist.
|
||
- **Presets werden nicht gespeichert:** Stelle sicher, dass "Local Storage" im Browser aktiviert ist.
|
||
- **Stream spielt nicht ab:** Achte auf "Mixed Content". Wenn deine Seite über `https` läuft, sollten auch die Stream-URLs mit `https://` beginnen.
|
||
- **Symbole fehlen:** Das Projekt nutzt FontAwesome. Stelle sicher, dass eine aktive Internetverbindung besteht, um die Icons vom CDN zu laden.
|
||
|
||
## ⚖️ Lizenz
|
||
Unlicense ([Siehe LICENSE](https://codeberg.org/simonpipe/Radioplayer-with-Presets/src/branch/main/LICENSE))
|
||
Unlicense (<a href="https://codeberg.org/simonpipe/Radioplayer-with-Presets/src/branch/main/LICENSE">Siehe LINCENSE</a>)
|
||
|
||
---
|
||
*Viel Spass beim Radiohören!* |