Como usar a câmera frontal na Samsung Galaxy S
-
27-09-2019 - |
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
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+...