private void UnregisterNotifications() { if (sessions != null) { sessions = null; } if (audioSessionNotification != null) { Marshal.ThrowExceptionForHR(audioSessionInterface2.UnregisterSessionNotification(audioSessionNotification)); } }
/// <summary> /// Refresh session of current device. /// </summary> public void RefreshSessions() { UnregisterNotifications(); if (audioSessionInterface2 != null) { IAudioSessionEnumerator sessionEnum; Marshal.ThrowExceptionForHR(audioSessionInterface2.GetSessionEnumerator(out sessionEnum)); sessions = new SessionCollection(sessionEnum); audioSessionNotification = new AudioSessionNotification(this); Marshal.ThrowExceptionForHR(audioSessionInterface2.RegisterSessionNotification(audioSessionNotification)); } }