C# 使用NAudio如何将非交错32位浮点格式保存到文件

C# 使用NAudio如何将非交错32位浮点格式保存到文件,c#,wav,naudio,C#,Wav,Naudio,在C#中,我试图将PCM数据保存到WAV文件中。使用NAudio,我创建了一个WaveFileWriter this.fileWriter = new WaveFileWriter(@"c:\temp\test.wav", new WaveFormat(this.audioParameters.SampleRate, this.channels)); 我在浮点数组中捕获PCM数据包并写入样本 var arraySize = noOfFrames * this.channel

在C#中,我试图将PCM数据保存到WAV文件中。使用NAudio,我创建了一个WaveFileWriter

this.fileWriter = new WaveFileWriter(@"c:\temp\test.wav", new WaveFormat(this.audioParameters.SampleRate, this.channels));
我在浮点数组中捕获PCM数据包并写入样本

var arraySize = noOfFrames * this.channels;
var buffer = new float[arraySize];
Marshal.Copy(data, buffer, 0, arraySize);
this.fileWriter?.WriteSamples(buffer, 0, buffer.Length);
输出的音频文件长度合适,但音频听起来很可怕。我可以说是同一个音频,但不正确

// Non-interlaced 32-bit float format
// ChannelLayout = LayoutStereo
// FramesPerBuffer = 1024
// SampleRate = 44100
// channels = 2

在NAudio中,如何使用上述信息从PCM流创建WAV文件?

您正在将32位浮点音频样本放入16位WAV文件中。使用
WaveFormat.CreateIeeeFloatWaveFormat(采样器、通道)
用于
waveilewriter
WaveFormat