示例#1
0
        public void NextSong(bool isUserRequested)
        {
            if (!IsMixPresent)
            {
                return;
            }

            if (currentMix.GetCurrentTrack().IsLast)
            {
                NextMix();
                return;
            }

            if (currentMix.CurrentTrackIndex == currentMix.Tracks.Count - 1)
            {
                NextSongRequest  nextSongRequest = requestFactory.CreateNextSongRequest(playToken, currentMix.MixId, isUserRequested);
                PlaySongResponse playSongReponse = requestExecutor.ExecuteNextSongRequest(nextSongRequest);

                currentMix.AddTrack(new Track(playSongReponse.SetElement.TrackElement,
                                              playSongReponse.SetElement.AtLastTrack,
                                              playSongReponse.SetElement.SkipAllowed));
            }

            currentMix.MoveToNextTrack();

            if (audioPlayerProxy.Status == MediaStatus.Running)
            {
                PlayCurrentTrack(currentMix);
            }
        }
 public PlaySongResponse ExecuteNextSongRequest(NextSongRequest nextSongRequest)
 {
     return((PlaySongResponse)(Execute(nextSongRequest) ?? Activator.CreateInstance(typeof(PlaySongResponse))));
 }