2

我已将音频录制到 CaptureBuffer,但我不知道如何将其保存到 wav 文件中。我试过这个(http://www.tek-tips.com/faqs.cfm?fid=4782),但它没有用,或者我没有正确使用它。有谁知道如何解决这个问题?示例代码将不胜感激。

4

1 回答 1

5

WAV 文件是由两个主要“块”组成的 RIFF 文件。第一个是格式块,描述音频的格式。这将是您录制的采样率(例如 44.1kHz)、位深度(例如 16 位)和通道数(单声道或立体声)。WAV 也支持压缩格式,但您不太可能录制压缩的音频,因此您的录制缓冲区将包含 PCM 音频。

然后是数据块。这是 WAV 文件的一部分,它包含捕获缓冲区中的实际音频数据。这必须是格式块中描述的格式。

作为NAudio项目的一部分,我创建了一个WaveFileWriter类来简化 WAV 文件的创建。你传入一个 WaveFormat 来描述你捕获的音频的格式。然后您可以简单地将原始捕获的数据写入其中。

下面是一些关于如何使用 WaveFileWriter 的简单示例代码:

WaveFormat format = new WaveFormat(16000, 16, 1); // for mono 16 bit audio captured at 16kHz
using (var writer = new WaveFileWriter("out.wav", format)
{
    writer.WriteData(captureBuffer, 0, captureBuffer.Length);
}
于 2011-07-18T20:52:02.653 回答