From b6b417d42f93b9d3e622d0dee1c37eb601480eec Mon Sep 17 00:00:00 2001 From: penev92 Date: Tue, 4 Jan 2022 23:58:07 +0200 Subject: [PATCH] Fixed AssetBrowserLogic disposing audio streams prematurely --- .../Widgets/Logic/AssetBrowserLogic.cs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs index d966d48e86..73c62d0f53 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs @@ -481,20 +481,18 @@ namespace OpenRA.Mods.Common.Widgets.Logic // Mute music so it doesn't interfere with the current asset. MuteSounds(); - using (var soundStream = Game.ModData.DefaultFileSystem.Open(prefix + filename)) + currentAudioStream = Game.ModData.DefaultFileSystem.Open(prefix + filename); + foreach (var modDataSoundLoader in Game.ModData.SoundLoaders) { - foreach (var modDataSoundLoader in Game.ModData.SoundLoaders) + if (modDataSoundLoader.TryParseSound(currentAudioStream, out currentSoundFormat)) { - if (modDataSoundLoader.TryParseSound(soundStream, out currentSoundFormat)) + if (frameSlider != null) { - if (frameSlider != null) - { - frameSlider.MaximumValue = currentSoundFormat.LengthInSeconds * currentSoundFormat.SampleRate; - frameSlider.Ticks = 0; - } - - break; + frameSlider.MaximumValue = currentSoundFormat.LengthInSeconds * currentSoundFormat.SampleRate; + frameSlider.Ticks = 0; } + + break; } } }