【问题标题】:Java: Getting the metadata tags from a wave audio fileJava:从波形音频文件中获取元数据标签
【发布时间】:2017-12-24 03:31:07
【问题描述】:

我从 Audacity 导出了一个波形 (.wav) 文件,其中包含元数据中的自定义标签,键为:LOOP_START 和 LOOP_LENGTH。

Screenshot of the tags in the metadata editor in Audacity

我唯一的问题是我不知道如何在我的 Java 程序中获取附加到这些键的值。我该怎么办?

编辑:我更喜欢使用使用标准 Java 库的解决方案,尽管如果这是唯一的方法,我不会反对下载第 3 方库。

Edit2:这是我正在搞乱的一些代码:

URL url = Main.class.getClassLoader().getResource("bgm/bgm4.wav");
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(url);
AudioFormat format = audioInputStream.getFormat();
System.out.println(format.properties());

但这只会打印:“{}”。 (“bgm”是一个文件夹(src的直接子级))

我知道它正在读取文件,因为它没有抛出任何异常,但它会从根目录进入 bin,而不是 src。我不确定这是否会有所不同。但是 bin 中的音频文件与 src 中的音频文件具有相同的元数据标签。

1/13/18 编辑: 仍然试图得到这个答案。这是我正在尝试的一些新代码:

URL url = AudioMetadata.class.getClassLoader().getResource("audio/bgm4.wav");
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(url);
AudioFormat format = audioInputStream.getFormat();
AudioFileFormat fformat = AudioSystem.getAudioFileFormat(url);

Map<String, Object> props = fformat.properties();
System.out.println(props.size());

打印:0

【问题讨论】:

    标签: java tags metadata wav audacity


    【解决方案1】:

    读入 .wav 后,您应该能够使用 Java Sound 库及其 .properties 方面。Here 是 Java Sound 指南的链接。

    例如。

    AudioFormat file = stream.getFormat();
    System.out.println("Properties: " + file.properties());
    

    【讨论】:

    • 请看我的第二次编辑。我尝试了类似的方法,但它只打印“{}”。
    猜你喜欢
    • 1970-01-01
    • 2017-05-29
    • 2023-02-26
    • 2012-10-21
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多