Wie kann ich die Metadaten und den Track von einem Shoutcast-Stream trennen, ohne separate Anforderungen für Metadaten und das Streaming zu stellen?

8

Ich habe eine Radio-App gemacht, die perfekt funktioniert. Ich kann den Radio-Stream abspielen und die Metadaten auch abrufen. Der Streaming-Dienst ist von Shoutcast.

Das einzige Problem ist, dass ich die URL als Datenquelle zum Media Player hinzufüge und dann den Titel und den Künstler alle 5 Sekunden abrufe.

Gibt es eine Möglichkeit, ich kann nur eine HTTP-Anfrage machen und dann das Audio und die Metadaten aufteilen und dann an den Media Player senden?

Code zum Abrufen von Metadaten.

%Vor%

Und übergibt die URL an die Datenquelle des Media Players

%Vor%     
Searock 31.05.2016, 19:58
quelle

1 Antwort

1

Die Aufgabe, die Sie zu erreichen versuchen, ist nicht einfach. (Das ist nicht unmöglich.) Die Metadaten des Streams werden nur beim Start des Streams "heruntergeladen", so dass ein späteres Ändern der Metainformationen "zwischengespeichert" aus dem Stream keinen Effekt hätte. Um die neuen Eigenschaften zu lesen, müssen Sie den Stream neu starten, dies wird die neuen Header usw. holen (aber es könnte eine Unterbrechung im Stream verursachen, so dass es nicht wirklich empfohlen wird.)

In der Sound-Technologie ist es üblich, Wasserzeichen zu verwenden. Es ist ein Prozess, bei dem Sie Ihren Sound mit einer Art von Daten auf nicht zerstörende Art und Weise anreichern. ( Verwendung auf youtube. ) Es ist schwer zu tun, es gibt einige Möglichkeiten, um Ihre Informationen im Stream zu verstecken. Ich empfehle, dies zu lesen das Ziel, das du erreichen willst.

Da Ihre Hardware ein Mobiltelefon ist und nicht alle Android-Geräte stark genug sind, sollten Sie einige neue http-Anfragen berücksichtigen. Die Audioverarbeitung ist keine billige Sache, die hinsichtlich CPU, Speicher usw. spricht. Es gibt einige andere Optionen, die in Betracht gezogen werden sollten, wenn Sie dies tun. Die fünf Sekunden Abfrage ist nicht der beste Weg, um die Informationen zu erhalten, weil Sie falsche Informationen für den Benutzer anzeigen können und falsche Informationen schlechter als nichts sind. Ich empfehle einen serverseitigen Push basierend auf mqtt. Hier ist ein schönes Beispiel für die Verwendung. Eine Lösung, die auf dieser Methode basiert, verwendet weniger Verkehr und ist genauer.

    
Mark 16.06.2016 07:29
quelle