📄 captureform.java
字号:
package com.j2medev.chapter4;
import com.j2medev.httpme.HttpUtil;
import com.j2medev.httpme.view.MyImageItem;
import com.j2medev.httpme.view.MyTextField;
import java.io.IOException;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.VideoControl;
public class CaptureForm extends Form implements CommandListener{
private BlogMIDlet midlet = null;
private Player player = null;
private VideoControl vc = null;
private Command captureCommand = new Command("capture",Command.OK,0);
private Command uploadCommand = new Command("upload",Command.OK,1);
public CaptureForm(BlogMIDlet _midlet) {
super("capture");
this.midlet = _midlet;
startPlayer();
addCommand(new Command("back",Command.BACK,2));
addCommand(captureCommand);
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));
}
player.start();
} catch (MediaException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
//释放资源
private void release(){
if(player != null)
player.close();
player = null;
}
public void commandAction(Command command, Displayable displayable) {
if(command.getCommandType() == Command.BACK){
release();
midlet.displayMenu();
}else if(command == captureCommand){//拍照
new Thread(){
public void run(){
try {
byte[] img = vc.getSnapshot("encoding=jpeg");
deleteAll();
append(new MyTextField("title","",30,TextField.ANY,"title"));
append(new MyImageItem("image",img,Item.LAYOUT_CENTER,"","image","file.jpg"));
removeCommand(captureCommand);
addCommand(uploadCommand);
release();
} catch (MediaException ex) {
ex.printStackTrace();
}
}
}.start();
}else if(command == uploadCommand){//上传
midlet.post("/blogserver/upload",this,HttpUtil.MULTIPART_FORM_DATA);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -