我正在尝试使用jaudiotagger从一个ID3文件中读取.m4a标记,代码如下
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“。
我以前从来没有例外地工作过,所以我认为问题就在那里。
发布于 2017-03-27 14:04:03
我发现了这个问题,由于一些java版本的问题,原来的库不适用于Android。所以最终使用了这个库而不是https://github.com/hexise/jaudiotagger-android
发布于 2020-10-01 06:10:10
我只是重编了这个:
Tag tag = audioFile.getTag();通过这一点:
Tag tag = audioFile.getTagAndConvertOrCreateAndSetDefault();我使用jaudotagger2.2.7
要安装它,只需在buil项目中添加以下内容:
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
maven { url "https://maven.google.com" }
}
}这对于您的构建模块应用程序(依赖项)来说:
implementation 'com.github.goxr3plus:jaudiotagger:2.2.7'https://stackoverflow.com/questions/43043768
复制相似问题