Informationen aus mp3-Song

Status
Nicht offen für weitere Antworten.

leni

Aktives Mitglied
hi,

Ist es möglich aus einem mp3-Song Informationen wie Genre, Albumname, Titel, Artist herauszuholen?

mfg
leni
 

Leroy42

Top Contributor
Wenn diese Informationen dort vorhanden sind, sicher!

Google doch einfach mal nach der Spezifikation des Formats mp3.

Oder es gibt schon was fertiges in Java.
 

Illuvatar

Top Contributor
Da gibts einige Libs, aber imo keine wirklich gute. Ich bin jetzt bei Jid3 gelandet, das funktioniert im Großen und Ganzen, es werden nur nicht immer alle Tags korrekt gelesen (aber 99%).
Davor hab ich v.a. Java Mp3 probiert, aber das hat kaum Dokumentation und nur eine API-Doc wo fast nichts drinsteht. Auslesen ging dabei gut, Tags schreiben hab ich nicht gebacken gekriegt...
 

leni

Aktives Mitglied
Hi,

danke für die Antworten. Ich wollte jetzt mal Jid3 ausprobieren und habe mir die Sourcen da runtergeladen, leider sind das nur die Sourcen also die einzelnen java-files. Gibts da kein jar-file dazu? - (ich verwende eclipse mit windows)

leni
 

leni

Aktives Mitglied
hi,

ah im dist ordner war das JID3.jar.

Ich habe jetzt folgenden Code mit einem Beispiel-mp3-song ausprobiert:

Code:
public class ID3Test
{
     public static void main(String[] args)throws Exception
    {
        // the file we are going to read
        File oSourceFile = new File("Move_Along.mp3");

        // create an MP3File object representing our chosen file
        MediaFile oMediaFile = new MP3File(oSourceFile);

        // any tags read from the file are returned, in an array, in an order which you should not assume
        ID3Tag[] aoID3Tag = oMediaFile.getTags();
        // let's loop through and see what we've got
        // (NOTE:  we could also use getID3V1Tag() or getID3V2Tag() methods, if we specifically want one or the other)
        for (int i=0; i < aoID3Tag.length; i++)
        {
            // check to see if we read a v1.0 tag, or a v2.3.0 tag (just for example..)
            if (aoID3Tag[i] instanceof ID3V1_0Tag)
            {
                ID3V1_0Tag oID3V1_0Tag = (ID3V1_0Tag)aoID3Tag[i];
                // does this tag happen to contain a title?
                if (oID3V1_0Tag.getTitle() != null)
                {
                    System.out.println("Title = " + oID3V1_0Tag.getTitle());
                }
                else if (oID3V1_0Tag.getAlbum() != null)
                {
                	System.out.println("Album = " + oID3V1_0Tag.getAlbum());
                }
                else if (oID3V1_0Tag.getGenre() != null)
                {
                	System.out.println("Genre = " + oID3V1_0Tag.getGenre());
                }
                else if (oID3V1_0Tag.getArtist() != null)
                {
                	System.out.println("Artist = " + oID3V1_0Tag.getArtist());
                }
                else if (oID3V1_0Tag.getYear() != null)
                {
                	System.out.println("Year = " + oID3V1_0Tag.getYear());
                }
                // etc.
            }
            else if (aoID3Tag[i] instanceof ID3V2_3_0Tag)
            {
                ID3V2_3_0Tag oID3V2_3_0Tag = (ID3V2_3_0Tag)aoID3Tag[i];
                // check if this v2.3.0 frame contains a title, using the actual frame name
                if (oID3V2_3_0Tag.getTIT2TextInformationFrame() != null)
                {
                    System.out.println("Title = " + oID3V2_3_0Tag.getTIT2TextInformationFrame().getTitle());
                }
                else if (oID3V2_3_0Tag.getAlbum() != null)
                {
                    System.out.println("Album = " + oID3V2_3_0Tag.getAlbum());
                }
                else if (oID3V2_3_0Tag.getArtist() != null)
                {
                    System.out.println("Artist = " + oID3V2_3_0Tag.getArtist());
                }
                else if (oID3V2_3_0Tag.getGenre() != null)
                {
                    System.out.println("Genre = " + oID3V2_3_0Tag.getGenre());
                }
               /* else if (oID3V2_3_0Tag.getYear() != null)
                {
                    System.out.println("Year = " + oID3V2_3_0Tag.getYear());
                }*/
                // but check using the convenience method if it has a year set (either way works)
                try
                {
                    System.out.println("Year = " + oID3V2_3_0Tag.getYear());  // reads TYER frame
                }
                catch (ID3Exception e)
                {
                    // error getting year.. if one wasn't set
                    System.out.println("Could get read year from tag: " + e.toString());
                }
                // etc.
            }
        }
    }
 }

Leider gibt der fast keine Informationen aus, obwohl wenn ich nämlich das mp3-file im Windows-MediaPlayer betrachte, dann sind unter den Kategorien Genre, Album, Year, etc. schon Informationen eingetragen. Ich bräuchte nämlich Titel, Albumname, Genre, Jahr, Artist (Soweit sie halt immer bei dem mp3-Song vorhanden sind).

Weißt du was hier falsch läuft?

leni
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Laden von Informationen aus Dateien: Austauschbarkeit: 2 Dateien sinnvoll? Allgemeine Java-Themen 2
E Datei-Informationen Allgemeine Java-Themen 12
M Film Informationen aus Internet beziehen Allgemeine Java-Themen 4
M Informationen aus komplexen String parsen Allgemeine Java-Themen 13
B Suche Datenquelle für lizenz-informationen Allgemeine Java-Themen 5
C Informationen in eine Datei auslagern Allgemeine Java-Themen 19
C C-ähnlichen Code nach speziellen Informationen durchsuchen Allgemeine Java-Themen 2
J Welche Informationen werden beim Kompilieren gespeichert? Allgemeine Java-Themen 3
T Ausgabeumleitung in Datei + weitere Informationen Allgemeine Java-Themen 3
R Speichern von zusätzlichen Informationen Allgemeine Java-Themen 4
C Viele Informationen aus zwei Collections vergleichen Allgemeine Java-Themen 2
S System Informationen auslesen. Allgemeine Java-Themen 3
M Desktop-Informationen Allgemeine Java-Themen 2
M Email - Informationen auslesen Allgemeine Java-Themen 3
M Informationen über abgeleitete Klassen Allgemeine Java-Themen 18
D Informationen speichern Allgemeine Java-Themen 12
M datei informationen auslesen Allgemeine Java-Themen 16
T Informationen zu Diensten Allgemeine Java-Themen 3
T wie speichert man Daten/Informationen? Allgemeine Java-Themen 8
Luma Zip-Archiv auslesen und Entry-Informationen auslesen Allgemeine Java-Themen 3
N Servlets: Formulardaten auslesen (POST) - mehr Informationen Allgemeine Java-Themen 4
S API zum Lesen von Song Lyrics aus'm Internet? Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben