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

📄 audioplayer_midlet.java

📁 本光盘是《J2ME无线移动游戏开发》一书的配套光盘
💻 JAVA
字号:
package ch11;

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

public class AudioPlayer_MIDlet
    extends MIDlet
    implements CommandListener {

  //声明一个Display对象
  private Display mDisplay;

  //声明一个Form对象
  private Form mMainForm;

  //声明一个播放按钮Command对象
  private Command mPlayCommand;

  //声明一个获取音频文件地址TextField对象
  private TextField mURLTextField;

  //声明一个控制播放次数进度条Gauge对象
  private Gauge mNumGauge;

  //声明一个控制音量进度条Gauge对象
  private Gauge mVolGauge;

  //声明一个控制音量的VolumeControl对象
  VolumeControl vc;

  /*
   1.构造器
   */
  public AudioPlayer_MIDlet() {
    mMainForm = new Form("音频播放器");
    mPlayCommand = new Command("播放", Command.SCREEN, 0);
    mURLTextField = new TextField("媒体文件地址:", "/res/test.wav", 40, TextField.ANY);
    mNumGauge = new Gauge("重复播放次数:", true, 5, 1);
    mVolGauge = new Gauge("调节音量:", true, 5, 1);
    mMainForm.addCommand(mPlayCommand);
    mMainForm.append(mURLTextField);
    mMainForm.append(mNumGauge);
    mMainForm.append(mVolGauge);
    mMainForm.addCommand(new Command("退出", Command.EXIT, 0));
    mMainForm.setCommandListener(this);
    mDisplay = Display.getDisplay(this);
    mDisplay.setCurrent(mMainForm);
  }

  //启动应用程序
  public void startApp() {
  }

  //挂起应用程序
  public void pauseApp() {
  }

  //撤销应用程序
  public void destroyApp(boolean unconditional) {
  }

  /*
   2.播放音频文件
   */
  private void play() {

    try {
      InputStream in = getClass().getResourceAsStream(mURLTextField.getString());
      Player p = Manager.createPlayer(in, "audio/x-wav");
      p.realize();
      p.setLoopCount(mNumGauge.getValue());
      vc = (VolumeControl) p.getControl("VolumeControl");
      vc.setLevel(mVolGauge.getValue() * 10);
      p.start();
    }
    catch (Throwable t) {
      Alert a = new Alert("警告:", t.toString(),
                          null, AlertType.ERROR);
      mDisplay.setCurrent(a, mMainForm);
    }
  }

  /*
   3.响应按钮事件
   */
  public void commandAction(Command c, Displayable s) {
    if (c.getCommandType() == Command.EXIT) {
      notifyDestroyed();
    }
    else if (c == mPlayCommand) {
      play();
    }
  }

  /*
   4.响应条目事件
   */
  public void itemStateChanged(Item item) {
    if (item == mNumGauge) {
      play();
    }
    else if (item == mVolGauge) {
      vc.setLevel(mVolGauge.getValue() * 10);
    }
  }
}

⌨️ 快捷键说明

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