作为大学项目的一部分,我必须进行一些信号处理,并希望使用PC声卡输出结果。该软件必须用C语言编写,并且需要与Windows一起使用(最好是7和XP)。
我找到了输出.wav和类似文件的代码示例,但我对连续输出数据而不是从文件输出感兴趣。虽然一些声音API似乎有自己处理缓冲区的方法,但输出数据可能会以数组形式呈现。
任何建议都会很棒,代码示例甚至是最好的API也是如此。我看过DirectSound和OpenAL,但我仍然不确定如何开始。
答案 0 :(得分:5)
PortAudio是一个适合您需求的C库。有一个tutorial可以让你入门。
PortAudio是一个免费的跨平台, 开源音频I / O库。它 让你编写简单的音频程序 在'C'或C ++中将编译和 在许多平台上运行,包括 Windows,Macintosh OS X和Unix (OSS / ALSA)。它旨在促进 之间的音频软件交换 不同平台上的开发者。 许多应用程序使用PortAudio 音频I / O.
PortAudio提供了一个非常简单的API 用于录制和/或播放声音 使用简单的回调函数或 阻止读/写接口。例 包括正在播放正弦的节目 波,处理音频输入(吉他 模糊),录制和播放音频,列表 可用的音频设备等。
答案 1 :(得分:1)
https://github.com/rdp/directshow-demo-audio-input-open-source可能会有所帮助。