0

我正在尝试.m4a使用带有以下代码的 jaudiotagger 库从文件中读取 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: No virtual method toPath()Ljava/nio/file/Path; in class Ljava/io/File;

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

我以前从未处理过异常,所以我认为问题出在某个地方。

4

2 回答 2

0

我发现了问题,由于一些 java 版本问题,原始库不适用于 Android。所以最终改用这个库https://github.com/hexise/jaudiotagger-android

于 2017-03-27T14:04:03.650 回答
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'
于 2020-10-01T06:10:10.223 回答