Animatroller.AudioTrigger.TrackPlayer.PlayNextTrackInNewPlayer C# (CSharp) Method

PlayNextTrackInNewPlayer() private method

private PlayNextTrackInNewPlayer ( bool startPlaying ) : void
startPlaying bool
return void
        private void PlayNextTrackInNewPlayer(bool startPlaying)
        {
            if (!playing && startPlaying)
                return;

            if (players.Count > 1)
            {
                // Wait for 1st player
                var firstPlayer = players.FirstOrDefault();
                if (firstPlayer != null)
                {
                    firstPlayer.Player.Wait();
                }
            }

            string nextTrack = GetNextTrack();

            lock (players)
            {
                var newPlayer = new AudioPlayer(this.xaudio2, File.OpenRead(nextTrack));
                players.Add(newPlayer);
                newPlayer.Player.AutoCloseAtEndOfSong = true;
                newPlayer.Player.CrossFade = TimeSpan.FromSeconds(10);
                newPlayer.Player.CrossFadeStarting += new EventHandler(CrossFadeStarting);
                newPlayer.Player.StateChanged += new EventHandler<AudioPlayerApp.AudioPlayer.StateEventArgs>(StateChanged);
                if(startPlaying)
                    newPlayer.Player.Play();
            }
        }