我正在使用 NAudio 的 WaveStream 和 BlockAlignReductionStream 从 MP3 文件中读取数据。使用 Read 方法,这一切都很好,它读入一个 byte[] 缓冲区,但我想知道当格式不同于 8 位 PCM 时会发生什么,或者当有超过 1 个 channel 时会发生什么?
我的意思是,它可能首先读取 16 位 PCM 格式作为高位字节,然后是低位字节,所以它基本上是一个短字节。但是如果有 2 个 channel 呢?它是从两者中读取的吗?第一个 sample 中的一个 sample 和另一个 sample 中的一个 sample ?或完全相反的……还是什么? 32位浮点格式也会发生同样的情况吗?
谢谢。
最佳答案
NAudio 中可用的 MP3 解码器都解压缩为 16 位音频,而不是 8 位。样本数据将以英特尔字节顺序的一系列 16 位整数形式出现,并且样本将左、右等交错以用于立体声音频。
关于c# - NAudio - WaveSram 和 BlockAlignReductionStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8241522/