Exemple #1
0
        void PlaybackMonitor_Tick(object sender, EventArgs e)
        {
            if (currentTrack == null)
            {
                throw new Exception("Playback monitor started, but no track playing");
            }

            var position = player.Position + currentTrackPositionOffset;
            var duration = currentTrack.Duration;

            if (position >= duration)
            {
                this.ParentForm.BeginInvoke(new MethodInvoker(delegate()
                {
                    if (!PlayNextTrack(false))
                    {
                        currentTrack = null;
                        SpotifySession.PlayerUnload();
                        PlaybackMonitor.Stop();
                        player.Stop();
                        isPaused = false;
                        currentTrackPositionOffset = new TimeSpan(0);
                    }
                }));
            }
        }
Exemple #2
0
 public void StopAllPlayback()
 {
     currentTrack = null;
     SpotifySession.PlayerUnload();
     isPaused = false;
     currentTrackPositionOffset = new TimeSpan(0);
     player.Stop();
     PlaybackMonitor.Stop();
 }
Exemple #3
0
        private void PlayTrack(ITrack track)
        {
            if (currentTrack != null)
            {
                SpotifySession.PlayerUnload();
                player.Stop();
                PlaybackMonitor.Stop();
            }
            currentTrackPositionOffset = new TimeSpan(0);
            var result = SpotifySession.PlayerLoad(track);

            Play();
            currentTrack = track;
            SyncMainTableWithView();
            PlaybackMonitor.Start();
        }