错误的.wav格式录制音频NAudio库

时间:2014-03-22 18:32:15

标签: c# audio wav naudio recording

在我的wpf应用程序中尝试从麦克风录制声音时遇到问题。这是我的代码:

    public NAudio.Wave.WaveFileWriter wav_writer = null;  // snemanje
    public WaveIn strim;

    private void snemanje_Click(object sender, RoutedEventArgs e)
    {
        strim = new WaveIn();
        strim.WaveFormat = new WaveFormat(44100, 0);

        SaveFileDialog svg = new SaveFileDialog();
        svg.Filter = "*WAV File (*.wav)|*.wav;*";
        svg.ShowDialog();

        strim.DataAvailable += new EventHandler<WaveInEventArgs>(waveInStream_DataAvailable);
        wav_writer = new WaveFileWriter(svg.FileName, strim.WaveFormat);
        strim.StartRecording();
    }


    public void waveInStream_DataAvailable(object sender, WaveInEventArgs e)
    {
        wav_writer.WriteData(e.Buffer, 0, e.BytesRecorded);
        wav_writer.Flush();
    }

一切都很完美,文件保存在项目位置,但我无法操作。它说它是一个波形文件,但每次我想播放它,它说我必须找到以这种格式播放的编解码器(但没有任何)。

1 个答案:

答案 0 :(得分:0)

不要创建包含0个通道的WaveFormat。您应该使用1表示单声道或2表示立体声。

 // create a mono 44.1kHz wave format
 new WaveFormat(44100, 1);