核心音訊介面
Core Audio SDK 的程式設計參考包含下列介面:
MMDevice API
Windows 多媒體裝置 (MMDevice) API 可讓音訊用戶端探索 音訊端點裝置、判斷其功能,以及建立這些裝置的驅動程序實例。頭檔 Mmdeviceapi.h 定義 MMDevice API 中的介面。 如需詳細資訊,請參閱 關於MMDevice API。
下表列出 Windows Vista 核心音訊 SDK 提供的 MMDevice 介面。
介面 | 描述 |
---|---|
IMMDevice | 表示音訊裝置。 |
IMMDeviceCollection | 表示音訊裝置的集合。 |
IMMDeviceEnumerator | 提供列舉音頻裝置的方法。 |
IMMEndpoint | 表示音訊端點裝置。 |
IMMNotificationClient | 當新增或移除音訊端點裝置、裝置的狀態或屬性變更,或指派給裝置的預設角色發生變更時,提供通知。 |
WASAPI
Windows 音訊會話 API (WASAPI) 可讓用戶端應用程式管理應用程式與 音訊端點裝置之間的音訊數據流程。 頭檔 Audioclient.h 和 Audiopolicy.h 會定義 WASAPI 介面。 如需詳細資訊,請參閱 關於WASAPI。
下表列出適用於 Windows Vista 和更新版本的 Core Audio SDK 提供的 WASAPI 介面。
介面 | 描述 |
---|---|
IActivateAudioInterfaceAsyncOperation | 表示啟動 WASAPI 介面的異步操作,並提供方法來擷取啟用的結果。 從 Windows 8 開始套用。 |
IActivateAudioInterfaceCompletionHandler | 提供回呼,指出 WASAPI 介面的啟用已完成。 從 Windows 8 開始套用。 |
IAudioCaptureClient | 可讓用戶端從擷取端點緩衝區讀取輸入數據。 |
IAudioClient | 可讓用戶端在音訊應用程式與音訊引擎或音訊端點裝置的硬體緩衝區之間建立和初始化音訊數據流。 |
IAudioClock | 可讓客戶端監視數據流的數據速率和數據流中目前的位置。 |
IAudioClock2 |
可讓用戶端取得目前的裝置位置。 |
IAudioClockAdjustment |
可讓客戶端設定數據流的取樣率。 |
IAudioRenderClient | 可讓客戶端將輸出數據寫入轉譯端點緩衝區。 |
IAudioSessionControl | 可讓客戶端設定音訊會話的控制參數,以及監視會話中的事件。 |
IAudioSessionControl2 |
可讓用戶端取得音訊會話的相關信息。 |
IAudioSessionManager | 可讓用戶端存取跨進程和進程特定音訊會話的會話控件和音量控件。 |
IAudioSessionManager2 |
管理所有副混音,包括子混音的列舉和通知。 它也支援躲避通知。 |
IAudioSessionEnumerator |
可讓用戶端列舉音訊會話。 |
IAudioStreamVolume | 可讓用戶端控制及監視音訊數據流中所有通道的音量層級。 |
IChannelAudioVolume | 可讓用戶端控制數據流所屬音訊會話中所有通道的音量層級。 |
ISimpleAudioVolume | 可讓用戶端控制音訊會話的主要音量層級。 |
IAudioSessionEvents | 提供會話相關事件的通知,例如磁碟區層級、顯示名稱和會話狀態的變更。 |
IAudioSessionNotification |
會話變更發生時傳送通知。 |
IAudioVolumeDuckNotification |
傳送暫止系統躲避變更的相關通知。 |
DeviceTopology API
DeviceTopology API 可讓用戶端應用程式周遊音頻轉譯和擷取裝置的功能硬體拓撲。 頭檔 Devicetopology.h 定義 DeviceTopology API 中的介面。 如需詳細資訊,請參閱 裝置拓撲 和 DeviceTopology API。
下表列出適用於 Windows Vista 和更新版本的 Core Audio SDK 提供的 DeviceTopology 介面。
介面 | 描述 |
---|---|
IAudioAutoGainControl | 提供硬體自動增益控制 (AGC) 的存取權。 |
IAudioBass | 提供硬體低音層級控件的存取權。 |
IAudioChannelConfig | 提供硬體通道元件的存取權。 |
IAudioInputSelector | 提供硬體多任務器控件的存取權(輸入選取器)。 |
IAudioLoudness | 提供「響度」補償控件的存取權。 |
IAudioMidrange | 提供硬體中層控件的存取權。 |
IAudioMute | 提供硬體靜音控件的存取權。 |
IAudioOutputSelector | 提供硬體解譯器控件的存取權(輸出選取器)。 |
IAudioPeakMeter | 提供硬體尖峰計量控件的存取權。 |
IAudioTreble | 提供硬體高階控件的存取權。 |
IAudioVolumeLevel | 提供硬體磁碟區控件的存取權。 |
I 連線 or | 表示元件之間的連接點。 |
IControlInterface | 表示元件上的控制項介面(子單位或連接器)。 |
IDeviceSpecificProperty | 表示連接器或子單位的裝置特定屬性。 |
IDeviceTopology | 提供音訊裝置拓撲的存取權。 |
IKsFormatSupport | 提供音訊裝置與系統記憶體之間軟體設定 I/O 連線(通常是 DMA 通道)所支援的音訊數據格式相關信息。 |
IKsJackDescription | 提供插孔或內部連接器的相關信息,這些連接器可在音訊適配卡上的裝置與外部或內部端點裝置之間提供實體連線(例如麥克風或 CD 播放器)。 |
IKsJackDescription2 |
提供對端點裝置之連接器KSPROPERTY_JACK_DESCRIPTION2屬性的便利存取。 |
IKsJackSinkInformation |
如果硬體支援插孔,請提供插孔接收的相關信息。 |
IPart | 表示裝置拓撲的元件(連接器或子單位)。 |
IPartsList | 代表元件清單(連接器和子單位)。 |
IPerChannelDbLevel | 表示泛型子單位控件介面,該介面會針對音訊數據流中的音訊數據流或音訊串流中的頻率頻帶,提供音量層級的個別通道控制。 |
ISubunit | 表示位於用戶端與音訊端點裝置之間數據路徑的硬體子單位(例如音量層級控件)。 |
IControlChangeNotify | 當元件的狀態(連接器或子單位)變更時,提供通知。 |
EndpointVolume API
EndpointVolume API 可讓特製化用戶端控制及監視音訊端點裝置的音量層級。 頭檔 Endpointvolume.h 會定義 EndpointVolume API 中的介面。 如需詳細資訊,請參閱 EndpointVolume API 。
下表列出適用於 Windows Vista 的核心音訊 SDK 提供的 EndpointVolume 介面。
介面 | 說明 |
---|---|
IAudioEndpointVolume | 代表音訊端點裝置或從音訊端點裝置的音訊數據流上的音量控件。 |
IAudioEndpointVolumeEx |
提供音訊串流對裝置端點或從裝置端點進行音量控制。 |
IAudioMeterInformation | 表示音訊串流對音訊端點裝置或從音訊端點裝置的尖峰計量。 |
IAudioEndpointVolumeCallback | 當音訊端點裝置的音量層級或靜音狀態變更時,提供通知。 |