- import javax.microedition.lcdui.Alert;
- import javax.microedition.lcdui.AlertType;
- import javax.microedition.lcdui.Command;
- import javax.microedition.lcdui.CommandListener;
- import javax.microedition.lcdui.Displayable;
- import javax.microedition.lcdui.Form;
- import javax.microedition.lcdui.Image;
- import javax.microedition.lcdui.ImageItem;
- import javax.microedition.lcdui.Spacer;
- import java.io.IOException;
- import java.util.Timer;
- import sun.HttpConnection.HttpStringThread;
- import sun.HttpConnection.TaskInterface;
- import sun.dao.Control;
- /**
- * @date 2008-08-22
- * @author Administrator
- * @function 监视操作:远程监视图片初始化界面
- */
- public class VideoCatchForm extends Form implements CommandListener,
- TaskInterface{
- private Command Active_Start = new Command("开始",Command.ITEM,1);
- private Command Active_End = new Command("停止",Command.ITEM,2);
- private Command Black = new Command("返回",Command.BACK,3);
- Alert alert;
- TaskInterface ti;
- int count=0;
- ImageItem item;
- Image img11;
- Image img12;
- String str = "";
- NormalMIDlet midlet;
- boolean ischeck;//验证码标识
- public VideoCatchForm(NormalMIDlet Nmidlet) {
- super("视频抓拍");
- midlet = Nmidlet;
- try{
- img11 = Image.createImage("/png/11.png");
- img12 = Image.createImage("/png/12.png");
- }catch(IOException ioe){
- ioe.printStackTrace();
- }
- append(new Spacer(200,10));
- item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
- append(item);
- addCommand(Active_Start);
- addCommand(Active_End);
- addCommand(Black);
- setCommandListener(this);
- ti = this;
- }
- public void commandAction(Command cmd, Displayable s) {
- //开始监视
- if(cmd == Active_Start){
- if(midlet.ischeck == true){
- this.ischeck = true;
- str = cmd.getLabel();
- item = new ImageItem("",img12,ImageItem.LAYOUT_CENTER,"");
- this.set(1,item);
- String strUrl = "wap2.a-ihome.com/Video.aspx?TerminalNO="+Control.getTerminalNO()+"&AreaNO="+Control.getAreaNO()+"&Active=Start";
- HttpStringThread htt = new HttpStringThread(strUrl,ti);
- Thread th = new Thread(htt);
- th.start();
- }else{
- this.ischeck = false;
- alert = new Alert("提示:", "您输入的序列号或验证码有误", null,
- AlertType.ERROR);
- midlet.display.setCurrent(alert);
- }
- }
- //停止操作
- else if(cmd == Active_End){
- if(midlet.ischeck == true){
- this.ischeck = true;
- str = cmd.getLabel();
- midlet.timer.cancel();
- String strUrl = "wap2.a-ihome.com/Video.aspx?TerminalNO="+Control.getTerminalNO()+"&AreaNO="+Control.getAreaNO()+"&Active=End";
- HttpStringThread htt = new HttpStringThread(strUrl,ti);
- Thread th = new Thread(htt);
- th.start();
- }else{
- ischeck = false;
- alert = new Alert("提示:", "您输入的序列号或验证码有误", null,
- AlertType.ERROR);
- midlet.display.setCurrent(alert);
- }
- }
- //返回
- else if(cmd == Black){
- midlet.display.setCurrent(midlet.mainList);
- midlet.timer.cancel();
- item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
- this.set(1,item);
- }
- }
- //处理通信结果值
- public void data(String result) {
- if(result.equals("success")){
- if(str.equals("开始")){
- midlet.timer = new Timer();
- midlet.timer.schedule(new VideoTimer(this,midlet), 0, 2000);
- }
- else if(str.equals("停止")){
- item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
- this.set(1,item);
- }
- }
- else if(result.equals("error")||result.equals("fail")||result.equals("CommunicationError")){
- Alert failer = new Alert("提示:", "连接远程设备失败", null,
- AlertType.ERROR);
- midlet.display.setCurrent(failer);
- item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
- this.set(1, item);
- }
- }
- public void data(boolean result, String canvas) {
- ;
- }
- public void data(String result, String canvas) {
- ;
- }
- public void data(byte[] result) {
- ;
- }
- }
- import java.util.TimerTask;
- import javax.microedition.lcdui.Graphics;
- import javax.microedition.lcdui.Image;
- import javax.microedition.lcdui.ImageItem;
- import sun.HttpConnection.HttpImageThread;
- import sun.HttpConnection.HttpStringThread;
- import sun.HttpConnection.TaskInterface;
- import sun.dao.Control;
- /**
- *
- * @author Administrator
- * @function 图像抓取显示结果处理
- */
- public class VideoTimer extends TimerTask implements TaskInterface {
- VideoCatchForm cc;
- NormalMIDlet midlet;
- int count=0;
- public VideoTimer(){
- }
- public VideoTimer(VideoCatchForm cc,NormalMIDlet midlet){
- this.cc=cc;
- this.midlet = midlet;
- }
- //上传图片到网站
- public void run() {
- String resURL="wap2.a-ihome.com/VideoContent.aspx?TerminalNO="+Control.getTerminalNO()+"&AreaNO="+Control.getAreaNO();
- HttpStringThread hst=new HttpStringThread(resURL,this);
- Thread th=new Thread(hst);
- th.start();
- count++;
- cc.count=count;
- if(this.count>20){
- midlet.timer.cancel();
- ImageItem item = new ImageItem("",midlet.videocatch.img11,ImageItem.LAYOUT_CENTER,"");
- cc.set(1,item);
- midlet.display.setCurrent(cc);
- }
- }
- public final Image scale (Image srcImage, int newW, int newH) {
- int srcW = srcImage.getWidth();
- int srcH = srcImage.getHeight();
- //先做水平方向上的伸缩变换
- Image tmp = Image.createImage(newW, srcH);
- Graphics g = tmp.getGraphics();
- for (int x = 0; x < newW; x++) {
- g.setClip(x, 0, 1, srcH);
- //按比例放缩
- g.drawImage(srcImage,x-x*srcW/newW,0,Graphics.LEFT |Graphics.TOP);
- }
- //再做垂直方向上的伸缩变换
- Image dst = Image.createImage(newW, newH);
- g = dst.getGraphics();
- for (int y = 0; y < newH; y++) {
- g.setClip(0, y, newW, 1);
- //按比例放缩
- g.drawImage(tmp,0,y-y*srcH/newH,Graphics.LEFT | Graphics.TOP);
- }
- return dst;
- }
- public void data(String result) {
- if(!result.equals("")){
- String strUrl = "wap2.a-ihome.com/Image/"+ControlAurine.getAreaNO()+"-"+ControlAurine.getTerminalNO()+"-Video.jpg";
- HttpImageThread htt = new HttpImageThread(strUrl,this);
- Thread th = new Thread(htt);
- th.start();
- }
- }
- public void data(boolean result, String canvas) {
- ;
- }
- public void data(String result, String canvas) {
- ;
- }
- public void data(byte[] result) {
- Image img=Image.createImage(result, 0, result.length);
- ImageItem item = new ImageItem("",scale(img, 175, 150),ImageItem.LAYOUT_CENTER,"");
- if(img==null){
- ;
- }else{
- cc.set(1,item);
- }
- }
- }
j2me智能手机实现远程监控室内操作(高级界面篇)
最新推荐文章于 2023-11-30 14:37:35 发布