在NAudio录制时减少频道数

时间:2011-08-26 16:36:43

标签: c# audio naudio downsampling

我正在录制带有PS3眼镜头的NAudio,使用CLEye驱动程序。 该摄像机有一个4个麦克风阵列,可为系统提供4个音频通道。

默认情况下,所有频道都由NAudio录制。我正在录制PCM波,并获得一个4声道WAV输出文件。

当我尝试在NAudio中播放文件时,我收到一个调用acmFormatSuggest的MmException“NoDriver”。立体声文件播放正常。

我的声卡只能输出2个通道,这似乎会导致错误。将我的Windows音频设置设置为Quadraphonic无法解决此问题。

也许我可以要求NAudio只录制2个频道,或者在某个地方实现我自己的WaveStream?

有没有人想对NAudio中的频道数进行下采样? (最好是在创纪录的时间)。非常感谢!

1 个答案:

答案 0 :(得分:0)

是不是像在WaveFormat中声明一样简单? 12000是采样率,“1”是通道数。

 waveInStream = new WaveIn(WaveCallbackInfo.FunctionCallback());
 waveInStream.WaveFormat = new WaveFormat(12000, 1);
 waveInStream.DeviceNumber = 2;

 AudioWriter = new WaveFileWriter("c:\\MyAudio.wav", waveInStream.WaveFormat);
 waveInStream.DataAvailable += waveInStream_DataAvailable;
 waveInStream.StartRecording();

这就是我如何设置我的基本网络摄像头录像机和立体麦克风的代码,它输出单声道的wav文件。