共用方式為


IChannelAudioVolume::SetAllVolumes 方法 (audioclient.h)

SetAllVolumes 方法會設定音訊會話中所有通道的個別音量層級。

語法

HRESULT SetAllVolumes(
  [in] UINT32      dwCount,
  [in] const float *pfVolumes,
  [in] LPCGUID     EventContext
);

參數

[in] dwCount

pfVolumes 陣列中的項目數目。 此參數必須等於音訊會話數據流格式的通道數目。 若要取得通道數目,請呼叫 IChannelAudioVolume::GetChannelCount 方法。

[in] pfVolumes

音訊會話中信道音量層級數位的指標。 pfVolumes 陣列中的項目數目是由 dwCount 參數所指定。 呼叫端會將每個通道的磁碟區層級寫入至索引符合通道號碼的陣列元素。 如果音訊會話的數據流格式有 N 個通道,則通道會從 0 到 N– 1 編號。 有效的磁碟區層級介於 0.0 到 1.0 的範圍內。

[in] EventContext

事件內容 GUID 的指標。 如果呼叫這個方法會產生通道磁碟區變更事件,會話管理員會將通知傳送給所有已向會話管理員註冊 IAudioSessionEvents 介面的用戶端。 會話管理員會在每個通知中包含 EventContext 指標值。 收到通知時,用戶端可以藉由檢查 EventContext 值來判斷它或另一個用戶端是否為事件的來源。 此配置取決於客戶端選取這個參數的值,這個參數在會話中的所有客戶端之間是唯一的。 如果呼叫端提供此參數的 NULL 指標,則用戶端的通知方法會收到 NULL 內容指標。

傳回值

如果方法成功,它會傳回 S_OK。 如果失敗,可能的傳回碼包括但不限於下表所示的值。

傳回碼 Description
E_INVALIDARG
參數 dwCount 不等於音訊會話數據流格式的通道數目,或 pfVolumes 陣列元素的值不在 0.0 到 1.0 的範圍內。
E_POINTER
參數 pfVolumesNULL
AUDCLNT_E_DEVICE_INVALIDATED
音訊端點裝置已解除叢集,或音訊硬體或相關聯的硬體資源已重新設定、停用、移除或無法使用。
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows 音訊服務未執行。

備註

這個方法如果成功,則會產生通道磁碟區變更事件,而不論任何新的通道磁碟區層級與先前通道磁碟區層級的值是否不同。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 audioclient.h

另請參閱

IAudioSessionEvents 介面

IChannelAudioVolume 介面

IChannelAudioVolume::GetChannelCount