MP3 ID3Tag auslesen

babuschka

Top Contributor
Hallo Freunde,

ich weiß, dass ich mit der Bibliothek ID3Tag MP3 Songs auslesen kann
und damit, die bestimmten Infos wie Titel, Autor und Albumtitel ausgeben kann.

Hier mein Code, vllt könnt ihr mir ja mal helfen
PS: Ich bin auf viele Codebeispiele im Google gestoßen, aber nicht weitergekommen ???:L

Ich hab folgende Klassen
Mp3Player, Tracks, Gui

Java:
package BusinessLogik;

import org.farng.mp3.MP3File;
import org.farng.mp3.id3.ID3v1;
import org.jaudiotagger.*;
import org.jaudiotagger.audio.*;

import Interface.AudioHeader;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.RandomAccessFile;
import java.util.RandomAccess;

public class Track {
	
	
	long id;
	
	String title;
	int lenght;
	String albumTitle;
	String band;
	String soundFileString;
	AudioHeader ah;
	FileInputStream datei;
	ID3v1 tagAuslesen = new ID3v1();
	
	
	public long getId() {
		return id;
	}
	public String getTitle(){
	
		return title;
	}
	public int getLenght() {
		return lenght;
	}
	public String getAlbumTitle() {
		return albumTitle;
	}
	public String getBand() {
		return band;
	}
	
	public  FileInputStream getSoundFileString(){

		try{
			 FileInputStream datei = new FileInputStream("C:\\Users\\Deniz\\Desktop\\Cheb Douzi - Nti li bia.mp3");
			 Mp3FileObject file = new MP3File(datei); 
			 tagAuslesen = mp3FileObject.getID3v1Tag();
			 System.out.println("Now Playing: " + tagAuslesen.getTitle());
			 System.out.println("mist");
			
		}catch(Exception e){
			e.printStackTrace();
		}

		return datei;
	}
	
	
	
	

}
 

babuschka

Top Contributor
Fehlermeldung hier

Java:
 Mp3FileObject file = new MP3File(datei); 
			 tagAuslesen = mp3FileObject.getID3v1Tag();
 

X5-599

Top Contributor
Und die Meldung? Übrigens, die Doku, die ich gefunden habe sagt nichts vom einem MP3File Konstruktor der einen FileInputStream als Parameter hat. Liegt es vielleicht daran?
 

X5-599

Top Contributor
einfach ein File Objekt übergeben:

Java:
new MP3File(new File("Pfad/zum/MP3.mp3"))

Auch: Was ist "Mp3FileObject"? Die Klasse hab ich bisher nirgens gesehen...
 

babuschka

Top Contributor
Wenn ich das zum File änder,

kann ich in der Play-Methode nicht drauf zugreifen

Java:
public void play(){

		try{
			
			new Thread(){
				public void run(){
					try {

						mp3Player = new Player(actTrack.getSoundFileString());
						mp3Player = new Player(actTrack.getSoundFileString());
						mp3Player.play();
						
						
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					SwingUtilities.invokeLater(new Runnable() {
						
						@Override
						public void run() {
								Oberflache gui = new Oberflache();
								
						}
					});
		
				}
			}.start();
			
			
			
		}catch(Exception r){
			r.printStackTrace();
		}

		
	}

Fehler: mp3Player = new Player(actTrack.getSoundFileString());
 

babuschka

Top Contributor
hmmmm in wie fern macht es keinen Sinn`? ???:L

Java:
xception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problems: 
	The constructor Player(File) is undefined
	The constructor Player(File) is undefined

	at BusinessLogik.Mp3Player.play(Mp3Player.java:33)
	at GUI.Oberflache$PlayListener.actionPerformed(Oberflache.java:81)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$400(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
 

Michael...

Top Contributor
hmmmm in wie fern macht es keinen Sinn`?
Wieso? Es steht doch klar und deutlich, dass es keinen Konstruktor
Code:
Player(File)
gibt. Aufgrund Deines bisherigen Codes vermute ich, dass es nur einen Konstruktor
Code:
Player(FileInputStream)
gibt. Warum übergibst Du dem Konstruktur nicht einfach so einen InputStream?
 

babuschka

Top Contributor
jetzt steh ich auf dem Schlauch :(

ich benutze die Playerfunktionen von der Api,

und bei der play() soll er ja den Track sich aus der Klasse Track, getSoundFile() holen

die Methode getSoundFile war vohrer so definiert

public FileInputStream getSoundFileString(){ }

das hat funktioniert, aber sobald ich es in einem File änder, um ID3Tag auszulesen,
bekomm ich die Fehlermeldung ???:L
 
B

bone2

Gast
Das das eine ein File und das andere einen FileInputstream braucht übersteigt schon deine Vorstellungskraft?

wie wäre es mit?
Java:
new Player(new FileInputStream(actTrack.getSoundFileString())
 

babuschka

Top Contributor
nein, das funktioniert auch leider nicht...

ich mach die Tags eh in eine andere Methode rein,
so dass ich es dann über getTitle zurück geben kann
 

X5-599

Top Contributor
ich würds so machen. ohne Gewähr, da ich die Libs nicht hier habe:

Java:
public class Track {
	
    private long id;
    private String title;
    private int lenght;
    private String albumTitle;
    private String band;
    private FileInputStream datei;
    private ID3v1 tagAuslesen;
    
    public Track(String pfadZurMp3Datei) {
    	this(new File(pfadZurMp3Datei));
    }
    public Track(File pfadZurMp3Datei) {
    	datei = new FileInputStream(pfadZurMp3Datei);
    	tagAuslesen = new MP3File(pfadZurMp3Datei).getID3v1Tag();
    	
    	title = tagAuslesen.getTitle();
    	albumTitle = tagAuslesen.getAlbumTitle();
    	//etc ...
    }
    
    public long getId() {
        return id;
    }
    public String getTitle() {
        return title;
    }
    public int getLenght() {
        return lenght;
    }
    public String getAlbumTitle() {
        return albumTitle;
    }
    public String getBand() {
        return band;
    }
    
    public FileInputStream getStream() {
        return datei;
    }
}
 

Michael...

Top Contributor
Ach man, versuche doch mal ein bisschen selbstständig zu denken! Oder wenigstens richtig abzuschreiben.
Player benötigt einen FileInputStream, MP3File erwartet ein File Objekt. Ein File Objekt kann man ganz einfach in einen FileInputStream stecken.
 

X5-599

Top Contributor

babuschka

Top Contributor
Also alles hat nicht funktioniert, für die Jenigen, die das gleiche Problem haben sollten

hier die Lösung:

Java:
public void getId3Tags() throws CannotReadException, TagException, ReadOnlyFileException, InvalidAudioFrameException {
            try{
                File testFile = new File("C:\\Users\\karaayak\\Desktop\\keri_hilson_-_i_like.mp3");
                mp3File      = (MP3File)AudioFileIO.read(testFile);
                
                v2tag  = mp3File.getID3v2Tag();
                
                title = (v2tag.getFirst(ID3v24Frames.FRAME_ID_TITLE));
                genre = (v2tag.getFirst(ID3v24Frames.FRAME_ID_GENRE));
                albumTitle = (v2tag.getFirst(ID3v24Frames.FRAME_ID_ALBUM));
                
                /**
                    System.out.println("Titel: " + title);
                    System.out.println("Genre: " + genre);
                    System.out.println("Album: " + albumTitle);
                */
                
            }catch(IOException ex){
                System.out.println("Konnte nicht TestFile - Auslesen");
            }
        }
 
B

bone2

Gast
edit fast. was für ein audiofile ist das das ads du einfach zu mp3 castest damit es glücklicherweise funktioniert? sehr dubios, wenig verständlich und vernünftig

du hast einfach eine andere audiolibary genommen oder?
MP3File (Jaudiotagger Developer API v2.0.0)
das casten auf mp3 file kannst du dir auch schenken, auch bei der libary, nimm gleich den mp3file konstruktor, dann ist der code wenigstens verständlich.

vermutlich gingen vorher die lösungsvorschläge bei dir auch nicht, weil du hier kommentarlos zwischen libaries springst.
anfangs war es MP3File (jid3lib 0.5.4)
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Bild Icon aus ID3Tag auslesen Java Basics - Anfänger-Themen 4
J Drucker voreingestelltes Papierformat auslesen Java Basics - Anfänger-Themen 0
A Buchstaben auslesen lassen vom Scanner Java Basics - Anfänger-Themen 18
G JComboBox ist editable und eingegebenen Text auslesen bei focusLost() Java Basics - Anfänger-Themen 1
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
CptK x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
J Informationen aus Webseiten auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
dragonfight86 Erste Schritte OpenDocument auslesen Java Basics - Anfänger-Themen 13
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
Chrizzey45 Calc-Dokument in Java auslesen? Java Basics - Anfänger-Themen 2
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5
M Eigenschaften einer Datei auslesen Java Basics - Anfänger-Themen 5
M Textarea auslesen und beschreiben Java Basics - Anfänger-Themen 8
J Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
Y Bildschirmauflösung auslesen Java Basics - Anfänger-Themen 4
S for schleife auslesen Java Basics - Anfänger-Themen 4
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
Voreck Array aus txt datei auslesen Java Basics - Anfänger-Themen 2
N JFreeChart --> TimeSeries auslesen Java Basics - Anfänger-Themen 9
OlafHD Datei Auslesen Java Basics - Anfänger-Themen 6
M Metadaten OpenOffice mit Java auslesen Java Basics - Anfänger-Themen 9
P JList, aus selectedValue bestimmten Wert aus Containerklasse auslesen Java Basics - Anfänger-Themen 4
J OpenOffice Dokumentenvariable mit Java auslesen Java Basics - Anfänger-Themen 1
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben