IAudioSessionManager2::RegisterSessionNotification 方法 (audiopolicy.h)
RegisterSessionNotification 方法會註冊應用程式,以在建立會話時接收通知。
語法
HRESULT RegisterSessionNotification(
IAudioSessionNotification *SessionNotification
);
參數
SessionNotification
應用程式實作 IAudioSessionNotification 介面的指標。 如果方法呼叫成功,它會在應用程式的 IAudioSessionNotification 介面上呼叫 AddRef 方法。
傳回值
如果方法成功,它會傳回 S_OK。 如果失敗,可能的傳回碼包括,但不限於下表所示的值。
傳回值 | 描述 |
---|---|
|
SessionNotification 為 NULL。 |
|
無法建立內部對象,因為記憶體不足。 |
備註
應用程式可以透過 IAudioSessionNotification 介面的方法,註冊以在建立會話時接收通知。 應用程式會實作 IAudioSessionNotification 介面。 在此介面中定義的方法會在建立會話時從系統接收回呼。 如需示範如何實作此介面的範例程序代碼,請參閱
為了開始接收通知,應用程式會呼叫 IAudioSessionManager2::RegisterSessionNotification 方法來註冊其 IAudioSessionNotification 介面。 當應用程式不再需要通知時,它會呼叫 IAudioSessionManager2::UnregisterSessionNotification 方法來刪除註冊。
重要
您必須呼叫 IAudioSessionEnumerator::GetCount 開始接收通知。 會話列舉 API 會捨棄新的工作階段通知,直到應用程式第一次擷取現有會話的清單為止。 這是為了避免在應用程式使用會話 API 啟動時,工作階段通知送達時可能發生的競爭狀況。 呼叫 GetCount 會觸發列舉 API 以開始傳送工作階段通知。
CoInitializeEx(NULL, COINIT_MULTITHREADED)
,以多線程Apartment (MTA) 模型初始化 COM。 如果未初始化 MTA,應用程式就不會從會話管理員接收工作階段通知。
執行應用程式使用者介面的線程應初始化 Apartment 線程模型。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | audiopolicy.h |