2015-03-31 71 views
1

我正在從DIS接收來自網絡的數據包,並希望將這些數據轉換爲wav文件。我向我的提供者添加緩衝區如下。NAudio捕獲到wav文件

WaveFileWriter writer; 

    public Player() 
    { 
     writer = new WaveFileWriter(@"c:\_temp\file.wav", waveProvider.WaveFormat); 
    } 

    public void AddSamples(byte[] leftDataBuffer) 
    { 
     waveProvider.AddSamples(leftDataBuffer, 0, leftDataBuffer.Length); 
     writer.Write(leftDataBuffer, 0, leftDataBuffer.Length); 
    } 

我該如何繼續添加緩衝區到這個函數本身的同一個文件?請幫忙。

回答

1

我不確定您是否試圖播放音頻,或者只是將其保存爲WAV。如果只是創建WAV,請使用WaveFileWriter而不是BufferedWaveProvider,並撥打Write傳入接收的音頻。

但是,如果你願意,你可以使用兩者,將接收到的數據寫入WaveFileWriter並將其放入BufferedWaveProvider進行實況回放。

+0

我想使用BufferedWaveProvider,因爲我想現場播放它,但同時也想創建一個wav文件。 – user2837961 2015-03-31 11:18:41

+0

好的,所以有一個WaveFileWriter,並調用它的內容leftDatabuffer – 2015-03-31 13:20:15

+0

寫內容我試過了。它記錄在一個wav文件中,但在聽到wav文件時,它很慢/延遲,就好像每個單詞都很緊張。我已更新我的代碼 – user2837961 2015-04-01 07:51:21