⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mixtest.java

📁 Audio demo
💻 JAVA
字号:
/* * * Copyright (c) 2007, Sun Microsystems, Inc. * * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * *  * Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. *  * Neither the name of Sun Microsystems nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */package example.audiodemo;import javax.microedition.lcdui.*;import javax.microedition.media.*;import javax.microedition.midlet.*;public class MixTest extends MIDlet implements CommandListener, Runnable {    private static final String[] mcases = { "Tone+Wav", "Tone+ToneSeq", "ToneSeq+Wav" };    static String wavUrl;    private static MixCanvas soundObj = null;    private static List theList;    private static MixTest instance = null;    private Command exitCommand = new Command("Exit", Command.EXIT, 1);    private Command playCommand = new Command("Play", Command.ITEM, 1);    private Display display;    // if this MIDlet's startApp method is started    // for the first time    private boolean firstTime = true;    // pause/resume support    private boolean restartOnResume = false;    public MixTest() {        instance = this;        display = Display.getDisplay(this);        theList = new List("Lists", Choice.IMPLICIT);        for (int i = 0; i < mcases.length; i++) {            theList.append(mcases[i], null);        }        wavUrl = getAppProperty("MixTestURL");        theList.addCommand(playCommand);        theList.addCommand(exitCommand);        theList.setCommandListener(this);        soundObj = new MixCanvas(display);    }    public static MixTest getInstance() {        return instance;    }    public static List getList() {        return theList;    }    /**     * Called when this MIDlet is started for the first time,     * or when the MIDlet returns from paused mode.     *     * If it is the first time, display the menu list.     *     * Otherwise, if music was playing when the MIDlet     * was paused, call the demo's playSound method.     */    public void startApp() {        if (firstTime) {            display.setCurrent(theList);            firstTime = false;        } else {            if ((soundObj != null) && restartOnResume) {                soundObj.playSound();            }            restartOnResume = false;        }    }    /**     * Called when this MIDlet is paused.     * Pause the thread.     * If the demo is playing, call its pause method.     * For consistency across different VM's,     * it's a good idea to stop the player if     * it's currently playing.     */    public void pauseApp() {        restartOnResume = ((soundObj != null) && soundObj.isPlaying());        if (restartOnResume) {            soundObj.pauseSound();        }    }    /**     * Destroy must cleanup everything not handled     * by the garbage collector.     */    public void destroyApp(boolean unconditional) {        if (soundObj != null) {            soundObj.stopSound();        }        soundObj = null;    }    public void commandAction(Command c, Displayable s) {        if (c == exitCommand) {            destroyApp(false);            notifyDestroyed();        } else if (((s == theList) && (c == List.SELECT_COMMAND)) || (c == playCommand)) {            int i = theList.getSelectedIndex();            soundObj.setIndex(i);            display.setCurrent(soundObj);            soundObj.serviceRepaints();            // method playSound() should not be invoked on GUI thread. Manager.createPlayer()            // will potentially invoke a blocking I/O. This is not good            // practice recommended by MIDP programming style. So here we            // will create the Player in a separate thread.            new Thread(this).start();        }    }    public void run() {        if (soundObj != null) {            soundObj.playSound();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -