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

Posted

技术标签:

【中文标题】错误的 .wav 格式录制音频 NAudio 库【英文标题】:wrong .wav format recording audio NAudio library 【发布时间】:2014-03-22 18:32:15 【问题描述】:

我在我的 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();
    

一切正常,文件保存在项目位置,但我无法打开它。它说它是一个波形文件,但每次我想播放它时,它都说我必须找到以该格式播放的编解码器(但没有任何)。

【问题讨论】:

它不起作用..不知道为什么..如果我记录例如 4s 的文件大小 iz 487kb,我猜没关系.. 【参考方案1】:

不要创建具有 0 个通道的 WaveFormat。单声道应使用 1,立体声应使用 2。

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

【讨论】:

以上是关于错误的 .wav 格式录制音频 NAudio 库的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中以 wav 格式录制音频?

在控制台应用程序中使用 NAudio 录制麦克风音频

即时将原始音频字节从 NAudio 转换为 wav 字节

Naudio wav格式问题

ExtAudioRecorder:“写入失败:EBADF(错误文件描述符)”将音频录制到 WAV 文件 - Android Studio

如何把matlab里的音频文件转换为wav格式