private void OnStateChanged_Player(object sender, AudioPlayer.StateChangedEventArgs e) { if (!TheDispatcher.CheckAccess()) { TheDispatcher.BeginInvoke(DispatcherPriority.Normal, (Action <object, AudioPlayer.StateChangedEventArgs>)OnStateChanged_Player_, sender, e); return; } OnStateChanged_Player_(sender, e); }
private void OnStateChanged_Player_(object sender, AudioPlayer.StateChangedEventArgs e) { //Logger.Log("AudioPaneViewModel.OnStateChanged_Player", Category.Debug, Priority.Medium); //CommandManager.InvalidateRequerySuggested(); resetPeakMeter(); RaisePropertyChanged(() => IsPlaying); m_UrakawaSession.isAudioPlaying = IsPlaying; if (e.OldState == AudioPlayer.State.Playing && ( //m_Player.CurrentState == AudioPlayer.State.Paused || IsStopped)) { UpdatePeakMeter(); if (!AudioPlaybackStreamKeepAlive && IsStopped) { // stream has been closed already on AudioPlayer side, we're just making sure to reset our cached pointer value. ensurePlaybackStreamIsDead(); } if (View != null) { View.StopWaveFormTimer(); //View.StopPeakMeterTimer(); } //if (IsMonitoringAlways) //{ // CommandStartMonitor.Execute(); //} } if (IsPlaying) { if (e.OldState == AudioPlayer.State.Stopped) { PeakOverloadCountCh1 = 0; PeakOverloadCountCh2 = 0; } UpdatePeakMeter(); if (View != null) { View.StartWaveFormTimer(); //View.StartPeakMeterTimer(); } } }