IAudioSessionControl::UnregisterAudioSessionNotification 方法 (audiopolicy.h)

UnregisterAudioSessionNotification 方法會刪除用戶端先前的註冊,以接收通知。

語法

HRESULT UnregisterAudioSessionNotification(
  [in] IAudioSessionEvents *NewNotifications
);

參數

[in] NewNotifications

用戶端實作 的 IAudioSessionEvents 介面指標 。 用戶端在先前呼叫 IAudioSessionControl::RegisterAudioSessionNotification 方法中,將這個相同的介面指標傳遞至會話管理員。 如果 UnregisterAudioSessionNotification 方法成功,它會在用戶端的 IAudioSessionEvents 介面上呼叫 Release 方法。

傳回值

如果方法成功,它會傳回 S_OK。 如果失敗,可能的傳回碼包括,但不限於下表所示的值。

傳回碼 Description
E_POINTER
參數 NewNotificationsNULL
E_NOTFOUND
指定的介面先前未由客戶端註冊,或已經移除。

備註

當用戶端不再需要接收通知時,用戶端會呼叫此方法。 UnregisterAudioSessionNotification 方法會藉由呼叫 IAudioSessionControl::RegisterAudioSessionNotification 方法,移除用戶端先前向會話管理員註冊的 IAudioSessionEvents 介面註冊。

在用戶端釋放 其 IAudioSessionEvents 介面的最終參考之前,它應該呼叫 UnregisterAudioSessionNotification 來取消註冊介面。 否則,應用程式會洩漏 IAudioSessionEventsIAudioSessionControl 物件所持有的資源。 請注意, RegisterAudioSessionNotification 會呼叫用戶端的 IAudioSessionEvents::AddRef 方法,而 UnregisterAudioSessionNotification 會呼叫 IAudioSessionEvents::Release 方法。 如果用戶端在呼叫 UnregisterAudioSessionNotification 之前釋放其 IAudioSessionEvents 介面的參考,會話管理員永遠不會釋放其 IAudioSessionEvents 介面的參考。 例如,設計不佳的 IAudioSessionEvents 實作可能會從 IAudioSessionEvents 物件的解構函式呼叫 UnregisterAudioSessionNotification。 在此情況下,用戶端不會呼叫 UnregisterAudioSessionNotification ,直到會話管理員釋放對 IAudioSessionEvents 介面的參考,而會話管理員將不會釋放其 IAudioSessionEvents 介面的參考,直到用戶端呼叫 UnregisterAudioSessionNotification 為止。 如需 AddRefRelease 方法的詳細資訊,請參閱 Windows SDK 檔中的 IUnknown 介面討論。

如需呼叫 UnregisterAudioSessionNotification 方法的程式代碼範例,請參閱 舊版音訊應用程式的音訊事件

規格需求

需求
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 audiopolicy.h

另請參閱

IAudioSessionControl 介面

IAudioSessionControl::RegisterAudioSessionNotification

IAudioSessionEvents 介面