Кто-нибудь из вас знает способ редактирования тегов mp3-файла?
Я попробовал Mp3agic, но он вылетает, когда я пытаюсь объявить объект MP3File , и я также попробовал библиотеку jaudiotagger, но она также вылетает.
Мне нужна помощь, пожалуйста.
UPDATE:
Это фрагмент кода, в котором происходит сбой приложения:
File testFile = new File(Environment.getExternalStorageDirectory(),"/Music/test.mp3");
TagOptionSingleton.getInstance().setAndroid(true);
AudioFile audioFile = AudioFileIO.read(testFile);
Tag newTag = audioFile.getTag();
newTag.setField(FieldKey.ALBUM, this.album);
newTag.setField(FieldKey.ARTIST,this.artist);
audioFile.commit();
Сбой приложения на линии
AudioFile audioFile = AudioFileIO.read(testFile);
без исключения.
Выполнив все шаги отладки из вышеупомянутой строки, приложение аварийно завершает работу в строке 246 класса MP3File JAudioTagger.
Это строки:
..
finally {
if(newFile != null) {
newFile.close();
}
..
Поэтому я попытался изменить свой код здесь (я изменил объявление AudioFile):
File testFile = new File(Environment.getExternalStorageDirectory(),"/Music/test.mp3");
TagOptionSingleton.getInstance().setAndroid(true);
AudioFile audioFile = new AudioFile();
audioFile.setFile(testFile);
Tag newTag = audioFile.getTag();
newTag.setField(FieldKey.ALBUM, this.album);
newTag.setField(FieldKey.ARTIST,this.artist);
audioFile.commit();
А на линии
AudioFile audioFile = new AudioFile();
он выдает исключение NullPointerException в строке 232 класса MP3File (строка пытается найти заголовок файла):
audioFile: Method threw 'java.lang.NullPointerException' exception. Cannot evaluate org.jaudiotagger.audio.AudioFile.toString()
Это исключение вызывает в следующих строках это исключение:
java.lang.NullPointerException: Attempt to invoke interface method 'void org.jaudiotagger.tag.Tag.setField(org.jaudiotagger.tag.FieldKey, java.lang.String)' on a null object reference
В строке:
newTag.setField(FieldKey.ALBUM, this.album);
UPDATE:
Я также пытался изменить строку:
Tag newTag = audioFile.getTag();
Кому:
Tag newTag = audioFile.getTagOrCreateAndSetDefault();
Но это исключение:
java.lang.RuntimeException: Unable to create default tag for this file format