Guten Abend,
den ganzen Tags fleissig am proggen und der Code verändert sich ständig.
Seit Stunden versuche ich zu ergründen warum ein IllegalArgumentException geworfen wird. Allerdings habe ich bisher noch nie etwas davon gehört?!?
Die Bibliothek mp3agic arbeitete bisher einwandfrei und ohne Probleme.
Als ich die main etwas umstrukturiert habe war es dann vorbei mit der Lauffähigkeit?
Der Code sieht wie folgt aus:
Das Programm arbeitet bis zur Zeile korrekt
Danach wird ein mp3datei Objekt erstellt um zu prüfen ob die Datei Metadaten enthält.
Entsprechend wird dann verzweigt.
Die weiteren LOG.info werden nicht mal verarbeitet.
Ich weiss das es an der Zeile
Der Fehler tritt auf, wenn die Datei keine Metadaten enthält. Also kein Title, Interpreter usw.
Bei Dateien die Metadaten besitzen, funktioniert das Programm weiterhin.
Das muss wohl der Ausnahmefall sein wenn keinerlei Metadaten vorliegen.
Aber sollte dann nicht doch ein mp3datei Objekt zu erstellen sein um dann mit hasID3... abfragen zu können ob Metadaten drin sind oder nicht?
Danke
Mi.
den ganzen Tags fleissig am proggen und der Code verändert sich ständig.
Seit Stunden versuche ich zu ergründen warum ein IllegalArgumentException geworfen wird. Allerdings habe ich bisher noch nie etwas davon gehört?!?
Code:
Exception in thread "main" java.lang.IllegalArgumentException
at sun.nio.ch.FileChannelImpl.position(FileChannelImpl.java:278)
at sun.nio.ch.FileChannelImpl.position(FileChannelImpl.java:50)
at com.mpatric.mp3agic.Mp3File.initId3v1Tag(Mp3File.java:273)
at com.mpatric.mp3agic.Mp3File.init(Mp3File.java:94)
at com.mpatric.mp3agic.Mp3File.<init>(Mp3File.java:71)
at com.mpatric.mp3agic.Mp3File.<init>(Mp3File.java:62)
at soundstation.SoundStation.main(SoundStation.java:88)
Als ich die main etwas umstrukturiert habe war es dann vorbei mit der Lauffähigkeit?
Der Code sieht wie folgt aus:
Java:
// *** Dateiliste verarbeiten ***
for (File datei : listeDatei) {
LOG.info("Verarbeitung der MP3 Audiodatei - beginnt " + datei);
//*** MP3 Daten durch mp3agic ermitteln
Mp3File mp3datei = new Mp3File(datei);
LOG.info("MP3 ID Tag Standard " + (mp3datei.hasCustomTag() ? "JA" : "Nein"));
LOG.info("MP3 ID Tag Version 3v1 " + (mp3datei.hasId3v1Tag() ? "JA" : "Nein"));
LOG.info("MP3 ID Tag Version 3v2 " + (mp3datei.hasId3v2Tag() ? "JA" : "Nein"));
if (mp3datei.hasId3v1Tag() == true || mp3datei.hasId3v2Tag() == true) {
// Die Datei enthält Metadaten
listeID3 = SoundParser.sucheMP3Tags(datei.getAbsoluteFile(), mp3datei);
LOG.info("Ausgabe gefundenen ID3-TAGs");
SoundParser.ausgebenIdTags(listeID3);
// Prüfung auf Eintrag Album
albumAblage = SoundParser.pruefungEintragAlbum(listeID3, listeZusammenstellungen, listeFilmmusik);
LOG.info("Das Ablageverzeichnis ist : " + albumAblage);
// Ablagevariablen
File quellDatei = new File(datei.getAbsolutePath());
File zielDatei = new File(zielVerzeichnis + "\\" + datei.getName());
SoundParser.ablageAudioDatei(quellDatei, zielVerzeichnis, listeID3, endung, mitLeerzeichen, albumAblage);
LOG.info("Verarbeitung der MP3 Audiodatei - beendet " + datei);
} else if (mp3datei.hasId3v1Tag() == false && mp3datei.hasId3v2Tag() == false) {
LOG.error("In der Audiodatei wurden keine Metadaten gefunden.");
// Ablagevariablen
File quellDatei = new File(datei.getAbsolutePath());
File zielDatei = new File(zielVerzeichnis + "\\" + datei.getName());
} // listeDatei for-Schleife
Java:
LOG.info("Verarbeitung der MP3 Audiodatei - beginnt " + datei);
Entsprechend wird dann verzweigt.
Die weiteren LOG.info werden nicht mal verarbeitet.
Ich weiss das es an der Zeile
Java:
Mp3File mp3datei = new Mp3File(datei);
Bei Dateien die Metadaten besitzen, funktioniert das Programm weiterhin.
Das muss wohl der Ausnahmefall sein wenn keinerlei Metadaten vorliegen.
Aber sollte dann nicht doch ein mp3datei Objekt zu erstellen sein um dann mit hasID3... abfragen zu können ob Metadaten drin sind oder nicht?
Danke
Mi.
Zuletzt bearbeitet: