Windows 音訊架構
本主題提供 Windows 10/11 音訊架構的高階摘要。
Windows 10/11 音訊堆棧圖表
此圖表提供 Windows 10/11 音訊堆疊主要元素的摘要。
API
最上層 API
最上層 API 用於應用程式開發。 這些 API 目前正在使用中,且受到支援。
- XAML MediaElement 類別(C#、VB、C++)
- HTML Audio 物件和 Video 物件<標籤>(由網站和 Windows Web Apps 使用)
- Windows.Media.Capture 命名空間 (C#、VB、C++)
- Microsoft Media Foundation (C++)
這些較舊的 API 已被取代。
低階 API
建議針對音訊串流使用這些較低層級的 API。
建議使用這個較低層級的 API 進行列舉。
Windows 應用程式不建議使用這些 API。
- 關於 MMDevice API (由 Windows.Devices.Enumeration 取代)
- DeviceTopology API
- EndpointVolume API
音訊引擎
音訊引擎包含兩個相關元件,即音訊裝置圖形(audiodg.exe),其會載入音訊引擎(audioeng.dll)。
音訊引擎:
- 混合和處理音訊串流。 如需音訊引擎如何使用緩衝區傳輸音訊的詳細資訊,請參閱 瞭解 WaveRT 埠驅動程式。
- 載入音訊處理物件 (APOs),這是處理音訊號的 H/W 特定外掛程式。 如需APOs的詳細資訊,請參閱 Windows 音訊處理物件。
音訊服務 (audiosrv.dll)
音訊服務:
- 用來設定和控制音訊串流。
- 實作背景音訊播放、躲避等的 Windows 原則。
音訊端點產生器(audioendpointbuilder.exe)
音訊端點產生器 (audioendpointbuilder.exe):
- 用來探索新的音訊裝置並建立軟體音訊端點。 如需所使用演算法的詳細資訊,請參閱 音訊端點產生器演算法。
音訊驅動程式
音訊驅動程式:
- 遵循 port-miniport 模型。 如需詳細資訊,請參閱 WDM 音訊術語 和 開發 WaveRT 迷你埠驅動程式。
- 允許音訊堆疊從數個音訊裝置轉譯和擷取音訊,包括:整合式喇叭和麥克風、耳機/耳機、USB 裝置、藍牙 裝置、HDMI 等。
- 埠迷你埠模型對應至進階 Linux 音效架構 ALSA
- 如需範例驅動程式程式代碼的相關信息,請參閱 範例音訊驅動程式。
硬體
任何指定裝置上存在的音訊硬體會有所不同,但可以包括:
- 音訊編解碼器
- DSP (選擇性)
- 整合式喇叭、麥克風等
- 外部裝置:USB 音訊裝置、藍牙 音訊裝置、HDMI 音訊等。
- 訊號處理也可以在 H/W 中實作(例如編解碼器或 DSP),而不是或除了 APOs 之外。