Android Open Source - DolphinOES Audio Player






From Project

Back to project page DolphinOES.

License

The source code is released under:

Apache License

If you think the Android project DolphinOES listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*******************************************************************************
 * Copyright 2014 See AUTHORS file.//from w  ww.ja va  2s  .c  om
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.sidereal.dolphinoes.behaviors.audio;

import java.util.ArrayList;
import java.util.Hashtable;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.audio.Sound;
import com.sidereal.dolphinoes.architecture.DolphinOES;
import com.sidereal.dolphinoes.architecture.GameBehavior;
import com.sidereal.dolphinoes.architecture.GameObject;
import com.sidereal.dolphinoes.architecture.core.GameData.Settings;
import com.sidereal.dolphinoes.util.FloatWrapper;

/** Plays audio that a {@link GameObject} instance with the {@link AudioListener}
 * can listen to.
 * 
 * @author Claudiu Bele */
public class AudioPlayer extends GameBehavior
{

  // region static
  public static Hashtable<String, Music> musicClips;
  public static Hashtable<String, Sound> soundClips;

  public static Sound getSoundClip(String location)
  {

    if (soundClips == null)
      soundClips = new Hashtable<String, Sound>();

    if (!soundClips.containsKey(location))
    {
      soundClips.put(location,
          Gdx.audio.newSound(Gdx.files.internal(location)));
    }
    return soundClips.get(location);
  }

  public static Music getMusicClip(String location)
  {

    if (musicClips == null)
      musicClips = new Hashtable<String, Music>();

    if (!musicClips.containsKey(location))
    {
      musicClips.put(location,
          Gdx.audio.newMusic(Gdx.files.internal(location)));
    }
    return musicClips.get(location);
  }

  // endregion

  // region fields

  /** A playlist of music, can be made to loop */
  public ArrayList<Music> playlist;
  public Music currMusicClip;

  public boolean repeat;
  public boolean mustPlay;
  private boolean paused;
  private long currSoundId;
  public Sound sound;

  // endregion fields

  // region constructors

  public AudioPlayer(GameObject obj)
  {

    super(obj);
    mustPlay = false;
    repeat = false;
    currSoundId = -2;

  }

  // endregion constructors

  // region methods

  public void setClip(String filepath)
  {

    sound = getSoundClip(filepath);
  }

  public void setMusicPlaylist(String[] filePaths, boolean repeat)
  {

    playlist = new ArrayList<Music>();
    for (int i = 0; i < filePaths.length; i++)
    {
      playlist.add(getMusicClip(filePaths[i]));
    }
    this.repeat = repeat;

  }

  @Override
  public void update()
  {

    if (mustPlay)
    {
      if (sound != null)
      {

        currSoundId = sound.play(((FloatWrapper) DolphinOES.data.getSettings(Settings.SOUND_VOLUME)).get());
        mustPlay = false;
      }

      if (playlist != null && playlist.size() > 0)
      {
        if (currMusicClip == null)
        {
          currMusicClip = playlist.get(0);
          currMusicClip.play();
        }

        if (!currMusicClip.isPlaying() && !DolphinOES.isFocused())
        {
          if (playlist.indexOf(currMusicClip) == playlist.size() - 1)
          {
            currMusicClip = (repeat) ? playlist.get(0) : null;
          } else
          {
            currMusicClip = playlist.get(playlist
                .indexOf(currMusicClip) + 1);
          }
          currMusicClip.setVolume(((FloatWrapper) DolphinOES.data
              .getSettings(Settings.SOUND_VOLUME)).get());
          currMusicClip.play();
        }
      }
    }
  }

  public void Play()
  {

    if (!mustPlay)
    {
      mustPlay = true;
      if (sound != null)
      {
        currSoundId = sound.play(((FloatWrapper) DolphinOES.data.getSettings(Settings.SOUND_VOLUME)).get());
      }

      if (currMusicClip != null && paused)
      {
        currMusicClip.play();
      }
      paused = false;

    }

  }

  public void Pause()
  {

    if (mustPlay && !paused)
    {
      if (sound != null)
      {
        sound.resume(currSoundId);
      }

      if (currMusicClip != null)
      {
        currMusicClip.pause();
      }
      paused = true;
      mustPlay = false;
    }
  }

