?? 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 + -