探索 Windows Vista 音訊引擎
本主題提供 Windows Vista 音訊引擎的概觀。 它著重于可協助您瞭解 APOs 和 SAPO 如何一起運作的概念。
下圖呈現音訊引擎內部結構的簡化版面配置。
如圖所示,系統提供的 APOs 和 SAPO 是音訊引擎的基本建置組塊。 音訊引擎會將系統提供的 APOs 和 SAPOs 設定為稱為管道的元件。 音訊引擎中有兩種類型的管道:
串流管道是由 ADO 和 SAPOs 所組成,可執行從單一應用程式本機到資料流程的數位音訊處理。 這種管道中的 sAPO 稱為本機效果 sAPO (LFX sAPO) 。
裝置管道是由 ADO 和 SAP 所組成,可執行影響全球所有資料流程的數位音訊處理。 這種管道中的 sAPO 稱為全域效果 sAPO (GFX sAPO) 。
下表顯示 Windows Vista 音訊引擎中可用的 SAPO,以及它們所套用的系統效果類型。
Windows Vista sAPO | 系統效果 |
---|---|
Bass Boost |
LFX |
Bass 管理 |
LFX |
音量相等 |
LFX |
低頻率保護 |
LFX |
說話者填滿 |
LFX |
說話者虛設 |
LFX |
虛擬範圍 |
LFX |
虛擬化環繞耳機 |
LFX |
適用于可攜式電腦的增強音效 |
GFX |
會議室更正 |
GFX |
當音訊應用程式起始音訊處理時,音訊引擎會將系統提供的 APOS 和 SAPO 設定為音訊圖形,以處理數位音訊資料。 音訊引擎用來建置音訊圖形的機制是系統詳細資料,將不會討論。
音訊應用程式可以在共用模式或獨佔模式中起始連線。 雖然 Windows Vista 會安裝一組預設的 SAPO,但 sAPO 不會被視為系統元件,因此可自訂。
共用模式
在共用模式中,音訊應用程式會與其他進程中執行的音訊應用程式共用音訊硬體。 音訊引擎會混合來自這些應用程式的串流,並透過硬體播放產生的混合。 任何以共用模式開啟資料流程的應用程式都必須選取音訊引擎所使用的混合格式。 使用共用模式的優點是 Windows Vista 音訊引擎提供內建的音訊處理物件 (APO) ,以提供必要的支援功能。 使用共用模式的缺點是音訊資料流程延遲高於獨佔模式。 下列程式碼範例示範在共用模式中初始化音訊資料流程的語法。
hResult = pAudioClient->Initialize(
AUDCLNT_SHAREMODE_SHARED,
0,
0,
0,
pWfx,
&m_SubmixGuid);
獨佔模式
相反地,當應用程式以獨佔模式開啟資料流程時,應用程式具有音訊硬體的獨佔存取權。 在此模式中,應用程式可以選取端點支援的任何音訊格式。 使用獨佔模式的優點是音訊串流延遲低於共用模式。 使用獨佔模式的缺點是您必須提供您自己的 APO 來處理音訊引擎的支援功能。 只有少數專業層級應用程式需要這種作業模式。 下列程式碼範例顯示以獨佔模式初始化音訊資料流程的語法。
hResult = pAudioClient->Initialize(
AUDCLNT_SHAREMODE_EXCLUSIVE,
0,
0,
0,
pWfxEx,
&m_SubmixGuid);
應用程式起始音訊處理之後,圖形產生器會將 sAPO 設定為音訊圖形,並初始化 SAPO。 音訊服務接著會與 LFX APO 交涉,以在 APO 的輸入和輸出建立音訊資料的格式。 如需詳細資訊,請參閱 格式交涉。