Не удается отследить теги ID3 с помощью jaudiotagger

Я пытаюсь прочитать теги ID3 из файла.m4a с помощью библиотеки jaudiotagger со следующим кодом

try {
        File file = new File(TrackPath);
        AudioFile f = AudioFileIO.read(file);
        Tag tag = f.getTag();

        audioAlbum.setText(tag.getFirst(FieldKey.ARTIST));
    }catch(Exception e) {
        e.printStackTrace();
    };

Но это возвращает ту же ошибку: "java.lang.NoSuchMethodError: Нет виртуального метода toPath()Ljava/nio/file/Path; в классе Ljava/io/File;"

Строка TrackPath содержит "MediaStore.Audio.Media.DATA" файла.m4a.

Я никогда раньше не работал с исключениями, поэтому я думаю, что проблема где-то там.

1 ответ

Решение

Я обнаружил проблему, оригинальная библиотека не работает на Android из-за проблем с версиями Java. Так что в конечном итоге использовать эту библиотеку вместо https://github.com/hexise/jaudiotagger-android

Я просто заменил это:

Tag tag = audioFile.getTag();

Этим:

Tag tag = audioFile.getTagAndConvertOrCreateAndSetDefault();

Я использую jaudiotagger2.2.7

Чтобы установить его, просто добавьте это в свой строительный проект:

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
        maven { url "https://maven.google.com" }
    }
}

и это в ваше приложение модуля сборки (зависимости):

implementation 'com.github.goxr3plus:jaudiotagger:2.2.7'
Другие вопросы по тегам