Pergunta

Eu tentei várias respostas que encontrei na web, como:

Camera.Parameters parameters = mCamera.getParameters();
parameters.set("camera-id", 2);
mCamera.setParameters(parameters);

ou

mMediaRecorder.setVideoSource(2);

Mas não funciona. Eu também defini permissões no arquivo de manifesto:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

Estou perdendo alguma coisa? Eu pesquisei StackOverflow e sei que isso já foi perguntado antes, mas parece não haver uma solução confirmada nisso, qualquer tipo de ajuda seria apreciada.

Nota: Estou usando o Galaxy S na plataforma 2.1

Foi útil?

Solução

De qualquer forma, depois de algumas tentativas e erros, descobri como fazê -lo:

Camera.Parameters parameters = mCamera.getParameters();
parameters.set("camera-id", 2);
parameters.setPreviewSize(640, 480); // or (800,480) this is supported front camera preview size @ Samsung Galaxy S
mCamera.setParameters(parameters);

Ou, se você precisar usá -lo com mediarecorder:

MediaRecorder mMediaRecorder = new MediaRecorder();
Camera mCamera = Camere.open();
Camera.Parameters parameters = mCamera.getParameters();
parameters.set("camera-id", 2);
parameters.setPreviewSize(640, 480); // or (800,480)
mCamera.setParameters(parameters);
mCamera.unlock(); // unlock, to give other process to access it otherwise it can't be used later
mMediaRecorder.setCamera(mCamera);
// continue with mMediaRecorder standard routines here

Se você precisar ter um tamanho de visualização menor, poderá definir/diminuir o tamanho da SurfaceView.

Outras dicas

Atualmente, não há uma API padrão para câmeras frontais; Você precisará confiar em qualquer documentação (se houver) que o fabricante de hardware tenha para usar suas extensões para acessar a câmera frontal. É claro que isso funcionará apenas nesses dispositivos específicos.

Nota escrever cordas cruas como "camera-id" geralmente é um bom sinal de que você entrou na floresta fora do SDK oficial. :)

Eu acho que este é um lugar tão bom quanto qualquer outro para adicionar alguns detalhes que eu trabalhei.

Caso você esteja usando a câmera frontal no modo retrato e o arquivo resultante será lançado em quadrados com blocos verdes lançados na tentativa invertendo a largura e a altura (visualização e gravador) e definindo o codificador para H263 ...

Isso resolveu o problema no meu Samsung Galaxy s em 2.3.3+...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top