FileDocCategorySizeDatePackage
AudioPlayer.javaAPI DocJ2ME MIDP 2.03059Thu Nov 07 12:02:20 GMT 2002example.audiodemo

AudioPlayer.java

/*
 * @(#)AudioPlayer.java	1.2 02/07/25 @(#)
 *
 * Copyright (c) 2002 Sun Microsystems, Inc.  All rights reserved.
 * PROPRIETARY/CONFIDENTIAL
 * Use is subject to license terms.
 */

package example.audiodemo;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import java.util.*;
import java.io.*;

/**
 * This is a demo midlet to show the basic audio functionalities, to
 * play wave file, tone, tone sequence from http, resource jar file
 * and record store.
 *
 * @author Sharon.Huang@Sun.Com
 *
 **/


public class AudioPlayer extends MIDlet implements CommandListener {
    private static PlayerCanvas   playerGUI = null;
    private static List           theList;
    private static Vector         urls;

    private Command               exitCommand = new Command("Exit",
                                                    Command.EXIT, 1);
    private Command               playCommand = new Command("Play",
                                                    Command.ITEM, 1);

    private Display               display;

    
    public AudioPlayer() {
	super();
    }
    
    public static List getList() {
	return theList;
    }

    public void startApp() {
	display  = Display.getDisplay(this);
	initPlayList();
	display.setCurrent(theList);
    }


    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
	if (playerGUI != null) {
	    playerGUI.stopSound();
	    playerGUI = null;
	}
	display.setCurrent(null);
    }

    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(true);
            notifyDestroyed();
       } else if ((s == theList && c == List.SELECT_COMMAND) ||
		  c == playCommand) {
	   int i = theList.getSelectedIndex();
	   if (i == 0) { // Simple tone
	       try {
		   Manager.playTone(60, 200, 90);
	       } catch (MediaException ex) {
		   System.out.println("can't play tone");
	       }
	   } else if (i > 0) {
	       if (playerGUI == null) 
		   playerGUI = new PlayerCanvas(display);
	       else 
		   playerGUI.stopSound();

	       playerGUI.setParam((String) urls.elementAt(i));
	       playerGUI.playSound();
	       display.setCurrent(playerGUI);
	   }
       }
    }

    /**
     * load the play list from thd jad file
     *
     **/
    private void initPlayList() {
	urls = new Vector();

	theList  = new List("MIDP Audio Player", Choice.IMPLICIT);

	for (int n = 1; n < 32; n++) {
	    String nthURL = "PlayerURL-"+ n;
	    String url = getAppProperty(nthURL);
	    if (url == null || url.length() == 0) {
		break;
	    }
            String nthTitle = "PlayerTitle-" + n;
            String title = getAppProperty(nthTitle);
            if (title == null || title.length() == 0) {
		title = url;
	    }
            urls.addElement(url);
            theList.append(title, null);
	}
	
        theList.addCommand(exitCommand);
        theList.addCommand(playCommand);
	theList.setCommandListener(this);
    }
}