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); } })); } }
public void StopAllPlayback() { currentTrack = null; SpotifySession.PlayerUnload(); isPaused = false; currentTrackPositionOffset = new TimeSpan(0); player.Stop(); PlaybackMonitor.Stop(); }
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(); }