できることの 1 つはContent.Load<Song>
、Load メソッドに移動して、更新で再生されているかどうかを確認し、再生されていない場合は再生することです。例えば、
public void LoadContent(ConentManager content)
{
song = content.Load<Song>("music/game");
gameSongStartedPlaying = false; // this variable to hold if you have starting playing this song already
MediaPlayer.IsRepeating = false;
}
public void Update(GameTime gameTime)
{
if(MediaPlayer.State == MediaState.Stopped && !gameSongStartedPlaying)
{
MediaPlayer.Play(song);
gameSongStartedPlaying = true;
}
}
これにより、すべてのリソースがまだロードされている間に曲が「再生」される Loading フェーズではなく、Update メソッドの最初のパスで曲の再生が開始されますContent.Load<Song>
(これが、曲が早く終了する理由です)。