我正在开发一个需要处理音频文件的应用程序。在使用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
文档。)