当MediaPlayer切换歌曲时,Ram使用率会增加(Monogame c#)

时间:2016-08-08 02:55:51

标签: c# xna media-player monogame

我正在使用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);}
        }

2 个答案:

答案 0 :(得分:1)

事实证明,我使用的当前版本的MonoGame(3.5)存在漏洞并且存在某种内存管理问题。切换到MonoGame版本3.4后,加载和卸载现在正常工作。

答案 1 :(得分:0)

如果您不希望RAM使用量增加,我很确定您在更换为新歌后必须卸载当前歌曲。即使这不是问题,如果您不打算再次或在不久的将来随时使用该歌曲,您仍应该这样做。你有没有测试过如果你加载一堆歌曲并在它们之间切换会发生什么?仅仅因为你在这两首歌曲之间切换时看到使用率激增,并不一定意味着当你在更多歌曲之间切换时,这种用法会继续叠加。