我最近创建了一个 WPF 游戏,我们添加的最后一件事是音乐,只是一个带有循环的 mp3。
这就是我为实现它所做的。
Music = new MediaPlayer();
Music.Open(new Uri("Sounds/MyMusic.mp3", UriKind.Relative));
Music.MediaEnded += MusicEnded;
Music.Play();
private void MusicEnded(object sender, EventArgs e)
{
Music.Stop();
Music.Play();
}
游戏一直运行良好,我们使用了 3 天超过 2 小时没有问题,但有 1 天音乐刚刚停止,其他声音继续播放。
这怎么可能发生?事件处理程序可以错过 1 个事件吗?在那种情况下,我的代码将停止工作,因为没有人监控 EventHandler 或音乐。
如何改进此代码?或避免这种情况发生?