2

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

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

谢谢

编辑:我不要求仅针对 Windows 的信息。

4

3 回答 3

8

有多种音频 API 可供选择。最古老和最广泛支持的是API - 查找以 MSDNwaveOut开头的函数。waveOut较新的是 DirectSound,它更适合游戏,但它的主要功能是 waveOut 的主要功能是专业音频软件不使用的位置 3D 声音(它也应该具有比 waveOut 更低的延迟,但从未真正实现)。对于低延迟音频,有ASIO. 专业音频应用程序支持此 API,但并非所有驱动程序都支持(这是专业声卡的标准功能,但不是游戏或板载硬件)。ASIO 可以提供比 waveOut 或 DirectSound 低得多的延迟。最后是内核流接口,它是用户模式代码仍可访问的最低级别的音频接口。这是进入 Windows 内部混音器的直接管道,它将当前正在播放声音的所有应用程序的输出组合成发送到声卡的信号。虽然它几乎没有记录。有一个驱动程序称为ASIO4ALL(只是谷歌它),通过在内核流接口之上实现 ASIO API,在没有 ASIO 驱动程序的声卡上提供 ASIO 支持。

于 2010-11-14T00:30:51.560 回答
2

我在这里玩游戏有点晚了,但我上周发布了 Windows API 历史记录,可能会添加更多上下文。API 的选择实际上取决于您的需求。如果您想避免使用 3rd 方库,它实际上只能归结为 MME、XAudio2 和 Core Audio (WASAPI)。

Windows 音频 API 简史

希望这可以帮助!

于 2015-10-19T12:46:15.113 回答
1

实际上,如果您正在寻找的不仅仅是仅 Windows 的输出支持,那么最好的开始方法是查看 Phil Burk 的PortAudio,在撰写本文时可从http://www.portaudio.com/获得。

ASIO 是一个优质的界面,但它是 Steinberg 的专有产品。

在现代 Windows 中,有许多比 MCI 更低级别的音频输出接口。这些至少包括DirectSoundXAudioWASAPI

我建议尽可能避免使用 Windows API,而是学习 PortAudio。

于 2015-09-20T19:16:06.480 回答