void releaseFlashbackPeriod()
        {
            FlashbackPlaying = false;
            if (_flashbackPlayer != null)
            {
                _flashbackPlayer.VideoFrameEvent -= _flashbackPeriod_VideoFrameEvent;
                _flashbackPlayer.Dispose();
            }
            _flashbackPlayer = null;

            if (_flashbackTimer != null)
            {
                _flashbackTimer.Stop();
            }
            _flashbackTimer = null;
        }
        private void onFlashbackChanged(bool flashback)
        {
            if (flashback)
            {
                if (_flashbackPlayer == null)
                {
                    _flashbackPlayer                  = VideoFlashbackManager.Instance.GetPlayer(VideoId);
                    StartFlashbackTime                = _flashbackPlayer.StartTime;
                    EndFlashbackTime                  = _flashbackPlayer.EndTime;
                    CurrentFlashbackTime              = _flashbackPlayer.CurrentTime;
                    _flashbackPlayer.VideoFrameEvent += _flashbackPeriod_VideoFrameEvent;
                    FlashbackPlaying                  = true;

                    _flashbackTimer          = new DispatcherTimer();
                    _flashbackTimer.Interval = TimeSpan.FromMilliseconds(200);
                    _flashbackTimer.Tick    += _flashbackTimer_Tick;
                    _flashbackTimer.Start();
                }
            }
            else
            {
                releaseFlashbackPeriod();
            }
        }