低级音频编程

时间:2010-11-14 00:11:51

标签: audio low-level

我想知道; Cubase和Audacity等音频软件是否使用PlaySound调用?

我在哪里可以了解低级音频编程?至于我在网上找到的信息,MCI似乎是Windows中最低级别的音频API ......

由于

修改:我不会要求仅针对Windows的信息。

2 个答案:

答案 0 :(得分:6)

有几种音频API可供选择。最早和最广泛支持的是waveOut API - 在MSDN中查找以waveOut开头的函数。一个稍微新一点的是DirectSound,它更倾向于游戏,但它的主要特点是waveOut是专业音频软件不使用的定位3D声音(它也应该具有比waveOut更低的延迟,但从未真正实现过)。对于低延迟音频,有ASIO。专业音频应用程序支持此API,但并非所有驱动程序都支持(它是专业声卡的标准功能,但不是游戏或板载硬件)。 ASIO可以提供比waveOut或DirectSound低得多的延迟。最后,还有内核流媒体接口,它是仍可从用户模式代码访问的最低级音频接口。这是Windows内部混音器的直接管道,它将当前正在播放声音的所有应用的输出组合到发送到声卡的信号中。尽管如此,这几乎没有记载。有一个名为ASIO4ALL的驱动程序(只是google),通过在内核流媒体接口上实现ASIO API,为没有ASIO驱动程序的声卡提供ASIO支持。

答案 1 :(得分:1)

我这里的游戏有点晚了,但我上周发布了一个Windows API历史记录,可能会增加一些上下文。 API的选择实际上取决于您的需求。如果你想避免第三方库,它实际上只能归结为MME,XAudio2和Core Audio(WASAPI)。

A Brief History of Windows Audio APIs

希望这有帮助!