Java Tutorial/J2ME/Tones
Distributed Tone
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.midlet.MIDlet;
public class DistributedToneMIDlet extends MIDlet {
private Player tonePlayer;
public DistributedToneMIDlet() {
try {
tonePlayer = Manager.createPlayer(getClass().getResourceAsStream(
"/x.jts"), "audio/x-tone-seq");
} catch(Exception e) {
System.err.println(e);
}
}
public void startApp() {
try {
if(tonePlayer != null)
tonePlayer.start();
} catch(Exception e) {
System.err.println(e);
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
Play CSharp
import javax.microedition.midlet.MIDlet;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
public class CSharpMIDlet extends MIDlet {
public CSharpMIDlet() {
}
public void startApp() {
try {
Manager.playTone(61, 5000, 100);
} catch(MediaException me) { System.err.println(me); }
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
Play tone
import javax.microedition.lcdui.rumand;
import javax.microedition.lcdui.rumandListener;
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);
}
}
}