IAudioSessionManager2 インターフェイス (audiopolicy.h)
IAudioSessionManager2 インターフェイスを使用すると、アプリケーションでオーディオ デバイスのサブミックスを管理できます。
IAudioSessionManager2 インターフェイスへの参照を取得するには、次の手順に従って、アプリケーションでオーディオ デバイスでアクティブ化する必要があります。
- IMMDevice インターフェイス ページで説明されているいずれかの手法を使用して、オーディオ エンドポイント デバイスの IMMDevice インターフェイスへの参照を取得します。
- パラメーター iid が IID_IAudioSessionManager2 に設定されている IMMDevice::Activate メソッドを呼び出します。
アプリケーションが IAudioSessionManager2 インターフェイス インスタンスを解放する場合、アプリケーションはインターフェイスの Release メソッドを呼び出す必要があります。
このインターフェイスを使用するアプリケーション スレッドは、COM 用に初期化する必要があります。 COM の初期化の詳細については、Windows SDKドキュメントの CoInitializeEx 関数の説明を参照してください。
継承
IAudioSessionManager2 インターフェイスは、IAudioSessionManager から継承されます。 IAudioSessionManager2 には、次の種類のメンバーもあります。
メソッド
IAudioSessionManager2 インターフェイスには、これらのメソッドがあります。
IAudioSessionManager2::GetSessionEnumerator GetSessionEnumerator メソッドは、オーディオ セッション列挙子オブジェクトへのポインターを取得します。 |
IAudioSessionManager2::RegisterDuckNotification RegisterDuckNotification メソッドは、アプリケーションをセッション マネージャーに登録して、ダッキング通知を受信します。 |
IAudioSessionManager2::RegisterSessionNotification RegisterSessionNotification メソッドは、セッションの作成時に通知を受信するようにアプリケーションを登録します。 |
IAudioSessionManager2::UnregisterDuckNotification UnregisterDuckNotification メソッドは、通知を受信するためにアプリケーションによって以前の登録を削除します。 |
IAudioSessionManager2::UnregisterSessionNotification UnregisterSessionNotification メソッドは、セッションの作成時に通知を受け取る登録を削除します。 |
注釈
アプリケーションはこのインターフェイスを使用して、次のタスクを実行できます。
- 登録してダッキング通知を受け取ります。
- セッションの作成時に通知を受け取るために登録します。
- インターフェイス ポインターを取得するために使用されたオーディオ デバイス上のセッションを列挙します。
このインターフェイスでは、Windows 7 の新機能である ストリーム減衰 または ダッキングのカスタム実装がサポートされています。 メディア ストリームを再生しているアプリケーションでは、既定の通信デバイスで新しい通信ストリームを開いたときに、その動作が異なる場合があります。 たとえば、新しい通信ストリームが開いている間は、元のメディア ストリームを一時停止できます。 この機能の詳細については、「 通信デバイスの使用」を参照してください。
メディア ストリームを管理し、カスタム ダッキング実装を提供するアプリケーションは、セッション イベントが発生したときに通知を受信するために登録する必要があります。 ストリーム減衰の場合、既定の通信デバイスで通信ストリームが開かれるか閉じられたときに、システムによってセッション イベントが発生します。 詳細については、「 カスタム ダッキング動作の提供」を参照してください。
例
次のコード例は、オーディオ デバイスの IAudioSessionManager2 インターフェイスへの参照を取得する方法を示しています。
HRESULT CreateSessionManager(IAudioSessionManager2** ppSessionManager)
{
HRESULT hr = S_OK;
IMMDevice* pDevice = NULL;
IMMDeviceEnumerator* pEnumerator = NULL;
IAudioSessionManager2* pSessionManager = NULL;
// Create the device enumerator.
CHECK_HR( hr = CoCreateInstance(
__uuidof(MMDeviceEnumerator),
NULL, CLSCTX_ALL,
__uuidof(IMMDeviceEnumerator),
(void**)&pEnumerator));
// Get the default audio device.
CHECK_HR( hr = pEnumerator->GetDefaultAudioEndpoint(
eRender, eConsole, &pDevice));
// Get the session manager.
CHECK_HR( hr = pDevice->Activate(
__uuidof(IAudioSessionManager2), CLSCTX_ALL,
NULL, (void**)&pSessionManager));
// Return the pointer to the caller.
*(ppSessionManager) = pSessionManager;
(*ppSessionManager)->AddRef();
done:
// Clean up.
SAFE_RELEASE(pSessionManager);
SAFE_RELEASE(pEnumerator);
SAFE_RELEASE(pDevice);
return hr;
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | audiopolicy.h |