DirectSound是微软所开发DirectX的组件之一,可以在Windows操作系统上录音,并且记录波形音效(waveform sound)。目前DirectSound是一个成熟的API,提供许多有用的功能,例如能够在较高的分辨率播放多声道声音。

DirectSound3D(DS3D)最早是1993年与DirectX 3一起发表的。DirectX 8以后的DirectSound和DirectSound3D的(DS3D)被合称DirectX Audio。

Windows后续发展 编辑

Windows Vista之后 编辑

自Windows Vista开始,微软把以往的整套音频架构重写,提出了一套新的通用音频架构Universal Audio Architechture(UAA),此改动规定所有声卡厂商必须跟从UAA架构来编写其驱动程序。由于历史因素,声卡厂商以往会在编写其驱动程序时,把部分功能:例如DSP特效编写并执行于核心模式之上(Kernel Mode),但是对于Windows而言,假若音效驱动程序发生故障,会直接引致整个Windows故障亦降低其稳定性。有见及此,在UAA开始后,各声卡厂商必须把原有写在核心模式上的功能转移及编写写在用户模式(User-Mode)之上。而配合UAA架构,微软在Windows Vista开始重写其音效框架,并且增加一套全新的音频API,Windows Audio Session API(WASAPI)给软件开发者。

此API完全改写以往旧版Windows时处理音频资料的流程,所有音频流必须经过此API才能控制或输出其音频资料流,WASAPI提供两种模式给开发者,分别为:共享模式和独占模式,其中独占模式效果相近于ASIO,当应用程序使用独占模式时,随已独占的音频程序外,其他程序音频流均会被截断,系统也只允许独占模式中的音效程序播放音效,而有关音效也不会经过重新采样或DSP效果等便可以直达声卡输出,这样可确保原始音效资料发送时不会受到干扰,而且一定程度保证了其的完整性,而WASAPI也允许每个程序均可设置其独立的音量大小,不再以单一固定的系统音效控制音量大小。

但不幸的是,以往游戏以至音频程序常用的音效硬件加速API,DirectSound,Direct Sound 3D,Direct Sound EAX效果以致Kernel Stream等也不能再直接使用声卡进行硬件加速,如程序使用以上API,将透过WASAPI改用CPU进行软件模拟方式处理相关的音频资料。正因如此,微软建议各声卡以致程序开发商改用其他音频API以便作硬件加速方案,例如:OpenAL/OpenSL这些API为程序重新提供硬件音频加速功能。

Windows 8 编辑

Windows 8开始,微软再次为WASAPI重新加入硬件加速功能,称为WASAPI硬件音频卸载(Hardware Offload)允许音频可以从CPU改用声卡作处理,但这功能局限于ModernUI程序使用,传统应用程序是无法使用此硬件加速功能

XAudio 2 编辑

微软为了与Xbox 360集成,积极开发了Xbox audio APIs像是XAudio和the Cross-platform Audio Creation Tool(XACT)。XAudio 2可以跨平台(Windows与Xbox),意图取代DirectSound[1]

WinCE 编辑

DirectSound在Windows CE 4.2上有支持,5.0时被移除[2]。Windows CE 6.0也不支持DirectSound,应用程序被重写成Waveform Audio API。

注释 编辑

  1. ^ 但XAudio2跟WASAPI一样,也是不能使用音效加速,只是一套软件音频处理引擎,而且到目前为止仍没有厂商在Windows环境下使用Game Developers Conference: Future of audio on Windows and Xbox页面存档备份,存于互联网档案馆
  2. ^ Windows CE 5.0 removed functionality. [2010-04-08]. (原始内容存档于2008-04-11). 

外部链接 编辑