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?
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?
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.
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 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.