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(); } }