如何从MP3获取音频数据?

我正在开发一个必须处理音频文件的应用程序。使用mp3文件时,我不确定如何处理数据(我感兴趣的数据是音频字节,代表我们所听到的)。

如果我使用的是wav文件,我知道我有一个44字节的标头,然后是数据。关于mp3,我已经读到它们是由帧组成的,每个帧都包含标题和音频数据。是否可以从mp3文件中获取所有音频数据?

我正在使用Java(我已经添加了MP3SPI,Jlayer和Tritonus),并且能够从文件中获取字节,但是我不确定这些字节代表什么或如何处理。

回答:

从MP3SPI的文档中:

File file = new File(filename);

AudioInputStream in= AudioSystem.getAudioInputStream(file);

AudioInputStream din = null;

AudioFormat baseFormat = in.getFormat();

AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,

baseFormat.getSampleRate(),

16,

baseFormat.getChannels(),

baseFormat.getChannels() * 2,

baseFormat.getSampleRate(),

false);

din = AudioSystem.getAudioInputStream(decodedFormat, in);

然后,您只需从中读取数据din-便是按照的“原始”数据decodedFormat。(有关更多信息,请参阅文档AudioFormat。)

(请注意,此示例代码不会关闭流或类似的内容-照常使用适当的try / finally块。)

以上是 如何从MP3获取音频数据? 的全部内容, 来源链接: utcz.com/qa/415297.html

回到顶部