Mega Code Archive

 
Categories / Java Tutorial / J2ME
 

Play audio

import java.io.InputStream; import javax.microedition.lcdui.Alert; 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.List; import javax.microedition.media.Manager; import javax.microedition.media.Player; import javax.microedition.midlet.MIDlet; public class AudioMIDlet extends MIDlet implements CommandListener, Runnable {   private Display mDisplay;   private List mMainScreen;   public void startApp() {     mDisplay = Display.getDisplay(this);     if (mMainScreen == null) {       mMainScreen = new List("AudioMIDlet", List.IMPLICIT);       mMainScreen.append("Via HTTP", null);       mMainScreen.append("From resource", 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 {       Form waitForm = new Form("Loading...");       mDisplay.setCurrent(waitForm);       Thread t = new Thread(this);       t.start();     }   }   public void run() {     String selection = mMainScreen.getString(mMainScreen.getSelectedIndex());     boolean viaHttp = selection.equals("Via HTTP");     if (viaHttp)       playViaHttp();     else       playFromResource();   }   private void playViaHttp() {     try {       Player player = Manager.createPlayer("http://www.y.com/a.wav");       player.start();     } catch (Exception e) {       showException(e);       return;     }     mDisplay.setCurrent(mMainScreen);   }   private void playFromResource() {     try {       InputStream in = getClass().getResourceAsStream("/relax.wav");       Player player = Manager.createPlayer(in, "audio/x-wav");       player.start();     } catch (Exception e) {       showException(e);       return;     }     mDisplay.setCurrent(mMainScreen);   }   private void showException(Exception e) {     Alert a = new Alert("Exception", e.toString(), null, null);     a.setTimeout(Alert.FOREVER);     mDisplay.setCurrent(a, mMainScreen);   } }