共用方式為


(audiopolicy.h) IAudioSessionControl::GetState 方法

GetState 方法會擷取音訊會話的目前狀態。

語法

HRESULT GetState(
  [out] AudioSessionState *pRetVal
);

參數

[out] pRetVal

方法寫入目前會話狀態的變數指標。 狀態必須是下列其中一個 AudioSessionState 列舉值:

AudioSessionStateActive

AudioSessionStateInactive

AudioSessionStateExpired

這些值分別表示會話狀態為作用中、非使用中或已過期。 如需詳細資訊,請參閱<備註>。

傳回值

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

傳回碼 Description
E_POINTER
參數 pRetValNULL
AUDCLNT_E_DEVICE_INVALIDATED
音訊端點裝置已解除叢集,或音訊硬體或相關聯的硬體資源已重新設定、停用、移除或無法使用。
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows 音訊服務未執行。

備註

這個方法會指出會話的狀態為作用中、非使用中或已過期。 如果會話有一或多個正在執行的數據流,則狀態為作用中。 當會話中最後一個執行中的數據流停止時,狀態會從作用中變更為非使用中。 當客戶端藉由釋放數據流物件的所有參考來終結會話中的最後一個數據流時,會話狀態會變更為已過期。

Sndvol 程式會顯示處於使用中和非作用中狀態之會話的音量和靜音控件。 會話到期時,Sndvol 會停止顯示該會話的控件。 如果會話先前已過期,但會話狀態會變更為作用中 (,因為會話中的數據流開始執行) 或非作用中 (因為用戶端將新的數據流指派給會話) ,所以 Sndvol 會繼續顯示會話的控件。

用戶端會呼叫 IAudioClient::Initialize 方法來建立數據流。 在建立數據流時,用戶端會將數據流指派給會話。 當用戶端將第一個數據流指派給會話時,就會開始會話。 一開始,會話處於非使用中狀態。 會話中的第一個數據流開始執行時,會話狀態會變更為作用中。 當客戶端釋放會話中最後剩餘數據流物件的最終參考時,會話就會終止。

規格需求

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

另請參閱

IAudioClient::Initialize

IAudioSessionControl 介面

IMMDevice::Activate