Eine Bedienoberfläche für Webradio
Diese Anwendung ist zur Zeit im Bau. Der aktuelle Prototyp zum Stand des Codes in diesem Repository ist hier zu sehen: Link zum Prototyp.
Das radio-ui zeigt eine Übersicht von Radiosendern. Antippen eines Senders in der Übersicht spielt den Sender ab.
Radiosender können hinzugefügt, geändert und gelöscht werden. Ein Suchfeld ermöglicht das Einschränken der Übersicht auf bestimmte Sender.
Das Abspiel-Ziel ist konfigurierbar: Ein Radionsender kann entweder auf dem Gerät abgespielt werden, auf dem das radio-ui im Browser läuft oder auf einem anderen Gerät wie z.B. einem Raspberry Pi.
Zum Abspielen auf einem Raspberry Pi ist die Nutzung der Anwendung pirc vorgesehen, die zum Spielen von Audiostreams den omxplayer mit einer unter Tomcat laufenden Fernbedienung kombiniert, die per HTTP gesteuert werden kann.
Die Anwendung radio-ui ist ein Beispiel für die Nutzung von Vorlagen in Webanwendungen. Die Datei index.html
definiert Bereiche einer HTML-Seite als div
-Elemente, die während der Ausführung des Programmes dynamisch mit wechselnden Inhalten gefüllt werden.
Inhalte werden dabei mit Hilfe von Mustache aus einer Vorlage und einer Inhaltsbeschreibung in JSON zu HTML zusammengesetzt.
Zur Verwendung des radio-ui sind die folgenden Komponenten erforderlich
Diese sind in der Datei index.html
über die folgenden Einträge eingebunden.
<link rel="stylesheet" type="text/css" href="../jslib/app-menu/nav-toggle.css">
<link rel="stylesheet" type="text/css" href="../jslib/app-menu/app-menu.css">
<script src="../jslib/jquery-1.11.1/jquery-1.11.1.min.js"></script>
<script src="../jslib/mustache/mustache.min.js"></script>
<script src="../jslib/app-menu/app-menu.js"></script>
Sollen einzelne Komponenten von einem anderen Ort wie beispielsweise einem Content Delivery Network (CDN) eingebunden werden, müssen nur die obigen Einträge entsprechend angepasst werden.
Zur Verwendung des radio-ui mit pirc kann die Anwendung radio-ui direkt auf einen Raspberry Pi installiert werden, beispielsweise ähnlich wie pirc als Webanwendung für Tomcat. Stattdessen kann radio-ui auch von einer anderen Maschine aus die pirc-Instanz auf einen Raspberry Pi aufrufen.
Auch eine direkte Steuerung des omxplay aus radio-ui heraus ist denkbar. Das wäre allerdings eine Doppelung der meisten der in pirc bereits enthaltenen Funktionen. Zudem würde die engere Koppelung zwischen Pi und radio-ui die Verwendbarkeit des radio-ui einschränken.
Kommandos an pirc werden via HTTP an die betreffende Maschine gesendet und bestehen aus einem Klassennamen c
, einem Methodennamen m
und einem Parameter p
. Ein Kommando setzt sich wie folgt zusammen
http://raspi:8080/
- URL der Maschinepirc/
- Name des Kontext, unter dem die Anwendung pirc läuftsys/rpc
- Service-Endpunkt der pirc-APIc=de.uhilger.pirc.App
- Name der Klasse von pirc, die die Abspielmethode enthältm=abspielen
- Name der Methode zum Abspielenp=Sender-URL
- der Parameter mit dem URL zum Audiostream des WebradiosendersZum Aufruf des Kommandos mit dem radio-ui kann es weitgehend unverändert bleiben. Nur der Teil 6. mit dem URL des Senders muss veränderlich gestaltet sein.
Ist die Fernbedienung pirc auf einem Raspberry Pi installiert, lautet das Kommando zum Abspielen des Webradiosenders radiobob (vgl. Senderliste weiter unten) wie folgt
http://raspi:8080/pirc/sys/rpc?c=de.uhilger.pirc.App&m=abspielen&p=http://bob.hoerradar.de/radiobob-live-mp3-hq
Das obige Kommando geht davon aus, dass der betreffende Raspberry Pi unter dem Namen raspi
auf Port 8080
über HTTP
erreichbar ist und dass auf dem Pi die Anwendung pirc unter dem Kontextnamen pirc
installiert wurde. Es bewirkt, dass auf dem betreffenden Raspberry Pi eine Instanz des omxplayer gestartet wird und diese fortlaufend den Webradio-Stream unter der angegebenen Adresse abspielt.
Zum Stoppen des zur Zeit abgespielten Webradios dient das folgende Kommando
http://raspi:8080/sys/rpc?c=de.uhilger.pirc.App&m=kommando&p=q
Mit dem obigen Aufruf wird das Kommando q
an den laufenden Prozess des omxplayer gesendet. Das bewirkt, dass der omxplayer das Abspielen stoppt und der laufende omxplayer-Prozess endet.
Nachfolgend die Adressen einiger Radiostreams
128 kbit http://hr-hrinfo-live.cast.addradio.de/hr/hrinfo/live/mp3/128/stream.mp3
48 kbit http://hr-hr3-live.cast.addradio.de/hr/hr3/live/mp3/48/stream.mp3
128 kBit/s http://hr-hrinfo-live.cast.addradio.de/hr/hrinfo/live/mp3/128/stream.mp3
48 kBit/s http://hr-hrinfo-live.cast.addradio.de/hr/hrinfo/live/mp3/48/stream.mp3
MP3: http://bob.hoerradar.de/radiobob-live-mp3-hq
Mobile Nutzung: http://bob.hoerradar.de/aac-radiobob