你们中有人知道一种编辑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);
没有例外。
通过执行上述行中的所有调试步骤,应用程序在JAudioTagger的MP3File类的第246行崩溃。 这是这些行:
..
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();
它在MP3File类的第232行抛出NullPointerException(该行尝试查找文件的标题):
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