예제 #1
0
 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);
 }
예제 #2
0
        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();
                }
            }
        }