如何从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