代码之家  ›  专栏  ›  技术社区  ›  Midas

低级音频编程

  •  1
  • Midas  · 技术社区  · 15 年前

    我想知道,像Cubase和Audacity这样的音频软件使用PlaySound通话吗??

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

    谢谢

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

    3 回复  |  直到 10 年前
        1
  •  6
  •   Fabian Giesen    15 年前

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

        2
  •  1
  •   johnwbyrd    10 年前

    实际上,如果您要寻找的不仅仅是仅支持Windows的输出,那么最好的开始方法是查看Phil Burk的 PortAudio ,自本文撰写之日起在 http://www.portaudio.com/ .

    ASIO是一个高质量的接口,但它是Steinberg专有的。

    在现代窗口中,音频输出接口比MCI低很多。其中至少包括: DirectSound , XAudio WASAPI .

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

        3
  •  1
  •   Shane Kirk    10 年前

    我在这里的游戏有点晚了,但上周我发布了一个WindowsAPI历史,可能会添加更多的上下文。API的选择实际上取决于您的需要。如果您想避免使用第三方库,它实际上只涉及到MME、Xaudio2和Core Audio(WASAPI)。

    A Brief History of Windows Audio APIs

    希望这有帮助!

    推荐文章