用于从 MP3 文件中提取音频信息的 Java 库
Posted
技术标签:
【中文标题】用于从 MP3 文件中提取音频信息的 Java 库【英文标题】:Java library for extracting audio information from MP3 files 【发布时间】:2011-03-16 14:51:28 【问题描述】:是否有任何免费可用的库(Java 媒体框架除外)可用于从 MP3 文件中提取比特率(例如 128 kbps、VBR)和音频质量(例如 44.1KHz、立体声)?
我想要一个可以合并到我的应用程序 jar 中的独立库,也可以部署在只有 Java 1.5 可用且我无法升级它们或添加任何大型 Java 库的旧 Mac 上。
澄清一下:我不会播放、转码或对音频流本身做任何事情,我只对元数据感兴趣。
【问题讨论】:
我有一个库/代码可以做到这一点,但是网上有很多例子告诉你如何从文件中读取 MP3 信息。 【参考方案1】:我承认我对 MP3 文件了解不多,但您可以从the format specification 看到所需的所有信息都在文件的 32 位长标题中。
您可以使用FileInputStream
打开 MP3,读取文件的前 4 个字节,然后使用一些简单的二进制掩码检索您需要的信息。恕我直言,为此使用专门的库有点矫枉过正。
【讨论】:
不只是读取前4个字节,还要验证数据也是MPEG帧。【参考方案2】:看看JAudioTagger,简单易用,你要找的数据在MP3AudioHeader
类中,有getBitRate()
之类的方法
【讨论】:
【参考方案3】:您可以使用 LAMEOnJ 库:
http://openinnowhere.sourceforge.net/lameonj/这个java库很轻,但是你必须在目标计算机上安装LAMELib。
【讨论】:
【参考方案4】:我不是 Java 程序员,但我很确定您可以将 mp3 文件读入字节数组,然后查看 http://www.mp3-tech.org/programmer/frame_header.html 了解帧信息。
【讨论】:
【参考方案5】:format specification 向您展示了 MPEG (mp3) 标头中包含的内容。您可以编写代码来检索此标头。
【讨论】:
以上是关于用于从 MP3 文件中提取音频信息的 Java 库的主要内容,如果未能解决你的问题,请参考以下文章
ffmpeg_拼接并提取flv视频文件中的音频生成mp3文件