我已将音频录制到 CaptureBuffer,但我不知道如何将其保存到 wav 文件中。我已经尝试过这个(http://www.tek-tips.com/faqs.cfm?fid=4782 http://www.tek-tips.com/faqs.cfm?fid=4782),但是没用,或者说我没有正确使用它。有人知道如何解决这个问题吗?示例代码将非常感激。
WAV 文件是由两个主要“块”组成的 RIFF 文件。第一个是格式块,描述音频的格式。这将是您录制的采样率(例如 44.1kHz)、位深度(例如 16 位)以及通道数(单声道或立体声)。 WAV 还支持压缩格式,但您录制的音频不太可能是压缩的,因此您的记录缓冲区将包含 PCM 音频。
然后是数据块。这是 WAV 文件的一部分,包含捕获缓冲区中的实际音频数据。这必须采用格式块中描述的格式。
作为NAudio http://naudio.codeplex.com/我创建了一个项目波形文件写入器 http://naudio.codeplex.com/SourceControl/changeset/view/76093#7823类来简化 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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)