当应用程序waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh)
在 Windows 上调用时,我将发送到音频卡的音频数据(由 pwh->lpData 指向)的副本保存在内存中。
现在我想将音频数据保存为WAV格式的文件在磁盘上,我该怎么做呢?
我有指向音频数据块的指针和音频数据的大小。
wav 格式非常简单,很容易编写自己的实现。或者,您可以使用libsndfile 之类的库。
使用旧版多媒体 API,您将使用mmioOpen
, mmioCreateChunk
,mmioWrite
系列函数。这是一个代码片段:WAV 保存?. API 允许您编写这些 RIFF 文件,但结构并不复杂,您可以直接写入二进制文件。
仍然是 WinAPI,虽然与您的匹配不太好waveOutWrite
: