www.pudn.com > audiodemo.rar > 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.
 *
 * @version 1.2
 *
 */


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);
    }
}