编程语言
首页 > 编程语言> > java – 检索.wav文件的标题,艺术家/作者和持续时间

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

作者:互联网

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

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

解决方法:

WAV文件难以使用,即使是they can hold several metadata types.根据所使用的软件和编码器(16/32位PCM),您可以对文件进行不同的配置,Java Sound API将面临读取此元数据的问题.

我尝试了许多专注于音频元标记的工具和库(例如Apache Tika,jd3lib,mp3agic,Beaglebuddy等),并且大多数工具和MP3或其他音频格式都能很好地工作,但不能用于WAV文件.

显然,处理这个的更好的是Jaudiotagger.它简单,快速,你可以完成你的目标,例如:

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
};

另请参阅以下链接:

> Official repo and installation guidelines
> Test class with .wav metadata extraction examples

Note: The support for this feature was added from version 2.2.4 above. So, always prefer 07009 to evict compatibility problems.

标签:java,audioformat,audioinputstream
来源: https://codeday.me/bug/20190706/1393265.html