Acessando o dispositivo de câmera do Android

Usando a Camera:

A popularidade das câmeras digitais (particularmente nos telefones celulares) provocou a queda de seus preços assim como seu tamanho diminuiu dramaticamente. Agora, é cada vez mais difícil até encontrar um celular sem uma câmera, e os dispositivos Android não são exceções.
Para acessar o hardware da câmera, é preciso adicionar a permissão para CAMERA no arquivo Manifest de sua aplicação, como mostrado aqui:

<uses-permission android:name=”android.permission.CAMERA”/>

Isso permite o acesso ao Serviço da Câmara. A classe Camera permite ajustar as configurações da câmera, tirar fotografias, e manipular previews do streaming da câmera .
Para acessar o serviço da câmera, use o método estático open da classe Camera. Quando seu aplicativo terminar de usar a câmera, lembre-se de encerar o  domínio do serviço chamando release. A seguir o padrão de utilização simples mostrada no trecho de código abaixo:

Camera camera = Camera.open();
  [ … utilização do usuário … ]
camera.release();

Controlando as configurações da câmera:

As definições da câmara estão disponiveis usando o objeto  Camera.Parameters . Chame o método getParameters na câmera para acessar os parâmetros.
Você pode usar os métodos set *  sobre os parâmetros para modificar as configurações. Para aplicar as alterações, o método setParameters é chamado , passando os valores modificados conforme mostrado abaixo:

Camera.Parameters parametros = camera.getParameters();
parametros.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(parametros);
Os parâmetros da câmera podem ser usados para especificar a imagem e tamanho de visualização, formato de imagem e taxa de quadros de visualização (FPS).
Usando o preview da Camera:

O acesso a streaming de vídeo da câmera significa que você pode incorporar vídeo ao vivo em seus aplicativos. Alguns dos pontos mais emocionantes e ter nas primeiras aplicações Android utilizado esta funcionalidade como base para aumentar a realidade.
A visualização da câmara pode ser exibida em tempo real sobre uma Surface , como mostrado no trecho de código abaixo:
camera.setPreviewDisplay(MinhaSurface);
camera.startPreview();
[ … ]
camera.stopPreview();
Você também pode atribuir um PreviewCallback a ser acionado para cada quadro de visualização, o que lhe permite manipular ou mostrar cada quadro de pré-visualização individualmente. Chame o método setPreviewCallback sobre o objeto da câmera, passando em uma aplicação PreviewCallback nova e  substituindo o método onPreviewFrame como mostrado aqui:
camera.setPreviewCallback(new PreviewCallback() {

  public void onPreviewFrame(byte[] _data, Camera _camera) {
   // TODO Do something with the preview image.
  }
});

Tirando Snapshots da streaming da câmera:

Para tirar uma foto basta chamar o método takePicture em um objeto Camera, passando em um ShutterCallback e as  implementações do  PictureCallback para codificar as images em RAW ou JPEG. Cada um retorno de imagem receberá um array de bytes que representa a imagem no formato adequado.
private void takePicture() {
  camera.takePicture(shutterCallback, rawCallback, jpegCallback);
}

ShutterCallback shutterCallback = new ShutterCallback() {
  public void onShutter() {
    // TODO Do something when the shutter closes.
  }
};

PictureCallback rawCallback = new PictureCallback() {
  public void onPictureTaken(byte[] _data, Camera _camera) {
    // TODO Do something with the image RAW data.
  }
};

PictureCallback jpegCallback = new PictureCallback() {
  public void onPictureTaken(byte[] _data, Camera _camera) {
    // TODO Do something with the image JPEG data.
  }
};

Fontes : capitulo 10: Accessing Android Hardware do livro Professional Android Application Development de Reto Meier.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s