当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);}
        }

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

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

我敢肯定,如果您不想增加RAM使用量,那么在更改为新歌后,您必须卸载当前歌曲。即使这不是问题所在,如果你不打算在不久的将来再次或任何时候使用这首歌,你也应该这样做。你测试过如果你加载了一堆歌曲并在它们之间切换会发生什么吗?仅仅因为你在这两首歌之间切换时看到使用量激增,并不一定意味着随着你在更多歌曲之间切换,使用量会继续增加。