无法使用 jaudiotagger 获取曲目 ID3 标签
Can't get track ID3 tags using 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();
};
但是这个returns同样的错误:
java.lang.NoSuchMethodError: No virtual method toPath()Ljava/nio/file/Path; in class Ljava/io/File;
字符串 TrackPath 包含 .m4a
文件的“MediaStore.Audio.Media.DATA”
我以前从未处理过异常,所以我认为问题出在某个地方。
我发现了问题,由于某些 java 版本问题,原始库不适用于 Android。所以最终改用这个库 https://github.com/hexise/jaudiotagger-android
我刚刚替换了这个:
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'
我正在尝试使用带有以下代码的 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();
};
但是这个returns同样的错误:
java.lang.NoSuchMethodError: No virtual method toPath()Ljava/nio/file/Path; in class Ljava/io/File;
字符串 TrackPath 包含 .m4a
文件的“MediaStore.Audio.Media.DATA”
我以前从未处理过异常,所以我认为问题出在某个地方。
我发现了问题,由于某些 java 版本问题,原始库不适用于 Android。所以最终改用这个库 https://github.com/hexise/jaudiotagger-android
我刚刚替换了这个:
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'