i think you can just do something like this. Play()
uses a new thread to play the file so you should just need to 'pause' your thread for an amount of time before invoking Stop()
.
public void PlaySound()
{
int i = 0;
foreach (string musicFile in musicFiles)
{
player.SoundLocation = musicFile;
player.Play();
Thread.Sleep(1000 * GetMusicDuration[i])
player.Stop();
i++;
}
}