2015-03-31 54 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