2016-08-08 28 views
1

我使用Monogame引擎製作遊戲,並使用MediaPlayer播放背景音樂。當我切換正在播放的任何歌曲時,我可以看到內存使用率增加了幾MB(使用「性能和診斷工具」),即使它是一首預先加載的歌曲。在很多歌曲變化之後,這可能會成爲一個問題。我想讓遊戲儘可能少地使用計算機資源。當MediaPlayer切換歌曲(Monogame c#)時,內存使用量增加

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

回答

1

原來,我使用的當前版本的MonoGame(3.5)被竊聽,並且存在某種內存管理問題。切換到MonoGame版本3.4後,現在可以正確加載和卸載。

0

我敢肯定,如果您不希望增加內存使用量,則必須在更改爲新歌曲後卸載當前歌曲。即使這不是問題,如果您不打算在不久的將來再次或隨時使用該歌曲,您仍然應該這樣做。你有沒有測試過如果你加載了一堆歌曲並在它們之間切換會發生什麼?僅當您在這兩首歌曲之間切換時看到使用率峯值,並不一定意味着您在更多歌曲之間切換時,使用情況仍將繼續疊加。

相關問題