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

问题描述 投票:0回答:1

[尝试构建一个小应用程序,以根据音频文件的某些属性对其进行分类。是否已设法使用Minim来获取采样率和位深度,但找不到任何东西来获取位率?

很乐意在需要时将程序带到Javascript,但很想找到一种检测给定文件比特率的方法。

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

java audio processing
1个回答
0
投票

您可以使用jaudiotagger

您需要下载该jar,我设法从maven central中获得了它>

转到草图->添加文件...,然后选择下载的jar,应将其添加到草图文件夹中名为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。但是请注意示例,为了回答您的问题,the one I used似乎有问题,因为您可以看到我不得不将getAudioHeader

getMP3AudioHeader交换。
© www.soinside.com 2019 - 2024. All rights reserved.