IAudioSessionControl::GetState メソッド (audiopolicy.h)
GetState メソッドは、オーディオ セッションの現在の状態を取得します。
構文
HRESULT GetState(
[out] AudioSessionState *pRetVal
);
パラメーター
[out] pRetVal
メソッドが現在のセッション状態を書き込む変数へのポインター。 状態は、次のいずれかの AudioSessionState 列挙値である必要があります。
AudioSessionStateActive
AudioSessionStateInactive
AudioSessionStateExpired
これらの値は、セッションの状態がそれぞれアクティブ、非アクティブ、または期限切れであることを示します。 詳細については、「解説」を参照してください。
戻り値
メソッドが成功した場合は、S_OK を返します。 失敗した場合、次の表に示す値が含まれますが、これに限定されません。
リターン コード | 説明 |
---|---|
|
パラメーター pRetVal は NULL です。 |
|
オーディオ エンドポイント デバイスが取り外されているか、オーディオ ハードウェアまたは関連するハードウェア リソースが再構成、無効、削除、またはその他の方法で使用できなくなります。 |
|
Windows オーディオ サービスが実行されていません。 |
注釈
このメソッドは、セッションの状態がアクティブか非アクティブか、または期限切れであるかを示します。 セッションに実行中のストリームが 1 つ以上ある場合、状態はアクティブです。 セッションで最後に実行中のストリームが停止すると、状態がアクティブから非アクティブに変わります。 セッション状態は、クライアントがストリーム オブジェクトへのすべての参照を解放することによってセッション内の最後のストリームを破棄すると、期限切れに変わります。
Sndvol プログラムは、アクティブおよび非アクティブ状態のセッションのボリュームコントロールとミュートコントロールを表示します。 セッションの有効期限が切れると、Sndvol はそのセッションのコントロールの表示を停止します。 セッションの有効期限が以前に切れたが、セッションの状態がアクティブ (セッション内のストリームの実行が開始されるため) または非アクティブ (クライアントがセッションに新しいストリームを割り当てたため) に変わる場合、Sndvol はセッションのコントロールの表示を再開します。
クライアントは 、IAudioClient::Initialize メソッドを呼び出してストリームを作成します。 ストリームを作成すると、クライアントはストリームをセッションに割り当てます。 セッションは、クライアントがセッションに最初のストリームを割り当てるときに開始されます。 最初は、セッションは非アクティブ状態です。 セッションの最初のストリームの実行が開始されると、セッションの状態がアクティブに変わります。 セッションは、クライアントがセッション内の最後の残りのストリーム オブジェクトへの最後の参照を解放すると終了します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | audiopolicy.h |