Mp3帧解压与NAudio

本文关键字:NAudio Mp3 | 更新日期: 2023-09-27 18:17:49

我正在从NAudio Source Demo中进行Mp3StreamingDemo,我需要一个关于解压缩Mp3帧的解释(没有深度,只有几句话,以获得一个大致的概念)。

实际代码是:

IMp3FrameDecompressor decompressor = null;
//...
if (decompressor == null)
{
    WaveFormat waveFormat = new Mp3WaveFormat(frame.SampleRate, frame.ChannelMode == ChannelMode.Mono ? 1 : 2, frame.FrameLength, frame.BitRate);
    //What does AcmMp3FrameDecompressor do?
    decompressor = new AcmMp3FrameDecompressor(waveFormat);
    this.bufferedWaveProvider = new BufferedWaveProvider(decompressor.OutputFormat);
}
int decompressed = decompressor.DecompressFrame(frame, buffer, 0);

我确实对MP3有一些了解,它看起来怎么样,关于框架等等。我只是不明白mp3帧解压缩的过程?具体来说:

AcmMp3FrameDecompressor类使用的是什么?DecompressFrame方法做什么?

我可以从类中看到代码,但要深入了解它,我认为我需要更多关于音频本身的知识。现在,就像我说过的,我希望能做一个概括的描述。

感谢您的时间和帮助。

Mp3帧解压与NAudio

AcmMp3FrameDecompressor使用计算机上的ACM编解码器将MP3帧解压缩为PCM。自Windows XP以来的所有桌面版Windows都配有一个,但在某些情况下,你可能会遇到无法使用一个的情况。NAudio还提供了一个基于DMO的MP3帧解码器,可以在Windows Vista和更新版本上使用。