2

对于我的学校项目,我想知道是否有人可以帮助我找到一种通过我的 PC 扬声器实时输出声音的方法。这必须通过我的声卡完成,同时播放正在播放的信号参数,如相位、幅度、波形等?如果可能的话,出于实际原因,我更喜欢 C++ 语言下的库和 Windows 平台上的库。当然 Linux 也是可能的。

最重要的是,我还想通过每个扬声器发送不同的波形来创建驻波,正如通过这个实验可以看到的那样: www.youtube.com/watch ?v=T56waxJ7bB8

4

2 回答 2

1

一种有趣的可能性是使用JACK。它可以在 Linux、Windows 和 OSX 下运行,并提供对音频输出的低延迟访问。它还允许将输出任意路由到其他程序。

JACK 的编程模型非常简单 - 唯一支持的数据类型是 32 位的单通道float,因此您不必摆弄手动交错数据通道,而是提供左右音频正弦波发生器的单独实例并路由每个到相应的输出通道。

此外,作为一个次要的兴趣点,JACK2 是用 C++ 编写的(尽管外部 API 仍然是 C)。我建议从JACK wiki开始,也许修改一个简单的示例客户端来做你正在尝试的事情。

于 2014-07-23T16:50:12.860 回答
0

有一些 API 可以做到这一点。

  • 对于 Windows XP 及更高版本,请使用 DirectSound
  • 对于 Windows Vista/7/8 及更高版本,请使用 WASAPI
  • 有一些跨平台的 API,如 OpenAL 和 SDL。

在网上搜索一些示例。玩一会儿这些 API 和示例,看看你是怎么做的。

于 2014-07-23T15:08:38.390 回答