【问题标题】:Can't get track ID3 tags using jaudiotagger无法使用 jaudiotagger 获取轨道 ID3 标签
【发布时间】:2017-03-27 10:19:32
【问题描述】:

我正在尝试使用带有以下代码的 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: No virtual method toPath()Ljava/nio/file/Path; in class Ljava/io/File;

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

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

【问题讨论】:

    标签: java android jaudiotagger


    【解决方案1】:

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

    【讨论】:

    • 你能帮我做同样的事情吗?我下载了文件并使用 Eclipse 将其导出到 jar 中,但是当我将其添加到我的应用程序的 android 依赖项时,我仍然收到相同的 NoSuchMethodFind 错误。我将不胜感激。你能给我提供方向/说明吗?
    【解决方案2】:

    我刚刚替换了这个:

    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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 2011-09-14
      • 1970-01-01
      相关资源
      最近更新 更多