@Override public Component getComponent(Sound sound) { final SoundComponent soundComponent = createComponent(); // files over 150k should be streamed as music; asume ~ 10x compression if (gameAssets.resolve(sound.getUri()).length() < MAX_COMPRESSED_SOUND_SIZE) { gameAssets.get( sound.getUri(), com.badlogic.gdx.audio.Sound.class, new AssetLoadedCallback<com.badlogic.gdx.audio.Sound>() { @Override public void loaded(String fileName, com.badlogic.gdx.audio.Sound asset) { soundComponent.setSound(asset); } @Override public void error(String fileName, Class type, Throwable exception) { Gdx.app.error("SoundProcessor", "Impossible to play sound " + fileName, exception); } }); } else { gameAssets.get( sound.getUri(), com.badlogic.gdx.audio.Music.class, new AssetLoadedCallback<com.badlogic.gdx.audio.Music>() { @Override public void loaded(String fileName, com.badlogic.gdx.audio.Music asset) { soundComponent.setMusic(asset); } @Override public void error(String fileName, Class type, Throwable exception) { Gdx.app.error("SoundProcessor", "Impossible to play music " + fileName, exception); } }); } soundComponent.setConfig(sound); return soundComponent; }