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

📄 playerlistener_midlet.java

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

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

public class PlayerListener_MIDlet
    extends MIDlet
    implements CommandListener, PlayerListener {

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

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

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

  //声明一个重放按钮Command对象
  private Command rePlay;

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

  //声明一个代表图标的Image对象
  private Image image = null;

  //声明一个代表滚动条的Ticker对象
  Ticker currentTicker;

  /*
   1.构造器
   */
  public PlayerListener_MIDlet() {
    mMainForm = new Form("音频播放器");
    mPlayCommand = new Command("播放", Command.SCREEN, 0);
    mURLTextField = new TextField("媒体文件地址:", "/res/test.wav", 40, TextField.ANY);

    mMainForm.addCommand(mPlayCommand);
    mMainForm.append(mURLTextField);

    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.响应按钮事件
   */
  public void commandAction(Command c, Displayable s) {
    if (c.getCommandType() == Command.EXIT) {
      notifyDestroyed();
    }
    else if (c == mPlayCommand || c == rePlay) {
      play();
    }
  }

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

    try {
      InputStream in = getClass().getResourceAsStream(mURLTextField.getString());
      Player p = Manager.createPlayer(in, "audio/x-wav");
      p.addPlayerListener(this);
      p.start();
    }
    catch (Throwable t) {
      try {
        image = Image.createImage("/icons/background/star.png");
      }
      catch (Exception e) {
        System.out.println(e.getMessage());
      }
      Alert a = new Alert("警告:", t.toString(),
                          image, AlertType.ERROR);
      mDisplay.setCurrent(a, mMainForm);
    }
  }

  /*
   4.响音媒体事件
   */
  public void playerUpdate(Player p, String event, Object eventData) {

    if (event == PlayerListener.STARTED) {
      currentTicker = new Ticker("开始播放:" + mURLTextField.getString());
      mMainForm.setTicker(currentTicker);
    }
    if (event == PlayerListener.END_OF_MEDIA) {
      if (rePlay == null) {
        currentTicker.setString("停止播放!");
        rePlay = new Command("重新播放", Command.SCREEN, 1);
        mMainForm.removeCommand(mPlayCommand);
        mMainForm.addCommand(rePlay);
      }
    }
  }
}

⌨️ 快捷键说明

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