1

我正在使用 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但我没有找到正确的属性。

4

2 回答 2

3

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

于 2012-03-08T19:44:09.547 回答
-1

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

于 2012-04-22T22:24:46.720 回答