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