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]

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

外部連結

編輯