AUDIO_VOLUME_NOTIFICATION_DATA 結構 (endpointvolume.h)
AUDIO_VOLUME_NOTIFICATION_DATA 結構描述音訊端點裝置音量層級或靜音狀態的變更。
語法
typedef struct AUDIO_VOLUME_NOTIFICATION_DATA {
GUID guidEventContext;
BOOL bMuted;
float fMasterVolume;
UINT nChannels;
float afChannelVolumes[1];
} AUDIO_VOLUME_NOTIFICATION_DATA, *PAUDIO_VOLUME_NOTIFICATION_DATA;
成員
guidEventContext
IAudioEndpointVolumeCallback::OnNotify 方法的內容值。 這個成員是事件內容 GUID 的值,這個 GUID 是以 IAudioEndpointVolume 方法呼叫的形式提供給變更端點磁碟區層級或靜音狀態的輸入參數。 如需詳細資訊,請參閱<備註>。
bMuted
指定音訊數據流目前是否為靜音。 如果 bMuted 為 TRUE,則數據流會設為靜音。 如果 為 FALSE,則數據流不會設為靜音。
fMasterVolume
指定音訊數據流目前的主要音量層級。 磁碟區層級會正規化為0.0到1.0的範圍,其中0.0是最小磁碟區層級,而1.0是最高層級。 在此範圍內,正規化音量層級與訊號幅度衰減的關聯性是由非線性的音訊磁帶曲線所描述。 如需音訊點選器的詳細資訊,請參閱 音訊磁帶音量控件。
nChannels
指定音訊數據流中的通道數目,這也是 afChannelVolumes 陣列中的元素數目。 如果音訊數據流包含 n 個通道,則通道編號為 0 到 n-1。 特定通道的磁碟區層級包含在索引符合通道號碼的陣列元素中。
afChannelVolumes[1]
通道磁碟區陣列中的第一個專案。 這個專案包含音訊數據流中信道0的目前音量層級。 如果音訊數據流包含多個通道,其他通道的音量層級會緊接在 AUDIO_VOLUME_NOTIFICATION_DATA 結構之後。 每個通道的磁碟區層級都會正規化為0.0到1.0的範圍,其中0.0是最小磁碟區層級,而1.0是最大層級。 在此範圍內,正規化音量層級與訊號幅度衰減的關聯性是由非線性的音訊磁帶曲線所描述。
備註
IAudioEndpointVolumeCallback::OnNotify 方法會使用此結構。
用戶端可以註冊,以在端點裝置的磁碟區層級或靜音狀態變更時收到通知。 下列方法可能會導致這類變更:
- IAudioEndpointVolume::SetChannelVolumeLevel
- IAudioEndpointVolume::SetChannelVolumeLevelScalar
- IAudioEndpointVolume::SetMasterVolumeLevel
- IAudioEndpointVolume::SetMasterVolumeLevelScalar
- IAudioEndpointVolume::SetMute
- IAudioEndpointVolume::VolumeStepDown
- IAudioEndpointVolume::VolumeStepUp
上述清單中的每一種方法都接受名為 pguidEventContext的輸入參數,這是事件內容 GUID 的指標。 將通知傳送給用戶端之前,方法會將pguidEventContext所指向的事件內容 GUID 複製到其透過 OnNotify 方法提供給用戶端之AUDIO_VOLUME_NOTIFICATION_DATA結構的 guidEventContext 成員。 如果 pguidEventContext 為 NULL,guidEventContext 成員的值會設定為 GUID_NULL。
在 OnNotify 方法的實作中,用戶端可以從該呼叫檢查事件內容 GUID,以探索它或另一個用戶端是否為磁碟區變更事件的來源。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
標頭 | endpointvolume.h |
另請參閱
IAudioEndpointVolume::SetChannelVolumeLevel
IAudioEndpointVolume::SetChannelVolumeLevelScalar
IAudioEndpointVolume::SetMasterVolumeLevel
IAudioEndpointVolume::SetMasterVolumeLevelScalar
IAudioEndpointVolume::VolumeStepDown
IAudioEndpointVolume::VolumeStepUp