【问题标题】:Jaudiotagger ID3 TAG for android - can set artwork but cannot set other fieldsJaudiotagger ID3 TAG for android - 可以设置艺术品但不能设置其他字段
【发布时间】:2014-05-07 23:44:40
【问题描述】:

我对 Java 编程比较陌生。在这里,我正在尝试使用 Jaudiotagger 库为 mp3 更改/创建新的 ID3 标签,而我的 android 项目中没有一个。但是,我真的无法设置为使库正常工作。那是, 对于已经设置了一些 ID3 标签的 mp3,我可以成功地写入和更改元数据而没有任何问题。但是对于那些没有设置ID3标签(空白)的mp3,我只能设法设置专辑封面插图,而艺术家,标题,专辑封面等其他字段仍然像以前一样空白。

这是我的代码的 sn-p -

import org.jaudiotagger.audio.AudioFile;
import org.jaudiotagger.audio.AudioFileIO;
import org.jaudiotagger.tag.FieldKey;
import org.jaudiotagger.tag.Tag;
import org.jaudiotagger.tag.TagOptionSingleton;
import org.jaudiotagger.tag.id3.ID3v23Tag;
import org.jaudiotagger.tag.images.Artwork;
import org.jaudiotagger.tag.images.ArtworkFactory;

try{
    TagOptionSingleton.getInstance().setAndroid(true);
    AudioFile f =AudioFileIO.read(file_path_to_mp3);
    f.setTag(new ID3v23Tag());
    Tag tag=f.getTag();
    tag.setField(FieldKey.ARTIST,artist);
    tag.setField(FieldKey.ALBUM,album);
    Artwork cover=ArtworkFactory.createArtworkFromFile(cover_file);
    tag.setField(cover);
    f.commit();
}catch (Exception e){
    e.printStackTrace();
}

我可以运行程序而不会抛出任何错误和异常。只是像标题、艺术家、专辑等这样的元数据标签不会设置,尽管可以成功设置艺术品。 感谢您的帮助!

【问题讨论】:

  • 您应该使用“tag.addField()”而不是“tag.setField()”,因为您要添加一个新字段。

标签: java android audio id3 id3v2


【解决方案1】:

我写了一些代码来帮你改变mp3文件的数据

    TagOptionSingleton.getInstance().setAndroid(true);

    File mp3File = new File(mp3Song);

    AudioFile audioFile = AudioFileIO.read(mp3File);

    audioFile.setTag(new ID3v23Tag());


    Tag newTag=    audioFile.getTag();

    if (album != null) {
        newTag.setField(ALBUM, album);
    }
    if (artist != null) {
        newTag.setField(ARTIST, artist);
    }

    if (trackName != null) {
        Log.d("ALBUM TITLE",trackName);

        newTag.setField(TITLE, trackName);
    }


    if (imageAlbum != null) {
        Log.d("ALBUM COVER",imageAlbum);

        File fileCover = new File(imageAlbum);
        if (!fileCover.exists()){

            Log.d("ALBUM ","DOESNT EXIST");

        }


        Artwork artwork = Artwork.createArtworkFromFile(fileCover);
        newTag.addField(artwork);
        newTag.setField(artwork);

    }
    audioFile.commit();de here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2020-08-07
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2013-01-24
    相关资源
    最近更新 更多