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). 

外部链接 编辑