mp3agic icon indicating copy to clipboard operation
mp3agic copied to clipboard

IllegalArgumentException

Open MaWiLi opened this issue 7 years ago • 0 comments

There will be a bug in the Library when an mp3 file will not have any Metatags (iD3 Basic,, iD3v1, iD3v2). An Mp3File Object will not create to search any Metadatas from file. It will be get an IllegalArgumentException? 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)

The Programm will be work to the line correctly LOG.info("Verarbeitung der MP3 Audiodatei - beginnt " + datei);

After that the Programm will not work anyway to create the Mp3File Mp3File mp3datei = new Mp3File(datei);

The Code: `// *** 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`

Issue in German can find here: https://www.java-forum.org/thema/illegalargumentexception.180347/

MaWiLi avatar Jan 22 '18 10:01 MaWiLi