  // endregion methods
}




Java Source Code List

com.sidereal.dolphinoes.architecture.AbstractEvent.java
com.sidereal.dolphinoes.architecture.DebugHandler.java
com.sidereal.dolphinoes.architecture.DolphinOES.java
com.sidereal.dolphinoes.architecture.GameBatch.java
com.sidereal.dolphinoes.architecture.GameBehavior.java
com.sidereal.dolphinoes.architecture.GameObject.java
com.sidereal.dolphinoes.architecture.GameScene.java
com.sidereal.dolphinoes.architecture.Module.java
com.sidereal.dolphinoes.architecture.core.Assets.java
com.sidereal.dolphinoes.architecture.core.Configurable.java
com.sidereal.dolphinoes.architecture.core.Debug.java
com.sidereal.dolphinoes.architecture.core.DolphinOESConfiguration.java
com.sidereal.dolphinoes.architecture.core.GameData.java
com.sidereal.dolphinoes.architecture.core.MouseMovedEvent.java
com.sidereal.dolphinoes.architecture.core.Time.java
com.sidereal.dolphinoes.architecture.core.assetload.AssetLoadHandler.java
com.sidereal.dolphinoes.architecture.core.assetload.AssetLoader.java
com.sidereal.dolphinoes.architecture.core.assetload.ClassFileHandleResolver.java
com.sidereal.dolphinoes.architecture.core.assetload.LoadingPercentage.java
com.sidereal.dolphinoes.architecture.core.input.ActionData.java
com.sidereal.dolphinoes.architecture.core.input.ActionEventWrapper.java
com.sidereal.dolphinoes.architecture.core.input.ActionEvent.java
com.sidereal.dolphinoes.architecture.core.input.Input.java
com.sidereal.dolphinoes.architecture.core.input.KeyTypedEvent.java
com.sidereal.dolphinoes.architecture.core.input.ScrollEvent.java
com.sidereal.dolphinoes.architecture.core.input.TouchData.java
com.sidereal.dolphinoes.architecture.core.input.TouchEventWrapper.java
com.sidereal.dolphinoes.architecture.core.input.TouchEvent.java
com.sidereal.dolphinoes.architecture.pos.Position.java
com.sidereal.dolphinoes.architecture.pos.Positions.java
com.sidereal.dolphinoes.backend.ConcreteGametester.java
com.sidereal.dolphinoes.backend.GameTester.java
com.sidereal.dolphinoes.backend.SceneGameTester.java
com.sidereal.dolphinoes.behaviors.audio.AudioListener.java
com.sidereal.dolphinoes.behaviors.audio.AudioPlayer.java
com.sidereal.dolphinoes.behaviors.events.EventTimer.java
com.sidereal.dolphinoes.behaviors.events.RecurringEvent.java
com.sidereal.dolphinoes.behaviors.input.Clickable.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleEmitter.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleHandler.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleSpriteLayout.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleSpriteObject.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingHandler.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingMap.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingNode.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingRoute.java
com.sidereal.dolphinoes.behaviors.renderer.DrawerBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.Drawer.java
com.sidereal.dolphinoes.behaviors.renderer.Renderer.java
com.sidereal.dolphinoes.behaviors.renderer.ninepatch.NinepatchBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.ninepatch.NinepatchDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.scml.SCMLBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.scml.SCMLDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.sprite.SpriteBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.sprite.SpriteDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequenceBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequenceDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequencePreference.java
com.sidereal.dolphinoes.behaviors.renderer.texture.TextureBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.texture.TextureDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.tilemap.TileMapBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.tilemap.TileMapDrawer.java
com.sidereal.dolphinoes.behaviors.triggers.Activatable.java
com.sidereal.dolphinoes.behaviors.triggers.Collider.java
com.sidereal.dolphinoes.behaviors.triggers.Hoverable.java
com.sidereal.dolphinoes.ui.MessageBubble.java
com.sidereal.dolphinoes.ui.TextBuilder.java
com.sidereal.dolphinoes.util.BooleanWrapper.java
com.sidereal.dolphinoes.util.DolphinOESException.java
com.sidereal.dolphinoes.util.FloatWrapper.java
com.sidereal.dolphinoes.util.IntWrapper.java
com.sidereal.dolphinoes.util.Utility.java