📄 playerlistener_midlet.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 + -