0

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

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

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

4

2 回答 2

2

wav 格式非常简单,很容易编写自己的实现。或者,您可以使用libsndfile 之类的库。

于 2012-09-15T14:26:52.593 回答
0

使用旧版多媒体 API,您将使用mmioOpen, mmioCreateChunk,mmioWrite系列函数。这是一个代码片段:WAV 保存?. API 允许您编写这些 RIFF 文件,但结构并不复杂,您可以直接写入二进制文件。

仍然是 WinAPI,虽然与您的匹配不太好waveOutWrite

  • 使用 DirectShow API,您需要WavDest Sample和一个过滤器图,使用它来将传入数据写入文件。
  • 使用最新的 Media Foundation API WavSink Sample将会很有帮助。
于 2012-09-15T14:40:44.003 回答