我正在通过来自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方法有什么作用?
我可以看到课堂上的代码,但要深入了解它,我想我需要更多关于音频本身的知识。就目前而言,正如我所说的,我只会欣赏一般的描述。
感谢您的时间和帮助。
答案 0 :(得分:2)
AcmMp3FrameDecompressor使用计算机上的ACM编解码器将MP3帧解压缩到PCM。自Windows XP以来,Windows的所有桌面版本都附带一个,但在某些情况下,您可能会遇到一个不可用的情况。 NAudio还提供基于DMO的MP3帧解码器,可在Windows Vista及更高版本上使用。