当MediaPlayer切换歌曲时,Ram的使用量会增加(Monogame c#)
本文关键字:增加 使用量 Monogame Ram MediaPlayer | 更新日期: 2023-09-27 18:01:10
我正在使用Monogame引擎制作游戏,并使用MediaPlayer播放背景音乐。当我切换播放的任何歌曲时,我都可以看到ram的使用量增加了几MB(使用"性能和诊断工具"(,即使这是一首预装的歌曲。经过大量的歌曲更改,这可能会成为一个问题。我想让游戏尽可能少地使用计算机资源。
Song song1;
Song song2;
protected override void LoadContent()
{
song1 = Content.Load<Song>("song1");
song2 = Content.Load<Song>("song2");
}
void updateMusic()
{
if (gameState == "lvl1") { MediaPlayer.Play(song1); }
else if (gameState == "lvl2") { MediaPlayer.Play(song2);}
}
事实证明,我使用的MonoGame的当前版本(3.5(存在漏洞,并且存在某种内存管理问题。在切换到MonoGame 3.4版本后,加载和卸载现在可以正常工作。
我敢肯定,如果您不想增加RAM使用量,那么在更改为新歌后,您必须卸载当前歌曲。即使这不是问题所在,如果你不打算在不久的将来再次或任何时候使用这首歌,你也应该这样做。你测试过如果你加载了一堆歌曲并在它们之间切换会发生什么吗?仅仅因为你在这两首歌之间切换时看到使用量激增,并不一定意味着随着你在更多歌曲之间切换,使用量会继续增加。