📄 captureui.java
字号:
package com.j2medev.chapter8;
import java.io.*;
import java.util.Date;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.VideoControl;
public class CaptureUI extends Form implements CommandListener{
private BrowserMIDlet midlet = null;
private Player player = null;
private VideoControl vc = null;
private Command backCommand = new Command("back",Command.BACK,1);
private Command okCommand = new Command("capture",Command.OK,1);
public CaptureUI(BrowserMIDlet midlet) {
super("new picture");
this.midlet = midlet;
startPlayer();
addCommand(backCommand);
setCommandListener(this);
}
//启动Player
private void startPlayer(){
if(player == null){
try {
player = Manager.createPlayer("capture://video");
player.realize();
vc = (VideoControl)player.getControl("VideoControl");
if(vc != null)
append((Item)vc.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE,null));
addCommand(okCommand);
} catch (MediaException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
//释放Player的资源,这很重要
private void release(){
if(player != null){
player.close();
player = null;
}
}
public void commandAction(Command command, Displayable displayable) {
if(command == backCommand){
//返回
release();
midlet.main();
}else if(command == okCommand){
//使用MMAPI拍照,并保存png文件到photos目录
new Thread(){
public void run(){
FileConnection fc = null;
try {
byte[] img = vc.getSnapshot(null);
//检查用户默认的图片存储目录是否存在,WTK 2.5支持
String p = System.getProperty("fileconn.dir.photos");
if(p == null)
//如果不存在,存储在根目录
p = BrowserMIDlet.ROOT;
fc = (FileConnection) Connector.open(p + "/" + new Date().getTime() + ".png");
if(!fc.exists()){
//新建文件
fc.create();
OutputStream os = fc.openOutputStream();
os.write(img);
os.close();
fc.close();
fc = null;
}
//释放Player资源并刷新当前文件列表
release();
midlet.main();
} catch (MediaException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}.start();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -