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

she*_*pez 2 c windows signal-processing openal directsound

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

我找到了输出.wav和类似文件的代码示例,但我感兴趣的是不断输出数据而不是从文件输出.虽然一些声音API似乎有自己的处理缓冲区的方法,但输出数据可能会以数组形式呈现.

任何建议都会很棒,代码示例甚至是最好的API也是如此.我看过DirectSound和OpenAL,但我仍然不确定如何开始.

Jud*_*den 5

PortAudio是一个适合您需求的C库.有一个教程可以帮助您入门.

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

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