From cf085cc15c5d85cdf337d17cc2eaadf26d502912 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 18 May 2020 17:02:41 -0400 Subject: [PATCH] v0.8.1: sound assets now load async, much faster initial load times --- .../java/com/watabou/noosa/audio/Sample.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/SPD-classes/src/main/java/com/watabou/noosa/audio/Sample.java b/SPD-classes/src/main/java/com/watabou/noosa/audio/Sample.java index 032f91be7..1452655ff 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/audio/Sample.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/audio/Sample.java @@ -57,16 +57,21 @@ public enum Sample { } } - public void load( String... assets ) { + public void load( final String... assets ) { - //FIXME there used to be a queue here so that assets were loaded async. - //This was to prevent hanging on specific android versions (implement in vanilla v1.7.5) - //Maybe LibGDX already handles this? - for (String asset : assets){ - if (!ids.containsKey(asset)){ - ids.put(asset, Gdx.audio.newSound(Gdx.files.internal(asset))); + //load in a separate thread to prevent this blocking the UI + new Thread(){ + @Override + public void run() { + synchronized (Sample.class) { + for (String asset : assets) { + if (!ids.containsKey(asset)) { + ids.put(asset, Gdx.audio.newSound(Gdx.files.internal(asset))); + } + } + } } - } + }.start(); }