| | |
| | | |
| | | Eine Bedienoberfläche für Webradio |
| | | |
| | | ## Prototyp |
| | | |
| | | ## Radiostreams |
| | | Diese Anwendung ist zur Zeit im Bau. Der aktuelle Prototyp zum Stand des Codes in diesem Repository ist hier zu sehen: [Link zum Prototyp](/data/ulrich/test/radio-ui). |
| | | |
| | | Nachfolgend die Adressen einiger Radiostreams |
| | | ## Vorgesehene Funktionen |
| | | |
| | | ### hr3 |
| | | Das radio-ui zeigt eine Übersicht von Radiosendern. Antippen eines Senders in der Übersicht spielt den [Livestream](/gitblit/doc/web!radio-ui.git/master/radiostreams.md) des Senders ab. |
| | | |
| | | [Livestream-Übersicht](http://www.hr3.de/service/hr3-online-hoeren,webradio-100.html) |
| | | Radiosender können hinzugefügt, geändert und gelöscht werden. Ein Suchfeld ermöglicht das Einschränken der Übersicht auf bestimmte Sender. |
| | | |
| | | MP3-Stream (128 kbit): http://metafiles.gl-systemhaus.de/hr/hr3_2.m3u |
| | | 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](/gitblit/doc/web!radio-ui.git/master/pirc.md). |
| | | |
| | | MP3-Stream (48 kbit): http://metafiles.gl-systemhaus.de/hr/hr3_1.m3u |
| | | ## Beispielcharakter |
| | | |
| | | ### hr info |
| | | Neben dem praktischen Nutzen veranschaulicht das radio-ui verschiedene Aspekte des Baus von Webanwendungen: |
| | | |
| | | [Livestream-Übersicht](http://www.hr-inforadio.de/livestream/index.html) |
| | | + app-layout |
| | | + Vorlagen |
| | | + app-menu |
| | | + CRUD-Muster (Create, Read, Update, Delete) |
| | | |
| | | MP3-Stream (128 kBit/s) |
| | | http://metafiles.gl-systemhaus.de/hr/hrinfo_2.m3u |
| | | Wie in der Anwendung radio-ui die obigen Themen umgesetzt sind, ist auf der [Beispielseite](/gitblit/doc/web!radio-ui.git/master/beispiel.md) näher betrachtet. |
| | | |
| | | MP3-Stream (48 kBit/s) |
| | | http://metafiles.gl-systemhaus.de/hr/hrinfo_1.m3u |
| | | (für mobile Anwendungen empfohlen) |
| | | ## Abhängigkeiten |
| | | |
| | | ### radiobob |
| | | Zur Verwendung des radio-ui sind die folgenden Komponenten erforderlich |
| | | |
| | | [Livestream-Übersicht](http://www.radiobob.de/radiobob/empfang/livestream) |
| | | + [jQuery](http://jquery.com/) |
| | | + [Mustache](https://github.com/janl/mustache.js) |
| | | + [app-menu](/gitblit/docs/web!app-menu.git) |
| | | |
| | | MP3: http://streams.radiobob.de/bob-live/mp3-192/mediaplayer |
| | | Diese sind in der Datei `index.html` über die folgenden Einträge eingebunden. |
| | | |
| | | Mobile Nutzung: http://streams.radiobob.de/bob-live/aac-64/mediaplayer |
| | | ```` |
| | | <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> |
| | | ```` |
| | | |
| | | ### FFH |
| | | 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. |
| | | |
| | | [Livestream-Übersicht](https://www.ffh.de/musik/webradios/stream-adressen.html) |
| | | ## Zusammenspiel mit dem Raspberry Pi |
| | | |
| | | Zum Abspielen auf einem Raspberry Pi ist die Nutzung der Anwendung [pirc](/gitblit/docs/pirc.git) vorgesehen, die zum Spielen von Audiostreams den [omxplayer](https://elinux.org/Omxplayer) mit einer unter [Tomcat](https://de.wikipedia.org/wiki/Apache_Tomcat) laufenden Fernbedienung kombiniert, die per HTTP gesteuert werden kann. |
| | | |
| | | 128kbps |
| | | Auf der Seite [Kombination von pirc und radio-ui](/gitblit/doc/web!radio-ui.git/master/pirc.md) ist beschrieben, wie pirc aus dem radio-ui heraus genutzt werden kann. |
| | | |
| | | http://streams.ffh.de/radioffh/mp3/hqlivestream.m3u |
| | | ## Noch zu erledigen |
| | | |
| | | http://mp3.ffh.de/radioffh/hqlivestream.mp3 |
| | | ### Templates für Mustache dynamisch laden |
| | | |
| | | Spart Ladezeit zu Beginn. Lösungsansatz: Eine Funktion, die als Parameter das Element erhält, dessen html mit dem gerenderten Template ersetzt werden soll und den zu rendernden Inhalt. Die dynamische Ladefunktion |
| | | |
| | | 48kbps |
| | | 1. prüft, ob das Template schon im cache ist |
| | | 1. Lädt das Template, wenn nicht |
| | | 1. wartet, bis das Template geladen ist |
| | | 1. rendert das Template mit dem übergebenen Inhalt |
| | | 1. schreibt das Ergebnis ins html des übergebenen Elements |
| | | |
| | | http://streams.ffh.de/radioffh/aac/livestream.m3u |
| | | Der letzte Teil des Ablaufs muss asynchron gefasst sein, damit auf das Laden gewartet werden kann. |
| | | |
| | | http://mp3.ffh.de/radioffh/livestream.aac |
| | | ## Schnittstellenbeschreibung |
| | | |
| | | Für den Prototyp des radio-ui können verschiedene Arten des Umgangs mit Sendern und Abspielern hergestellt werden. Die folgenden Angaben zeigen die Punkte auf, an denen eine konkrete Implementierung ansetzen kann. |
| | | |
| | | ### Sender |
| | | |
| | | #### Senderliste lesen |
| | | |
| | | Aufruf |
| | | |
| | | ```` |
| | | data/sender.json |
| | | ```` |
| | | |
| | | Antwort |
| | | |
| | | ```` |
| | | { |
| | | "senderliste": { |
| | | "titel": "Senderliste", |
| | | "inhalt": [ |
| | | { |
| | | "senderid": 1, |
| | | "sendername": "hr info", |
| | | "senderurl": "http://hr-hrinfo-live.cast.addradio.de/hr/hrinfo/live/mp3/128/stream.mp3", |
| | | "senderlogo": "../bilder/hr-info.png" |
| | | }, |
| | | { |
| | | "senderid": 2, |
| | | "sendername": "radiobob", |
| | | "senderurl": "http://bob.hoerradar.de/radiobob-live-mp3-hq", |
| | | "senderlogo": "../bilder/radio-bob-logo-80.png" |
| | | }, |
| | | usw. |
| | | ] |
| | | } |
| | | } |
| | | ```` |
| | | |
| | | #### Neuen Sender speichern |
| | | |
| | | Noch nicht realisiert. |
| | | |
| | | #### Änderungen an einem Sender speichern |
| | | |
| | | Noch nicht realisiert. |
| | | |
| | | #### Sender löschen |
| | | |
| | | Noch nicht realisiert. |
| | | |
| | | ### Abspieler |
| | | |
| | | #### Abspielerliste lesen |
| | | |
| | | Aufruf |
| | | |
| | | ```` |
| | | data/abspieler.json |
| | | ```` |
| | | |
| | | Antwort |
| | | |
| | | ```` |
| | | { |
| | | "abspielerliste": { |
| | | "titel": "Abspielerliste", |
| | | "inhalt": [ |
| | | { |
| | | "abspielerid": 1, |
| | | "abspielername": "dieses Gerät", |
| | | "abspielerurl": "", |
| | | "abspielertyp":"lokal", |
| | | "abspielerbild": "", |
| | | "abspielerzustand":"" |
| | | }, |
| | | { |
| | | "abspielerid": 2, |
| | | "abspielername": "Raspberry Pi Wohnzimmer", |
| | | "abspielerurl": "", |
| | | "abspielertyp":"pirc", |
| | | "abspielerbild": "", |
| | | "abspielerzustand":"selected" |
| | | }, |
| | | usw. |
| | | ] |
| | | } |
| | | } |
| | | ```` |
| | | |
| | | #### Neuen Abspieler speichern |
| | | |
| | | Noch nicht realisiert. |
| | | |
| | | #### Änderungen an einem Abspieler speichern |
| | | |
| | | Noch nicht realisiert. |
| | | |
| | | #### Abspieler löschen |
| | | |
| | | Noch nicht realisiert. |