From 1ff360777df36ba9980000823e1131d3e05fdeb7 Mon Sep 17 00:00:00 2001 From: undisclosed Date: Thu, 05 Jan 2023 17:47:11 +0000 Subject: [PATCH] Baustelle begonnen: StreamHandler --- src/de/uhilger/tango/api/MediaSteuerung.java | 9 ++++ src/de/uhilger/tango/api/StreamHandler.java | 22 +++++++++++ src/de/uhilger/tango/api/ListFileHandler.java | 41 +++++++++++++++++++- 3 files changed, 70 insertions(+), 2 deletions(-) diff --git a/src/de/uhilger/tango/api/ListFileHandler.java b/src/de/uhilger/tango/api/ListFileHandler.java index 2a3b45c..ed3e0fe 100644 --- a/src/de/uhilger/tango/api/ListFileHandler.java +++ b/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 { diff --git a/src/de/uhilger/tango/api/MediaSteuerung.java b/src/de/uhilger/tango/api/MediaSteuerung.java index 441eba7..7c0c3bd 100644 --- a/src/de/uhilger/tango/api/MediaSteuerung.java +++ b/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 diff --git a/src/de/uhilger/tango/api/StreamHandler.java b/src/de/uhilger/tango/api/StreamHandler.java new file mode 100644 index 0000000..d19a82c --- /dev/null +++ b/src/de/uhilger/tango/api/StreamHandler.java @@ -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 { + +} -- Gitblit v1.9.3