diff --git a/osu.Game/Screens/Play/ReplayPlayer.cs b/osu.Game/Screens/Play/ReplayPlayer.cs index 92eeb3c9fe..131ce452bc 100644 --- a/osu.Game/Screens/Play/ReplayPlayer.cs +++ b/osu.Game/Screens/Play/ReplayPlayer.cs @@ -197,8 +197,7 @@ namespace osu.Game.Screens.Play public override void OnSuspending(ScreenTransitionEvent e) { - // safety against filters or samples from the indicator playing long after the screen is exited - failIndicator.RemoveAndDisposeImmediately(); + stopAllAudioEffects(); base.OnSuspending(e); } @@ -208,5 +207,17 @@ namespace osu.Game.Screens.Play failIndicator.RemoveAndDisposeImmediately(); return base.OnExiting(e); } + + private void stopAllAudioEffects() + { + // safety against filters or samples from the indicator playing long after the screen is exited + failIndicator.RemoveAndDisposeImmediately(); + + if (GameplayClockContainer is MasterGameplayClockContainer master) + { + playbackSettings.UserPlaybackRate.UnbindFrom(master.UserPlaybackRate); + master.UserPlaybackRate.SetDefault(); + } + } } }