共用方式為


IAudioEndpointVolume::SetChannelVolumeLevel 方法 (endpointvolume.h)

SetChannelVolumeLevel 方法會設定輸入或離開音訊端點裝置之音訊數據流指定通道的音量層級,以 decibel 為單位。

語法

HRESULT SetChannelVolumeLevel(
  [in] UINT    nChannel,
  [in] float   fLevelDB,
  [in] LPCGUID pguidEventContext
);

參數

[in] nChannel

通道號碼。 如果音訊數據流包含 n 個通道,則通道編號為 0 到 n– 1。 若要取得通道數目,請呼叫 IAudioEndpointVolume::GetChannelCount 方法。

[in] fLevelDB

以小數為單位的新磁碟區層級。 若要取得這個方法可設定之磁碟區層級的範圍和粒度,請呼叫 IAudioEndpointVolume::GetVolumeRange 方法。

[in] pguidEventContext

IAudioEndpointVolumeCallback::OnNotify 方法的內容值。 此參數指向事件內容 GUID。 如果 SetChannelVolumeLevel 呼叫變更端點的磁碟區層級,則所有已註冊 IAudioEndpointVolumeCallback 介面的客戶端都會收到通知。 在 OnNotify 方法的實作中,用戶端可以檢查事件內容 GUID,以探索它或另一個用戶端是否為磁碟區變更事件的來源。 如果呼叫端提供此參數的 NULL 指標,通知例程會收到內容 GUID 值GUID_NULL。

傳回值

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

傳回碼 Description
E_INVALIDARG
參數 nChannel 大於或等於數據流中的通道數目;或參數 fLevelDB 位於裝置支援的磁碟區範圍之外。
E_OUTOFMEMORY
記憶體不足。

備註

如果磁碟區層級 fLevelDB 落在 IAudioEndpointVolume::GetVolumeRange 方法所報告的磁碟區範圍之外, SetChannelVolumeLevel 呼叫會失敗,並傳回錯誤碼E_INVALIDARG。

規格需求

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

另請參閱

IAudioEndpointVolume 介面

IAudioEndpointVolume::GetChannelCount

IAudioEndpointVolume::GetVolumeRange

IAudioEndpointVolumeCallback 介面

IAudioEndpointVolumeCallback::OnNotify