I think I get what's going on here.
Here, you're instantiating the Sound, and then calling HasAudio on it. At this point, it's trying to access its m_mediaPlayer field but it is null because you're only instantiating it in the Play method. As I suggested in my sidenote comment, you need to first instantiate the MediaPlayer either in the constructor or in the field declaration.
internal class Sound
{
public bool HasAudio { get { return mediaPlayer.HasAudio; } }
private MediaPlayer mediaPlayer = new MediaPlayer();
public void Play(string fileName)
{
mediaPlayer.Open(new Uri(@"sounds/" + fileName, UriKind.RelativeOrAbsoute));
mediaPlayer.Play();
}
public void Stop()
{
mediaPlayer.Stop();
}
}