2012-03-08 133 views
1

我正在使用NAudio解碼,播放和錄製MP3流。爲了記錄我使用WasapiLoopbackCapture到流保存到一個wav文件:如何用NAudio更改WASAPI記錄比特率?

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,但我沒有找到合適的屬性。

回答

3

不幸的是WASAPI不允許更改回送錄音採樣率。之後您必須自己執行自己的採樣率轉換。 NAudio中的DmoResamplerWaveFormatConversionStream類可以用於此目的。

-1

我不熟悉Naudio對wasapi的抽象,但是您可以強制Windows使用wasapi C++ API爲您提供特定比特率/ samplesize的音頻。 如果有幫助