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