IPerChannelDbLevel::SetLevel 方法 (devicetopology.h)
SetLevel 方法會設定指定通道的音量層級,以分貝為單位。
語法
HRESULT SetLevel(
[in] UINT nChannel,
[in] float fLevelDB,
[in] LPCGUID pguidEventContext
);
參數
[in] nChannel
選取通道的數目。 如果音訊串流有 N 個通道,則通道會從 0 到 N– 1 編號。 若要取得數據流中的通道數目,請呼叫 IPerChannelDbLevel::GetChannelCount 方法。
[in] fLevelDB
以分貝為單位的新磁碟區層級。 正值代表增益,負值代表衰減。
[in] pguidEventContext
IControlChangeNotify::OnNotify 方法的內容值。 此參數指向事件內容 GUID。 如果 SetLevel 呼叫變更層級控件的狀態,則已註冊 IControlChangeNotify 介面且該控件的所有客戶端都會收到通知。 在 OnNotify 方法的實作中,用戶端可以檢查事件內容 GUID,以探索事件內容 GUID 或另一個用戶端是否為控件變更事件的來源。 如果呼叫端提供此參數的 NULL 指標,則用戶端的通知方法會收到 NULL 內容指標。
傳回值
如果方法成功,它會傳回 S_OK。 如果失敗,可能的傳回碼包括但不限於下表所示的值。
傳回碼 | Description |
---|---|
|
參數 nChannel 超出範圍。 |
|
記憶體不足。 |
備註
如果呼叫端指定 fLevelDB 的值是確切的逐步執行值, SetLevel 方法就會順利完成。 後續呼叫 IPerChannelDbLevel::GetLevel 方法會傳回已設定的值,或下列其中一個值:
- 如果設定的值低於最小值, GetLevel 方法會傳回最小值。
- 如果設定的值高於最大值, GetLevel 方法會傳回最大值。
- 如果 set 值介於兩個逐步執行值之間, GetLevel 方法會傳回值,該值可以是上一個逐步執行值或設定值下方的逐步執行值;從設定值到鄰近逐步執行值的相對距離並不重要。 GetLevel 方法所傳回的值是對訊號路徑造成更多影響的值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | devicetopology.h |