在Windows上使用C将数据stream式传输到声卡

作为大学项目的一部分,我必须做一些信号处理,并希望使用PC声卡输出结果。 该软件必须用C编写,需要与Windows(最好是7和XP)一起工作。

我发现输出.wav和类似文件的代码示例,但我有兴趣连续输出数据,而不是从文件输出。 尽pipe一些声音API似乎有自己的处理缓冲区的方法,但输出的数据很可能会以数组的forms呈现。

任何build议都会很好,代码示例甚至是最好的API。 我已经看过DirectSound和OpenAL,但是我还不确定如何开始。

PortAudio是一个C库,应该适合您的需求。 有一个教程 ,让你开始。

PortAudio是一个免费的跨平台的开源音频I / O库。 它可以让你编写简单的'C'或C ++音频程序,可以在包括Windows,Macintosh OS X和Unix(OSS / ALSA)在内的许多平台上编译和运行。 旨在促进不同平台上的开发人员之间的音频软件交换。 许多应用程序使用PortAudio进行音频I / O。

PortAudio提供了一个非常简单的API,用于使用简单的回调函数或阻塞式读/写接口来录制和/或播放声音。 包含播放正弦波,处理音频输入(吉他模糊),录制和播放音频,列出可用音频设备等的示例程序。