Ativar camera do celular por j2me

1 resposta
C

Por favor, gostaria de saber pelo menos como acessar ou ativar a camera de um celular , isso feito por uma apliação j2me.
Se alguem souber, ou puder dar alguma diga de estudo ja ficaria muito agradecido, obrigado :lol:

1 Resposta

C

Bom, ja consegui acessar a camera apartir dessas 3 classes, mas a função também desse programinha era tirar foto, passeei pro celular e ele acessou a camera, só que não tira fotos, alguem poderia me ajudar?

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class CameraMIDlet extends MIDlet
{
    private CameraCanvas cameraCanvas = null;
    private DisplayCanvas displayCanvas = null;
    public CameraMIDlet()
    {
    }
    public void startApp()
    {
        Displayable current = Display.getDisplay(this).getCurrent();
        if (current == null)
        {
            // first call
            cameraCanvas = new CameraCanvas(this);
            displayCanvas = new DisplayCanvas(this);
            Display.getDisplay(this).setCurrent(cameraCanvas);
            cameraCanvas.start();
        }
        else
        {
            // returning from pauseApp
            if (current == cameraCanvas)
            {
                cameraCanvas.start();
            }
            Display.getDisplay(this).setCurrent(current);
        }
    }
    public void pauseApp()
    {
        if (Display.getDisplay(this).getCurrent() == cameraCanvas)
        {
            cameraCanvas.stop();
        }
    }

      public void destroyApp(boolean unconditional)
  {
      if (Display.getDisplay(this).getCurrent() == cameraCanvas)
      {
          cameraCanvas.stop();
      }
  }
  private void exitRequested()
  {
              destroyApp(false);
              notifyDestroyed();
  }
  void cameraCanvasExit()
  {
      exitRequested();
  }
  void cameraCanvasCaptured(byte[] pngData)
  {
      cameraCanvas.stop();
      displayCanvas.setImage(pngData);
      Display.getDisplay(this).setCurrent(displayCanvas);
  }
  void displayCanvasBack()
  {
      Display.getDisplay(this).setCurrent(cameraCanvas);
      cameraCanvas.start();
  }
}
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import java.io.IOException;

class CameraCanvas extends Canvas
    implements CommandListener
{
  private final CameraMIDlet midlet;
  private final Command exitCommand;
  private Command captureCommand = null;
  private Player player = null;
  private VideoControl videoControl = null;
  private boolean active = false;
  // Two strings for displaying error messages
  private String message1 = null;
  private String message2 = null;
  CameraCanvas(CameraMIDlet midlet)
  {
      this.midlet = midlet;
      exitCommand = new Command("Exit", Command.EXIT, 1);
      addCommand(exitCommand);
      setCommandListener(this);
      try
      {
          player = Manager.createPlayer("capture://video");
          player.realize();
          // Grab the video control and set it to the current display.
          videoControl = (VideoControl)(player.getControl("VideoControl"));
          if (videoControl == null)
          {
              discardPlayer();
              message1 = "Unsupported:";
              message2 = "Can't get video control";
          }
          else
          {
              videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,
                                           this);
              // centre video, letting it be clipped if it's too big
              int canvasWidth = getWidth();
              int canvasHeight = getHeight();
              int displayWidth = videoControl.getDisplayWidth();
              int displayHeight = videoControl.getDisplayHeight();
              int x = (canvasWidth - displayWidth) / 2;
              int y = (canvasHeight - displayHeight) / 2;
              videoControl.setDisplayLocation(x, y);
              captureCommand = new Command("Capture", Command.SCREEN, 1);
              addCommand(captureCommand);
          }
      }
      catch (IOException ioe)
      {
          discardPlayer();
          message1 = "IOException:";
          message2 = ioe.getMessage();
      }
      catch (MediaException me)
      {
          discardPlayer();

                  message1 = "MediaException:";
        message2 = me.getMessage();
    }
    catch (SecurityException se)
    {
        discardPlayer();
        message1 = "SecurityException";
        message2 = se.getMessage();
    }
}
// Called in case of exception to make sure invalid players are closed
private void discardPlayer()
{
    if (player != null)
    {
        player.close();
        player = null;
    }
    videoControl = null;
}
public void paint(Graphics g)
{
    g.setColor(0x00FFFF00);   // yellow
    g.fillRect(0, 0, getWidth(), getHeight());
    if (message1 != null)
    {
        g.setColor(0x00000000);   // black
        g.drawString(message1, 1, 1, Graphics.TOP | Graphics.LEFT);
        g.drawString(message2, 1, 1 + g.getFont().getHeight(),
                                     Graphics.TOP | Graphics.LEFT);
    }
}
synchronized void start()
{
    if ((player != null) && !active)
    {
        try
        {
            player.start();
            videoControl.setVisible(true);
        }
        catch (MediaException me)
        {
            message1 = "Media exception:";
            message2 = me.getMessage();
        }
        catch (SecurityException se)
        {
            message1 = "SecurityException";
            message2 = se.getMessage();
        }
        active = true;
    }
}
  synchronized void stop()
  {
      if ((player != null) && active)
      {
          try
          {
              videoControl.setVisible(false);
              player.stop();
          }
          catch (MediaException me)
          {
              message1 = "MediaException:";
              message2 = me.getMessage();
          }
          active = false;
      }
  }
  public void commandAction(Command c, Displayable d)
  {
      if (c == exitCommand)
      {
          midlet.cameraCanvasExit();
      }
      else if (c == captureCommand)
      {
          takeSnapshot();
      }
  }
  public void keyPressed(int keyCode)
  {
      if (getGameAction(keyCode) == FIRE)
      {
          takeSnapshot();
      }
  }
  private void takeSnapshot()
  {
      if (player != null)
      {
          try
          {
              byte[] pngImage = videoControl.getSnapshot(null);
              midlet.cameraCanvasCaptured(pngImage);
          }
          catch (MediaException me)
          {
              message1 = "MediaException:";
              message2 = me.getMessage();
          }
      }
  }
}
import javax.microedition.lcdui.*;

class DisplayCanvas
    extends Canvas
    implements CommandListener
{
    private final CameraMIDlet midlet;
    private Image image = null;
    DisplayCanvas(CameraMIDlet midlet)
    {
        this.midlet = midlet;
        addCommand(new Command("Back", Command.BACK, 1));
        setCommandListener(this);
    }
    public void paint(Graphics g)
    {
        g.setColor(0x0000FFFF);   // cyan
        g.fillRect(0, 0, getWidth(), getHeight());
        if (image != null)
        {
            g.drawImage(image,
                        getWidth()/2,
                        getHeight()/2,
                        Graphics.VCENTER | Graphics.HCENTER);
        }
    }
    void setImage(byte[] pngImage)
    {
        image = Image.createImage(pngImage, 0, pngImage.length);
    }
    public void commandAction(Command c, Displayable d)
    {
        midlet.displayCanvasBack();
    }
}
Criado 12 de setembro de 2008
Ultima resposta 13 de set. de 2008
Respostas 1
Participantes 1