Java 检索.wav文件的标题、艺术家/作者和持续时间

Java 检索.wav文件的标题、艺术家/作者和持续时间,java,audioformat,audioinputstream,Java,Audioformat,Audioinputstream,我试图使用以下代码获取Java项目中使用的.wav文件的属性。但是,当我运行此代码时,方法format.getProperty(“title”)、format.getProperty(“author”)和format.getProperty(“duration”)都返回空值。我应该以不同的方式获取这些细节吗 AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(wavFile); AudioFormat forma

我试图使用以下代码获取Java项目中使用的
.wav
文件的属性。但是,当我运行此代码时,方法
format.getProperty(“title”)
format.getProperty(“author”)
format.getProperty(“duration”)
都返回空值。我应该以不同的方式获取这些细节吗

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(wavFile);
AudioFormat format = audioInputStream.getFormat();
Object[] temp = {false,
        format.getProperty("title"),
        format.getProperty("author"),
        format.getProperty("duration")};

WAV文件很难使用,尽管如此。根据使用的软件和编码器(16/32位PCM),您可以对文件进行不同的配置,读取此元数据时可能会遇到问题

我尝试了很多专注于音频元标记的工具和库(如、、等),大多数工具和库可以很好地用于MP3或其他音频格式,但不能用于WAV文件

显然,处理这件事最好的办法是。它简单、快速,您可以通过以下方式实现您的目标:

AudioFile f = AudioFileIO.read(wavFile);
WavTag tag = (WavTag) f.getTag();

Object[] temp = {false,
        tag.getFirst(FieldKey.TITLE),
        tag.getFirst(FieldKey.ARTIST),
        f.getAudioHeader().getTrackLength() // In seconds
};
此外,请参阅以下链接:

注意:对该功能的支持是从上面的版本2.2.4添加的。所以,总是喜欢排除兼容性问题


我很确定.wav文件不包含标题或作者信息。