检测音频文件比特率 - 处理/Java

Detecting Audio File Bit Rate - Processing / Java

尝试构建一个小应用程序以根据音频文件的某些属性对音频文件进行排序。已设法使用 Minim 获取采样率和位深度,但无法在任何地方找到获取比特率的任何东西?

很高兴看到需要时将程序带到 Javascript,但只是迫切希望找到一种检测给定文件比特率的方法。

编辑:尝试尝试根据文件大小构建方程,但也找不到检测 MP3 文件大小的方法。

您可以使用jaudiotagger

您需要下载 jar,我设法从 maven central

获取了它

转到 Sketch -> 添加文件...和 ​​select 下载的 jar,它应该添加到您的 sketch 文件夹中名为 code 的文件夹中。

假设你在你的数据文件夹中放置了一个名为 audio.mp3 的 mp3 文件,下面的代码应该可以工作,打印出位终端费率。

import org.jaudiotagger.audio.mp3.*;
import org.jaudiotagger.audio.AudioFileIO;

void setup() {
  File f = new File(dataPath("audio.mp3"));
  try {
    MP3File mp3 = (MP3File) AudioFileIO.read(f);

    MP3AudioHeader audioHeader = mp3.getMP3AudioHeader();
    println("" + audioHeader.getBitRate());
  }
  catch(Exception e) {
    e.printStackTrace();
  }
}

JAudiotagger 支持多种文件格式,您可以对其中的每一种格式使用相关的 类 和方法。

我建议你看一下 javadoc. Be careful of the examples though, the one I used 以回答你的问题似乎是错误的,正如你所看到的,我不得不将 getAudioHeader获取MP3AudioHeader