Radioplayer-with-Presets/readme.md
2025-12-18 22:16:32 +01:00

51 lines
No EOL
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📻 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!*