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

时间:2011-05-26 20:18:38

标签: c windows signal-processing openal directsound

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

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

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

2 个答案:

答案 0 :(得分:5)

PortAudio是一个适合您需求的C库。有一个tutorial可以让你入门。

  

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

     

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

答案 1 :(得分:1)

如果您想使用directshow,

https://github.com/rdp/directshow-demo-audio-input-open-source可能会有所帮助。