C# 如何使用NAudio更改WASAPI记录比特率?

C# 如何使用NAudio更改WASAPI记录比特率?,c#,naudio,wasapi,C#,Naudio,Wasapi,我用NAudio解码、播放和录制MP3流。对于录制,我使用WasapiLoopbackCapture将流保存到wav文件: if (waveIn == null) { waveIn = new WasapiLoopbackCapture(); writer = new WaveFileWriter(outputFilename, waveIn.WaveFormat); waveIn.DataAvailable += new EventHandler<WaveInEventArg

我用NAudio解码、播放和录制MP3流。对于录制,我使用
WasapiLoopbackCapture
将流保存到wav文件:

if (waveIn == null) {
  waveIn = new WasapiLoopbackCapture();
  writer = new WaveFileWriter(outputFilename, waveIn.WaveFormat);
  waveIn.DataAvailable += new EventHandler<WaveInEventArgs>(waveIn_DataAvailable);
  waveIn.RecordingStopped += new EventHandler(waveIn_RecordingStopped);
  waveIn.StartRecording();
}
if(waveIn==null){
waveIn=新WasapiLoopbackCapture();
writer=新的WaveFileWriter(outputFilename,waveIn.WaveFormat);
waveIn.DataAvailable+=新的事件处理程序(waveIn_DataAvailable);
waveIn.RecordingsStopped+=新事件处理程序(waveIn_RecordingsStopped);
waveIn.StartRecording();
}

我现在正在寻找一种解决方案来保存wav文件,而不是3072 kBit/s(这似乎是wasApi的标准)。mp3流提供128 kBit/s,因此这对于我的wav文件来说是一个很好的比特率。我试图修改waveIn.WaveFormat,但没有找到正确的属性。

不幸的是,WASAPI不允许您更改环回记录的采样率。之后,您必须自己执行采样率转换。NAudio的<代码> DmoResampler <代码>或代码>波形格式转换流> /Cux>类可用于此。

< P>我不熟悉NoAudio对WASAPI的抽象,但您可以强制Windows使用WASAPI C++ API给您特定的比特率/采样中的音频。 如果有帮助的话