编辑MP3标签

时间:2018-06-30 12:48:58

标签: java android tags jaudiotagger mp3agic

你们中有人知道一种编辑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

0 个答案:

没有答案