IAudioSessionManager2::RegisterSessionNotification メソッド (audiopolicy.h)

RegisterSessionNotification メソッドは、セッションの作成時に通知を受信するようにアプリケーションを登録します。

構文

HRESULT RegisterSessionNotification(
  IAudioSessionNotification *SessionNotification
);

パラメーター

SessionNotification

IAudioSessionNotification インターフェイスのアプリケーションの実装へのポインター。 メソッド呼び出しが成功すると、アプリケーションの IAudioSessionNotification インターフェイスで AddRef メソッドが呼び出されます。

戻り値

メソッドが成功した場合は、S_OK を返します。 エラーが発生した場合、次の表に示す値が、可能なリターン コードに含まれますが、これらに限定されません。

戻り値 説明
E_POINTER
SessionNotificationNULL です
E_OUTOFMEMORY
メモリ不足のため、内部オブジェクトを作成できませんでした。

注釈

アプリケーションは、 IAudioSessionNotification インターフェイスのメソッドを使用して、セッションの作成時に通知を受け取るために登録できます。 アプリケーションは IAudioSessionNotification インターフェイスを 実装します。 このインターフェイスで定義されているメソッドは、セッションの作成時にシステムからコールバックを受け取ります。 このインターフェイスを実装する方法を示すコード例については、次を参照してください。

IAudioSessionNotification インターフェイス

通知の受信を開始するために、アプリケーションは IAudioSessionManager2::RegisterSessionNotification メソッドを呼び出して IAudioSessionNotification インターフェイスを登録します。 アプリケーションが通知を必要としなくなると、 IAudioSessionManager2::UnregisterSessionNotification メソッドを呼び出して登録を削除します。

重要

通知の受信を開始するには、 IAudioSessionEnumerator::GetCount を呼び出す必要があります。 セッション列挙 API は、アプリケーションが既存のセッションの一覧を最初に取得するまで、新しいセッション通知を破棄します。 これは、セッション API を使用するアプリケーションの起動中にセッション通知が到着したときに発生する可能性がある競合状態を防ぐためです。 GetCount を呼び出すと、列挙 API がトリガーされ、セッション通知の送信が開始されます。

メモ アプリケーションが、UI 以外のスレッドで を呼び出 CoInitializeEx(NULL, COINIT_MULTITHREADED) して、マルチスレッド アパートメント (MTA) モデルで COM を初期化することを確認します。 MTA が初期化されていない場合、アプリケーションはセッション マネージャーからセッション通知を受信しません。 アプリケーションのユーザー インターフェイスを実行するスレッドは、アパートメント スレッド モデルを初期化する必要があります。
 

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー audiopolicy.h

こちらもご覧ください

IAudioSessionManager2