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

时间:2012-03-08 09:50:47

标签: c# naudio wasapi

我正在使用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();
}

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

2 个答案:

答案 0 :(得分:3)

不幸的是,WASAPI不允许您更改环回录制的采样率。之后您必须自己执行自己的采样率转换。 NAudio中的DmoResamplerWaveFormatConversionStream类可用于此目的。

答案 1 :(得分:-1)

我不熟悉Naudio对wasapi的抽象,但是您可以使用wasapi C ++ API强制窗口以特定比特率/样本大小为您提供音频。 如果这有帮助