Persoenliche Mediazentrale
undisclosed
2023-01-05 1ff360777df36ba9980000823e1131d3e05fdeb7
Baustelle begonnen: StreamHandler
2 files modified
1 files added
72 ■■■■■ changed files
src/de/uhilger/tango/api/ListFileHandler.java 41 ●●●●● patch | view | raw | blame | history
src/de/uhilger/tango/api/MediaSteuerung.java 9 ●●●●● patch | view | raw | blame | history
src/de/uhilger/tango/api/StreamHandler.java 22 ●●●●● patch | view | raw | blame | history
src/de/uhilger/tango/api/ListFileHandler.java
@@ -43,8 +43,45 @@
import org.farng.mp3.id3.ID3v1;
/**
 *
 * @author ulrich
 * Die Klasse ListFileHandler gibt die Media-Inhalte eines Ablageortes
 * als Liste aus. Audio-Inhalte werden dabei unter Verwendung von
 * Informationen aus ID3-Tags dargestellt, z.B. Artist, Album, Titel,
 * sofern solche vorhanden sind. Zudem werden nur diejenigen Inahlte
 * ausgegeben, die Dateierweiterungen besitzen, wie sie in der FileStorage
 * unter 'Einstellung' unter audioexts, videoexts und imageexts angegeben
 * sind (die Namen der Einstellungen sind ueber das Resource Bundle von
 * Tango ueber RB_AUDIOEXTS, RB_VIDEOEXTS und RB_FOTOEXTS veraenderbar).
 *
 * Ein ListFileHandler gibt dann fuer Ordner den Inhalt als Liste aus und
 * Streamt den Inhalt von Dateien.
 *
 * Der ListFileHandler modelliert das Verhalten, das auf der Bedienoberflaeche
 * von Tango in der Konfiguration als 'Kataloge' angelegt werden kann. Die
 * HTTP Servicepunkte ergeben sich aus den Ablageort-Objekten die fuer
 * Kataloge vom Benutzer in der Konfiguration angelegt werden.
 *
 * Der vom Benutzer gewaehlte URL eines Ablagortes wird vom ListFileHandler zu
 * dem Pfad des Ablageortes hin verknuepft. So ergibt sich fuer jeden
 * ListFileHandler der Endpunkt
 *
 * HTTP GET http://mein-server/tango/[Ablageort-URL]/
 *
 * Ist z.B. Audio und Video unter dem Pfad /media/extssd/mc abgelegt, kann
 * ein Ablageort namens 'AV' den URL /media fuer diesen Pfad definieren. Dann verweist
 *
 * http://mein-server/tango/media/
 *
 * auf den Inhalt unter /media/extssd/mc
 *
 * Hierbei wird der Inhalt unter dem Katalognamen 'AV' in der Bedienoberflaeche von
 * Tango dargestellt, d.h., die Auswahl von 'AV' an der Bedienoberflaeche bewirkt
 * 'unter der Haube' den Abruf von http://mein-server/tango/media/
 *
 * Selbstverstaendlich kann aber dieser URL auch von ueberallher verwendet werden.
 * Die Verknuepfung zwischen Katalogname und URL besteht nur an der Bedienoberflaeche
 * von Tango.
 *
 * @author Ulrich Hilger
 */
public class ListFileHandler extends FileHandler {
  
src/de/uhilger/tango/api/MediaSteuerung.java
@@ -58,6 +58,15 @@
 * Faustregel: Anzahl Elemente eines URL plus 1 ist die Anzahl der Elemente des 
 * Ergebnisses von String.split.
 *
 * Mit der Funktion ende liefert die MediaSteuerung die Moeglichkeit, Titel aus
 * einer Abspielliste gesteuert von Tango abzuspielen. Die Nutzung der Funktion wird
 * ausgeloest vom Aufruf an abspieler/play/liste/[name]. Tango erwartet dann von einem
 * Abspieler die Rueckmeldung, dass dieser den zuletzt von Tango an den
 * Abspieler zum Abspielen uebermittelten Titel zuende abgespielt hat. Tango
 * uebergibt dem Abspieler dann den naechsten Titel, bis die Abspielliste zuende ist.
 *
 * Diese Form unterscheidet sich vom Abspielen einer Abspielliste als einzelner
 * Stream, wie es vom StreamHandler realisiert wird.
 *
 * @author Ulrich Hilger
 * @version 1, 9.4.2021
src/de/uhilger/tango/api/StreamHandler.java
New file
@@ -0,0 +1,22 @@
package de.uhilger.tango.api;
/**
 * Der StreamHandler liefert ganze Abspiellisten als einzelnen Stream aus.
 * Die in Tango mit dem ListHandler erstellen Abspiellisten werden als ein
 * zusammenhaengender Stream ausgegeben.
 *
 * HTTP GET /tango/api/stream/play/liste/[name]
 *
 * HTTP GET /tango/api/stream/pause/liste/[name]
 * HTTP GET /tango/api/stream/stop/liste/[name]
 * HTTP GET /tango/api/stream/seek/liste/[name]/[sekunden]
 *
 * Die Funktionen des StreamHandlers ergaenzen so die Ausgabe
 * einzelner Media-Dateien als Stream, wie sie mit dem FileHandler und
 * seinen Subklassen sowie mit der MediaSteuerung erfolgen.
 *
 * @author Ulrich Hilger
 */
public class StreamHandler {
}