Я думаю, я понимаю, что здесь происходит.
Здесь вы создаете экземпляр Sound
, а затем вызываете HasAudio
.На данный момент он пытается получить доступ к полю m_mediaPlayer
, но оно пустое, потому что вы создаете его только в методе Play
.Как я и предлагал в своем комментарии к sidenote, вам нужно сначала создать экземпляр MediaPlayer
либо в конструкторе, либо в объявлении поля.
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();
}
}