我正在使用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);}
}
答案 0 :(得分:1)
事实证明,我使用的当前版本的MonoGame(3.5)存在漏洞并且存在某种内存管理问题。切换到MonoGame版本3.4后,加载和卸载现在正常工作。
答案 1 :(得分:0)
如果您不希望RAM使用量增加,我很确定您在更换为新歌后必须卸载当前歌曲。即使这不是问题,如果您不打算再次或在不久的将来随时使用该歌曲,您仍应该这样做。你有没有测试过如果你加载一堆歌曲并在它们之间切换会发生什么?仅仅因为你在这两首歌曲之间切换时看到使用率激增,并不一定意味着当你在更多歌曲之间切换时,这种用法会继续叠加。