IAudioSessionControl::UnregisterAudioSessionNotification 方法 (audiopolicy.h)
UnregisterAudioSessionNotification 方法會刪除用戶端先前的註冊,以接收通知。
語法
HRESULT UnregisterAudioSessionNotification(
[in] IAudioSessionEvents *NewNotifications
);
參數
[in] NewNotifications
用戶端實作 的 IAudioSessionEvents 介面指標 。 用戶端在先前呼叫 IAudioSessionControl::RegisterAudioSessionNotification 方法中,將這個相同的介面指標傳遞至會話管理員。 如果 UnregisterAudioSessionNotification 方法成功,它會在用戶端的 IAudioSessionEvents 介面上呼叫 Release 方法。
傳回值
如果方法成功,它會傳回 S_OK。 如果失敗,可能的傳回碼包括,但不限於下表所示的值。
傳回碼 | Description |
---|---|
|
參數 NewNotifications 為 NULL。 |
|
指定的介面先前未由客戶端註冊,或已經移除。 |
備註
當用戶端不再需要接收通知時,用戶端會呼叫此方法。 UnregisterAudioSessionNotification 方法會藉由呼叫 IAudioSessionControl::RegisterAudioSessionNotification 方法,移除用戶端先前向會話管理員註冊的 IAudioSessionEvents 介面註冊。
在用戶端釋放 其 IAudioSessionEvents 介面的最終參考之前,它應該呼叫 UnregisterAudioSessionNotification 來取消註冊介面。 否則,應用程式會洩漏 IAudioSessionEvents 和 IAudioSessionControl 物件所持有的資源。 請注意, RegisterAudioSessionNotification 會呼叫用戶端的 IAudioSessionEvents::AddRef 方法,而 UnregisterAudioSessionNotification 會呼叫 IAudioSessionEvents::Release 方法。 如果用戶端在呼叫 UnregisterAudioSessionNotification 之前釋放其 IAudioSessionEvents 介面的參考,會話管理員永遠不會釋放其 IAudioSessionEvents 介面的參考。 例如,設計不佳的 IAudioSessionEvents 實作可能會從 IAudioSessionEvents 物件的解構函式呼叫 UnregisterAudioSessionNotification。 在此情況下,用戶端不會呼叫 UnregisterAudioSessionNotification ,直到會話管理員釋放對 IAudioSessionEvents 介面的參考,而會話管理員將不會釋放其 IAudioSessionEvents 介面的參考,直到用戶端呼叫 UnregisterAudioSessionNotification 為止。 如需 AddRef 和 Release 方法的詳細資訊,請參閱 Windows SDK 檔中的 IUnknown 介面討論。
如需呼叫 UnregisterAudioSessionNotification 方法的程式代碼範例,請參閱 舊版音訊應用程式的音訊事件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | audiopolicy.h |