共用方式為


音量控件

管理共用模式數據流的用戶端通常會使用 ISimpleAudioVolumeIAudioSessionEvents 介面,WASAPI 來控制和監視數據流磁碟區層級。 透過 ISimpleAudioVolume 介面中的方法,用戶端可以取得和設定共用模式數據流所屬 音訊 工作階段的音量層級。 如果 Sndvol 或其他應用程式變更會話磁碟區層級,用戶端可以透過 IAudioSessionEvents 介面接收變更的通知。

管理獨佔模式數據流的用戶端通常會使用 IAudioEndpointVolumeIAudioEndpointVolumeCallback 介面 EndpointVolume API 來控制和監視數據流磁盤區層級。 透過 IAudioEndpointVolume 介面中的方法,用戶端可以取得和設定 音頻端點裝置的音量層級,。 如果 Sndvol 或其他應用程式變更端點裝置的磁碟區層級,用戶端可以透過 IAudioEndpointVolumeCallback 介面接收變更通知。

音訊會話中所述,Sndvol 是系統音量控制程式。 它會顯示系統中音訊轉譯端點裝置的音量控件。 (目前,它不會顯示音訊擷取端點裝置的音量控件。若要檢視特定裝置的磁碟區控件,請單擊功能表欄中的 [裝置],然後從可用裝置清單中選取裝置名稱。

Sndvol 視窗會將裝置的音量控件分成兩個群組。 視窗左側的群組方塊會標示為 [裝置] 裝置 方塊包含由 IAudioEndpointVolume 介面控制的單一磁碟區控件。 用戶可以透過 IAudioEndpointVolumeCallback介面監視此磁碟區控件所做的變更。

Sndvol 視窗右側的群組方塊會 應用程式標籤。 [應用程式] 方塊包含目前共用裝置之應用程式的磁碟區控制件。 對於在共用模式中使用裝置的應用程式,磁碟區控件代表由 ISimpleAudioVolume 介面所控制的磁碟區層級。 用戶對這些磁碟區控件所做的變更可以透過 IAudioSessionEvents 介面來監視。

雖然共用模式應用程式可以使用其 IAudioSessionEvents 介面來監視使用者在 Sndvol 視窗中 應用程式 方塊中對應用程式音量控件所做的變更,但應用程式無法監視其他無關應用程式的磁碟區控件變更。 同樣地,應用程式可以透過 ISimpleAudioVolume 介面變更其音訊會話的音量層級,但無法變更屬於其他不相關的應用程式的會話音量層級。

不過,在 Sndvol 視窗中的 [應用程式] 方塊中,可以共用兩個或多個相關應用程式(或相同應用程式的實例)相同的音量控制,方法是將音頻數據流指派給相同的跨進程會話,或將各自的會話與相同的群組參數產生關聯。 如需詳細資訊,請參閱 音訊工作階段群組參數

WASAPI 提供兩個額外的介面,IChannelAudioVolumeIAudioStreamVolume,以控制共用模式數據流的磁碟區層級。 這些介面主要供特殊用戶端使用,這些用戶端需要控制會話中個別通道的磁碟區層級,或會話中的個別數據流。

DeviceTopology API 可讓用戶端存取音訊配接器拓撲中的音量控制。 不過,管理獨佔模式數據流的用戶端通常會使用 EndpointVolume API,而不是 DeviceTopology API 來控制數據流磁碟區層級。 EndpointVolume API 可透過兩種方式簡化端點裝置磁碟區的控制。 首先,如果端點裝置實作硬體磁碟區控制,DeviceTopology API 會要求用戶端周遊裝置拓撲,以搜尋硬體控制。 相反地,EndpointVolume API 會自動尋找客戶端的硬體磁碟區控制。 其次,如果端點裝置未實作硬體磁碟區控制,DeviceTopology 用戶端必須在軟體中實作磁碟區控制。 相反地,EndpointVolume API 會自動以軟體磁碟區控件取代遺漏的硬體控制。

下列各節說明音訊會話和音訊端點裝置的音量控制:

程式設計手冊