Gibt es etwas in der Android-Architektur oder -API, das Benutzer daran hindert, MP3-Player zu erstellen, die eingebettete Liedtexte lesen?

StackOverflow https://stackoverflow.com/questions/4271099

  •  28-09-2019
  •  | 
  •  

Frage

Wenn ich bestimmte MP3-Dateien abspiele (z. B. Lektionen von JapanesePod101.com) auf meinem iPod Touch werden Liedtexte oder Transkripte, die in den MP3-Dateien eingebettet sind, im Mediaplayer angezeigt.Ich glaube, die Liedtexte sind als ID3/ID4-Tags in den MP3-Metadaten gespeichert.

Ich finde, dass dies eine äußerst nützliche Funktion ist, und ich glaube, ich bin nicht allein.Trotzdem scheint dies weder der Standard-Android-Mediaplayer noch ein anderer Mediaplayer, den ich vom Market heruntergeladen habe, zu unterstützen.Ich konnte einfach keine Möglichkeit finden, die Funktion auf meinem Nexus One zu nutzen.

Diese Funktion ist für mich so wichtig, dass ich darüber nachdenke, die Android-Entwicklung zu erlernen, damit ich einen einfachen Mediaplayer schreiben kann, der eingebettete Liedtexte oder Notizen anzeigt.Die Tatsache, dass dies jedoch niemand sonst getan zu haben scheint, lässt mich fragen: Ist das überhaupt möglich? Gibt es etwas in der Android-Architektur oder den APIs, das das Lesen und Anzeigen von Liedtextinformationen aus MP3-Dateien erschwert oder unmöglich macht? Ich möchte nicht tief in den Lernprozess vertiefen und herausfinden, dass das, was ich anstrebe, nicht einfach zu erreichen ist.(Ich meine, wenn alles andere fehlschlägt, gehe ich davon aus, dass ich meinen eigenen MP3-Decoder schreiben könnte, aber das ist mehr Aufwand, als ich im Moment bereit bin, auf mich zu nehmen).

Ich habe diese Frage bereits auf der gestellt Android Enthusiasts Stack Exchange Beta-Site, aber im Nachhinein entschied ich, dass es sich eher um eine Programmierfrage handelte und entschied, dass es besser sei, sie hier zu stellen.

War es hilfreich?

Lösung

Ja, definitiv eher eine Programmierfrage.Aufgrund meiner kurzen Erfahrung beim Durchlesen der ID3-Spezifikation denke ich, dass das Dekodieren von ID3-Tags wahrscheinlich eine völlige PITA ist.Ich bin mir sicher, dass dies möglich ist, da es für Android MP3-Tag-Bearbeitungs-Apps gibt (ob sie Liedtexte unterstützen oder nicht, weiß ich nicht).

ID3v2.3 scheint über die SYLT- und USLT-Frames des Headers sowohl synchronisierte als auch nicht synchronisierte Liedtexte zu unterstützen.Ich kann mir vorstellen, dass es sich um eine so wenig genutzte Funktion handelt, dass sich die Mühe für die meisten nicht lohnt.Gekaufte MP3s enthalten diese Informationen nicht (ich habe mich immer gefragt, warum nicht?), daher müssten sie manuell hinzugefügt werden (oder automatisch über eine Lyric-Service-API, aber das erfordert viel mehr Codierung).

Hier ist die ID3v2.3-Spezifikation, falls Sie sich näher damit befassen möchten ... (Alle, die hier eintreten, geben die Hoffnung auf)

Andere Tipps

Das Problem könnte sein, dass die meisten Leute die eingebauten MP3-Wiedergabemechanismen verwenden würden, und diese unterstützen möglicherweise weder die Liedtextanzeige noch lassen sie sich sehr einfach mit etwas anderem synchronisieren, das die Liedtextanzeige übernimmt.

Es kann also sein, dass etwas geschrieben werden muss, das die MP3-Dekodierung selbst durchführt.

Höchstwahrscheinlich würde dies in nativem Code erfolgen wollen.Auf Android hingegen muss die Audioausgabe (und, sofern Sie OpenGL nicht verwenden, die Videoanzeige) weitgehend über Java erfolgen.Es ist also ziemlich viel Arbeit, Daten mit einer nativen Bibliothek zu dekodieren und sie dann zur Wiedergabe und Anzeige aus Java zu versenden.

Um Ihre Frage zu beantworten: Ist das möglich?Definitiv

Wird es durch die Android-APIs einfacher gemacht?- nicht wirklich

Ich habe gerade eine neue Funktionsanfrage hinzugefügt, die Android Unterstützung für das Lesen von USLT im ID3-Tag geben würde.Dadurch können native Musikplayer und Musikplayer von Drittanbietern Liedtexte anzeigen.Wenn Sie diese Funktion wünschen, markieren Sie bitte die Anfrage unten und posten Sie Ihre Kommentare.

http://code.google.com/p/android/issues/detail?id=32547

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top