diff --git a/osu.Game/Screens/Menu/MainMenu.cs b/osu.Game/Screens/Menu/MainMenu.cs index 135b3dba17..7d792a6bb8 100644 --- a/osu.Game/Screens/Menu/MainMenu.cs +++ b/osu.Game/Screens/Menu/MainMenu.cs @@ -20,6 +20,7 @@ using osu.Framework.Logging; using osu.Framework.Platform; using osu.Framework.Screens; using osu.Framework.Threading; +using osu.Game.Audio; using osu.Game.Beatmaps; using osu.Game.Configuration; using osu.Game.Graphics; @@ -45,7 +46,7 @@ using osu.Game.Localisation; namespace osu.Game.Screens.Menu { - public partial class MainMenu : OsuScreen, IHandlePresentBeatmap, IKeyBindingHandler + public partial class MainMenu : OsuScreen, IHandlePresentBeatmap, IKeyBindingHandler, ISamplePlaybackDisabler { public const float FADE_IN_DURATION = 300; @@ -84,6 +85,10 @@ namespace osu.Game.Screens.Menu [Resolved(canBeNull: true)] private IDialogOverlay dialogOverlay { get; set; } + // used to stop kiai fountain samples when navigating to other screens + IBindable ISamplePlaybackDisabler.SamplePlaybackDisabled => samplePlaybackDisabled; + private readonly Bindable samplePlaybackDisabled = new Bindable(); + protected override BackgroundScreen CreateBackground() => new BackgroundScreenDefault(); protected override bool PlayExitSound => false; @@ -369,6 +374,8 @@ namespace osu.Game.Screens.Menu supporterDisplay .FadeOut(500, Easing.OutQuint); + + samplePlaybackDisabled.Value = true; } public override void OnResuming(ScreenTransitionEvent e) @@ -389,6 +396,8 @@ namespace osu.Game.Screens.Menu bottomElementsFlow .ScaleTo(1, 1000, Easing.OutQuint) .FadeIn(1000, Easing.OutQuint); + + samplePlaybackDisabled.Value = false; } public override bool OnExiting(ScreenExitEvent e)