コード例 #1
0
        private void Play()
        {
            if (_playingTrack == null)
            {
                if (Stack.IsEmpty())
                {
                    return;
                }
                _playingTrack = Stack.First();
                var task = MediaCache.FetchAsync(_playingTrack.MediaId);
                task.Wait();
                var reader = new MediaFoundationReader(task.Result);
                _waveOut.Init(reader);
                _waveOut.Play();
            }
            else
            {
                switch (_waveOut.PlaybackState)
                {
                case PlaybackState.Paused:
                    _waveOut.Resume();
                    break;

                case PlaybackState.Playing:
                    _waveOut.Pause();
                    break;
                }
            }
        }
コード例 #2
0
 private void PlaybackStopped(object sender, EventArgs e)
 {
     switch (_waveOut.PlaybackState)
     {
     case PlaybackState.Stopped:
         _playingTrack = null;
         Stack.Remove(_playingTrack);
         RaisePropertyChanged("Stack");
         Play();
         break;
     }
 }
コード例 #3
0
 public void PushToStack(TrackRow row)
 {
     Stack.Insert(0, row);
     MediaCache.FetchAsync(row.MediaId);
     RaisePropertyChanged("Stack");
 }