Редактирование MP3-тэгов
Кто-нибудь из вас знает способ редактирования тегов mp3-файла?
Я попробовал Mp3agic, но он вылетает, когда я пытаюсь объявить объект MP3File, и я также попробовал библиотеку jaudiotagger, но она также вылетает.
Мне нужна помощь, пожалуйста.
ОБНОВИТЬ:
Это фрагмент кода, где происходит сбой приложения:
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);
ОБНОВИТЬ:
Я попытался также изменить строку:
Tag newTag = audioFile.getTag();
Для того, чтобы:
Tag newTag = audioFile.getTagOrCreateAndSetDefault();
Но это бросить это исключение:
java.lang.RuntimeException: Unable to create default tag for this file format