Tone MIDlet
/* Wireless Java 2nd edition Jonathan Knudsen Publisher: Apress ISBN: 1590590775 */ import java.io.*; import javax.microedition.io.*; import javax.microedition.lcdui.*; import javax.microedition.midlet.*; import javax.microedition.media.*; import javax.microedition.media.control.*; public class ToneMIDlet extends MIDlet implements CommandListener { private final static String kSoundOfMusic = "Sound of Music"; private final static String kQuandoMenVo = "Quando men vo"; private final static String kTwinkle = "Twinkle number VII"; private Display mDisplay; private List mMainScreen; public void startApp() { mDisplay = Display.getDisplay(this); if (mMainScreen == null) { mMainScreen = new List("AudioMIDlet", List.IMPLICIT); mMainScreen.append(kSoundOfMusic, null); mMainScreen.append(kQuandoMenVo, null); mMainScreen.append(kTwinkle, null); mMainScreen.addCommand(new Command("Exit", Command.EXIT, 0)); mMainScreen.addCommand(new Command("Play", Command.SCREEN, 0)); mMainScreen.setCommandListener(this); } mDisplay.setCurrent(mMainScreen); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable s) { if (c.getCommandType() == Command.EXIT) notifyDestroyed(); else run(); } public void run() { String selection = mMainScreen.getString( mMainScreen.getSelectedIndex()); byte[] sequence = null; if (selection.equals(kSoundOfMusic)) { sequence = new byte[] { ToneControl.VERSION, 1, 67, 16, // The 69, 16, // hills 67, 8, // are 65, 8, // a - 64, 48, // live 62, 8, // with 60, 8, // the 59, 16, // sound 57, 16, // of 59, 32, // mu - 59, 32 // sic }; } else if (selection.equals(kQuandoMenVo)) { sequence = new byte[] { ToneControl.VERSION, 1, ToneControl.TEMPO, 22, ToneControl.RESOLUTION, 96, 64, 48, ToneControl.SILENCE, 8, 52, 4, 56, 4, 59, 4, 64, 4, 63, 48, ToneControl.SILENCE, 8, 52, 4, 56, 4, 59, 4, 63, 4, 61, 72, ToneControl.SILENCE, 12, 61, 12, 63, 12, 66, 2, 64, 10, 63, 12, 61, 12, 64, 12, 57, 12, 57, 48, ToneControl.SILENCE, 12, 59, 12, 61, 12, 64, 2, 63, 10, 61, 12, 59, 12, 63, 12, 56, 12, 56, 48, }; } else if (selection.equals(kTwinkle)) { sequence = new byte[] { ToneControl.VERSION, 1, ToneControl.TEMPO, 22, ToneControl.BLOCK_START, 0, 60, 8, 62, 4, 64, 4, 65, 4, 67, 4, 69, 4, 71, 4, 72, 4, 74, 4, 76, 4, 77, 4, 79, 4, 81, 4, 83, 4, 84, 4, 83, 4, 81, 4, 80, 4, 81, 4, 86, 4, 84, 4, 83, 4, 81, 4, 81, 4, 79, 4, 78, 4, 79, 4, 60, 4, 79, 4, 88, 4, 79, 4, 57, 4, 77, 4, 88, 4, 77, 4, 59, 4, 77, 4, 86, 4, 77, 4, 56, 4, 76, 4, 86, 4, 76, 4, 57, 4, 76, 4, 84, 4, 76, 4, 53, 4, 74, 4, 84, 4, 74, 4, 55, 4, 74, 4, 83, 4, 74, 4, 84, 16, ToneControl.SILENCE, 16, ToneControl.BLOCK_END, 0, ToneControl.BLOCK_START, 1, 79, 4, 84, 4, 88, 4, 86, 4, 84, 4, 83, 4, 81, 4, 79, 4, 77, 4, 76, 4, 74, 4, 72, 4, 71, 4, 69, 4, 67, 4, 65, 4, 64, 8, 76, 8, 77, 8, 78, 8, 79, 12, 76, 4, 74, 8, ToneControl.SILENCE, 8, ToneControl.BLOCK_END, 1, ToneControl.SET_VOLUME, 100, ToneControl.PLAY_BLOCK, 0, ToneControl.SET_VOLUME, 50, ToneControl.PLAY_BLOCK, 0, ToneControl.SET_VOLUME, 100, ToneControl.PLAY_BLOCK, 1, ToneControl.SET_VOLUME, 50, ToneControl.PLAY_BLOCK, 1, ToneControl.SET_VOLUME, 100, ToneControl.PLAY_BLOCK, 0, }; } try { Player player = Manager.createPlayer(Manager.TONE_DEVICE_LOCATOR); player.realize(); ToneControl tc = (ToneControl)player.getControl("ToneControl"); tc.setSequence(sequence); player.start(); } catch (Exception e) { Alert a = new Alert("Exception", e.toString(), null, null); a.setTimeout(Alert.FOREVER); mDisplay.setCurrent(a, mMainScreen); } } }
1. | Audio MIDlet | ||
2. | Piano MIDlet | ||
3. | Media Information MIDlet | ||
4. | demonstrate the functionality supported by javax.microedition.lcdui package. | ||
5. | Sound Alert |