2 Stimmen

MP3-ID3-Metadaten und Songdauer mit AudioStreamer abrufen

Ich benutze AudioStreamer von Matt Gallagher um MP3s über HTTP abzuspielen. Ich muss die Dauer des Liedes und die ID3-Tags kennen.

Ist es möglich, dies in den AudioStreamer zu implementieren, und wie?

2voto

coneybeare Punkte 32926

Von seinem Dokumente :

Begrenzter Anwendungsbereich

O geklärt werden, bevor ich fortfahre: diese Klasse ist für Audio-Streaming gedacht. Mit Streaming meine ich nicht einfach "eine Audiodatei, die über HTTP übertragen wird". Stattdessen meine ich eine kontinuierliche HTTP Quelle ohne Ende, die sich die unendlich weiterläuft (wie ein Radiosender, nicht einen einzelnen Song).

Dies scheint darauf hinzudeuten, dass es schwierig sein könnte, die Dauer zu erhalten.

Hier erfahren Sie, wie Sie die ID3v2-Tags erhalten:

Metadaten abrufen

T Metadaten stammt aus den HTTP-Headern. Innerhalb der handleReadFromStream:eventType: Methode, verwenden Sie CFReadStreamCopyProperty um die kCFStreamPropertyHTTPResponseHeader Eigenschaft aus der CFReadStreamRef zu kopieren, dann können Sie mit CFHTTPMessageCopyAllHeaderFields verwenden, um die Header-Felder aus der Antwort Antwort zu kopieren. Für viele Audio-Streaming Servern ist der Streamname eines dieser dieser Felder.

Das wesentlich schwierigere s Metadaten sind die ID3-Tags. [ ] immer am Ende der Datei (und ist daher beim Streaming nutzlos). ID3v2 ist befindet sich am Anfang und kann daher besser zugänglicher.

Ich habe nie die I s [ ] irgendwo zwischenspeichern, wenn sie geladen wird, und diesen Zwischenspeicher öffnen mit AudioFileOpenWithCallbacks öffnen und dann den kAudioFilePropertyID3Tag lesen mit AudioFileGetProperty können Sie können Sie die ID3-Daten lesen (falls sie existieren). Wie ich schon sagte: Ich habe das noch nie gemacht, also weiß ich nicht sicher wissen, dass es funktionieren würde.

1voto

Mikepote Punkte 5657

MP3-Datenströme sind in "Frames" unterteilt, die einzelne Dateneinheiten darstellen. Einige Streams fügen alle paar Frames einen ID3-Metadatenblock hinzu, den Sie theoretisch suchen und lesen könnten.

Für weitere Informationen siehe hier: http://jicyshout.sourceforge.net/oreilly-article/java-streaming-mp3-pt2/java-streaming-mp3-pt2.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X