예제 #1
0
 private void AfterClose()
 {
     try {
         _mediaSession?.Shutdown();
         _mediaSession?.Dispose();
         _callback?.Dispose();
     } catch (SharpDXException) { }
     _mediaSession = null;
     _callback     = null;
 }
예제 #2
0
        private void ProcessPlayerClosed()
        {
            // The session finished to close, we have to dispose all related object.
            currentMusic = null;

            mediaSessionCallback.Dispose();

            if (mediaSource != null)
            {
                mediaSource.Shutdown();
            }
            if (mediaSession != null)
            {
                mediaSession.Shutdown();
            }

            if (streamVolume != null)
            {
                streamVolume.Dispose();
            }
            if (mediaSource != null)
            {
                mediaSource.Dispose();
            }
            if (topology != null)
            {
                topology.Dispose();
            }
            if (mediaSession != null)
            {
                mediaSession.Dispose();
            }
            if (mediaInputByteStream != null)
            {
                mediaInputByteStream.Dispose();
            }

            topology             = null;
            streamVolume         = null;
            mediaSession         = null;
            mediaSource          = null;
            mediaInputByteStream = null;
            mediaSessionCallback = null;
            isMusicPlayerReady   = false;
        }