if (!String.IsNullOrEmpty(_nextSongToPlay))
{
if (activeMusic!=null && activeMusic.State== SoundStreamState.Playing)
{
activeMusic.Stop();
activeMusic.Dispose();
}
activeMusic = new SoundStream(System.IO.File.OpenRead(_nextSongToPlay), musicEngine);
System.Threading.Thread.Sleep(100);
activeMusic.Volume = currentVolume;
activeMusic.Play();
_nextSongToPlay = null;
}
It seems that there is some kind of race condition that is triggered by calling the activeMusic.Stop(); method... without putting a System.Threading.Thread.Sleep setting the volume on the activeMusic soundstream causes a null exception to be thrown.
This exception occurs if the activeMusic soundstream is or is not disposed, but only if it was not null before creating the New soundStream
It seems that there is some kind of race condition that is triggered by calling the activeMusic.Stop(); method... without putting a System.Threading.Thread.Sleep setting the volume on the activeMusic soundstream causes a null exception to be thrown.
This exception occurs if the activeMusic soundstream is or is not disposed, but only if it was not null before creating the New soundStream