Example #1
0
  @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;
  }