Не удается отследить теги 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'