Audio Player Demo : Audio Player « J2ME « Java Tutorial






import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Gauge;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.ItemStateListener;
import javax.microedition.lcdui.List;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.media.control.VolumeControl;
import javax.microedition.midlet.MIDlet;

class AudioPlayerCanvas implements ItemStateListener {
  private AudioPlayer parent;

  private Form form = new Form("");

  private Gauge gauge = new Gauge("Volume: 50", true, 100, 50);

  private VolumeControl volume;

  private Player player;

  private boolean paused = false;

  public AudioPlayerCanvas(AudioPlayer parent) {
    this.parent = parent;
    form.append(gauge);
    form.addCommand(parent.exitCommand);
    form.addCommand(parent.backCommand);
    form.setCommandListener(parent);

    form.setItemStateListener(this);
  }

  public void playMedia(String locator) {
    try {
      player = Manager.createPlayer(getClass().getResourceAsStream(locator), "audio/x-wav");
      player.realize();

      volume = (VolumeControl) player.getControl("VolumeControl");
      volume.setLevel(50);
      gauge.setValue(volume.getLevel());
      gauge.setLabel("Volume: " + volume.getLevel());
      player.setLoopCount(2);
      player.start();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public void pauseMedia() {
    if (player != null) {
      try {
        player.stop();
        paused = true;
      } catch (Exception e) {
      }
    }
  }

  public void restartMedia() {
    if (player != null) {
      try {
        player.start();
        paused = false;
      } catch (Exception e) {
      }
    }
  }

  public boolean isPlayerPaused() {
    return paused;
  }

  public Form getForm() {
    return this.form;
  }

  public void itemStateChanged(Item item) {
    volume.setLevel(gauge.getValue());
    gauge.setLabel("Volume: " + volume.getLevel());
  }

  public void cleanUp() {
    if (player != null) {
      player.close();
      player = null;
    }
  }
}

public class J2MEAudioPlayer extends MIDlet implements CommandListener {
  private String[] audioDisplayList = { "y.wav", "e.wav", "r.wav" };

  private String[] audioList = { "/y.wav", "/e.wav", "/r.wav" };

  protected Display display;

  private AudioPlayerCanvas canvas;

  private List list = new List("Pick an Audio file", List.IMPLICIT, audioDisplayList, null);

  protected Command exitCommand = new Command("Exit", Command.EXIT, 1);

  protected Command backCommand= new Command("Back", Command.BACK, 1);

  public J2MEAudioPlayer() {
    list.addCommand(exitCommand);
    list.setCommandListener(this);

    canvas = new AudioPlayerCanvas(this);
    display = Display.getDisplay(this);
  }

  public void startApp() {
    if (canvas.isPlayerPaused()) {
      canvas.restartMedia();
      display.setCurrent(canvas.getForm());
    } else {
      display.setCurrent(list);
    }
  }

  public void pauseApp() {
    canvas.pauseMedia();
  }

  public void destroyApp(boolean unconditional) {
    canvas.cleanUp();
  }

  public void commandAction(Command command, Displayable disp) {
    if (command == exitCommand) {
      canvas.cleanUp(); 
      notifyDestroyed();
      return;
    } else if (command == backCommand) { 
      canvas.cleanUp();
      display.setCurrent(list);
      return;
    }
    if (disp == list) {
      canvas.playMedia(audioList[list.getSelectedIndex()]);
      display.setCurrent(canvas.getForm());
    }
  }
}








31.54.Audio Player
31.54.1.Audio Player Demo
31.54.2.Cached Audio Player
31.54.3.Wav file player
31.54.4.Player Event
31.54.5.implements PlayerListener
31.54.6.Network Player Manager
31.54.7.Load WAV file from a web site