getId3v1Tag () возвращает ноль - PullRequest
1 голос
/ 27 марта 2020

Это метод:

    public void createMp3Array() throws InvalidDataException, IOException, UnsupportedTagException {

    MusicFile song;
    String trackName;
    String artistName;
    String albumInfo = "";
    String genre = "";
    byte[] musicFileExtract;
    Mp3File mp3file;


    for (final File f : music.listFiles()) {
        ID3v1 tag;
        mp3file = new Mp3File(f.getAbsolutePath());
        tag  = mp3file.getId3v1Tag();
        System.out.println(f.getAbsolutePath() + " " + tag);
        trackName = tag.getTitle();
        artistName = tag.getArtist();
        /*albumInfo = tag.getAlbum();
        System.out.println("info " + albumInfo);
        genre = tag.getGenre() + " (" + id3v1Tag.getGenreDescription() + ")";
        System.out.println("genre " + genre);*/
        song = new MusicFile(trackName,artistName,albumInfo,genre);

        songs.add(song);
        System.out.println("wtf");
    }
}

Строка trackName = tag.getTitle (); возвращает мне NullPointerException каждый раз, кроме одного. Все работает правильно для первого mp3-файла, который я пробовал, и не может работать для любого другого.

Редактировать: Я отправил это случайно, не заканчивая редактировать мой вопрос извините. Контекст заключается в том, что я должен прочитать папку mp3 и сохранить их данные в массиве экземпляров MusicFile. Есть два потока, читающие две отдельные папки - я не знаю, имеет ли это какое-либо отношение к этому -. Это ошибка: Исключение в потоке "Thread-0" java .lang.NullPointerException

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...