如何将内存中的音频数据保存为wav文件?

时间:2012-09-15 14:14:54

标签: c winapi save wav

当应用程序在Windows上调用waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh)时,我会保存一份发送到内存中音频卡的音频数据(由pwh-> lpData指向)。

现在我想将音频数据保存为磁盘上的WAV格式文件,我该怎么做?

我有指向音频数据块的指针和音频数据的大小。

2 个答案:

答案 0 :(得分:2)

wav格式为pretty trivial,并且很容易编写自己的实现。或者,您可以使用libsndfile等库。

答案 1 :(得分:0)

使用传统多媒体API,您将使用mmioOpenmmioCreateChunkmmioWrite系列函数。以下是代码段:WAV saving?。 API允许您编写这些RIFF文件,但结构不是那么复杂,您可以直接写入二进制文件。

仍然是WinAPI,但与waveOutWrite

匹配不太匹配
  • 使用DirectShow API,您需要WavDest Sample和一个使用它来将传入数据写入文件的过滤器图。
  • 最新的Media Foundation API WavSink Sample将会有所帮助。