public override void Disconnect()
        {
            if (GSMTCSession != null)
            {
                GSMTCSession.MediaPropertiesChanged    -= GSMTCSession_MediaPropertiesChanged;
                GSMTCSession.PlaybackInfoChanged       -= GSMTCSession_PlaybackInfoChanged;
                GSMTCSession.TimelinePropertiesChanged -= GSMTCSession_TimelinePropertiesChanged;
            }
            GSMTCSession = null;

            sourceAppInfo.Dispose();
            sourceAppInfo = null;
        }
        public override void Disconnect()
        {
            if (mediaPlaybackDataSource != null)
            {
                try
                {
                    mediaPlaybackDataSource.MediaPlaybackDataChanged -= MediaPlaybackDataSource_MediaPlaybackDataChanged;
                }
                catch { }
            }
            mediaPlaybackDataSource = null;
            NPSession = null;

            sourceAppInfo.Dispose();
            sourceAppInfo = null;
        }