无法使用jaudiotagger获取跟踪ID3标签

时间:2017-03-27 10:19:33

标签: java android jaudiotagger

我正在尝试使用带有以下代码的jaudiotagger库从.m4a文件中读取ID3标签

try {
        File file = new File(TrackPath);
        AudioFile f = AudioFileIO.read(file);
        Tag tag = f.getTag();

        audioAlbum.setText(tag.getFirst(FieldKey.ARTIST));
    }catch(Exception e) {
        e.printStackTrace();
    };

但是这会返回相同的错误: “java.lang.NoSuchMethodError:没有虚拟方法toPath()Ljava / nio / file / Path;在类Ljava / io / File中;”

字符串TrackPath包含.m4a文件的“MediaStore.Audio.Media.DATA”

我之前从未使用过异常,所以我认为问题就在那里。

2 个答案:

答案 0 :(得分:0)

我发现了问题,由于一些java版本的问题,原来的库不能用于Android。因此最终使用此库而不是https://github.com/hexise/jaudiotagger-android

答案 1 :(得分:0)

我刚刚将其替换:

Tag tag = audioFile.getTag();

通过这个:

Tag tag = audioFile.getTagAndConvertOrCreateAndSetDefault();

我使用jaudiotagger2.2.7

要安装它,只需将其添加到构建项目中即可:

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
        maven { url "https://maven.google.com" }
    }
}

这到构建模块应用程序(依赖项):

implementation 'com.github.goxr3plus:jaudiotagger:2.2.7'