Кто-нибудь из вас знает, как редактировать теги 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
Я также использую Try Catch, но исключение не создается, и в Logcat ничего не отображается, он вылетает без исключений или сообщений
За вас голосуют против (не мной), потому что вы действительно должны предоставить больше информации и, желательно, какой-то код, чтобы показать, как вы пытаетесь это сделать :)




Проблема в том, что ... это сбой без исключения, я использую отладку, чтобы следить за каждым шагом ... но не генерируется исключение