public async Task PlayPrev() { IsPlaying = false; AudioPlayerEngine.Stop(); await CurrentPlaylist.SetState(CurrentTrack, AudioPlayerState.None); CurrentTrack = null; TrackStateViewModel song = await Task.Run(() => GetPreviousSong(RepeatState, ShuffleState)); if (song != null) { await Play(song); } }
public async Task Play(TrackStateViewModel song) { if (CurrentTrack == null || !Equals(CurrentTrack, song)) { if (CurrentPlaylist.MoveToEntry(song)) { CurrentTrack = CurrentPlaylist.CurrentEntry; await Task.Run(() => { AudioPlayerEngine.Stop(); AudioPlayerEngine.Load(CurrentPlaylist.CurrentEntry.Track.Model); AudioPlayerEngine.Play(); }); } } else { AudioPlayerEngine.Resume(); } IsPlaying = true; await CurrentPlaylist.SetState(song, AudioPlayerState.Playing); }