Play tone : Tones « 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.StringItem;
import javax.microedition.media.Manager;
import javax.microedition.midlet.MIDlet;

public class J2MEAllTonesPlayer extends MIDlet implements CommandListener {

  Form displayForm = new Form("Playing all tones");

  StringItem info = new StringItem("", "");

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

  Thread runner;

  boolean stop = false;

  public void startApp() {
    displayForm.append(info);
    Display.getDisplay(this).setCurrent(displayForm);
    displayForm.addCommand(exit);
    displayForm.setCommandListener(this);

    runner = new Thread(new TonePlayer(info, this));
    runner.start();
  }

  public void pauseApp() {
  }

  public void destroyApp(boolean unconditional) {
    if (runner != null)
      stop = true;
  }

  public void commandAction(Command cmd, Displayable disp) {
    destroyApp(true);
    notifyDestroyed();
  }

}

class TonePlayer implements Runnable {

  StringItem info;

  AllTonesPlayer midlet;

  public TonePlayer(StringItem info, AllTonesPlayer midlet) {
    this.info = info;
    this.midlet = midlet;
  }

  public void run() {
    try {
      for (int i = 0; i < 128; i++) {
        Thread.sleep(1000);
        info.setText("Playing: " + i);
        Manager.playTone(i, 500, 100);
        if (midlet.stop)
          break;
      }

    } catch (Exception me) {
      System.err.println(me);
    }
  }
}








31.49.Tones
31.49.1.Play tone
31.49.2.Play CSharp
31.49.3.Distributed Tone