2010-11-22 16 views
8

He intentado varias respuestas que he encontrado en la web, como por ejemplo:Cómo utilizar la cámara frontal frente en el Samsung Galaxy S

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

o

mMediaRecorder.setVideoSource(2); 

Pero no lo hace trabajo. También he establecido permisos en el archivo de manifiesto:

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

¿Me estoy perdiendo algo? He buscado StackOverflow y sé que esto se ha preguntado antes, pero parece que no hay una solución confirmada al respecto, cualquier tipo de ayuda sería apreciada.

Nota: Estoy usando Galaxy S en la plataforma 2.1

Respuesta

12

De todos modos después de algunos ensayos y errores, lo he descubierto cómo hacerlo:

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); 

O, si hay que usarla con 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 

Si necesita tener un tamaño de vista previa más pequeño, puede establecer/reducir su tamaño SurfaceView en su lugar.

2

No existe actualmente una API estándar para las cámaras frontales; tendrá que confiar en la documentación (si la hay) que el fabricante del hardware tenga para usar sus extensiones para acceder a la cámara frontal. Por supuesto, esto solo funcionará en esos dispositivos específicos.

Nota escribir cadenas sin formato como "ID de cámara" suele ser una buena señal de que has vagado por el bosque fuera del SDK oficial. :)

+4

Sí, ya lo sé :). El parámetro "cámara-id" solo funcionará, por supuesto, en Samsung Galaxy S, ya que no forma parte del SDK oficial. Pero desafortunadamente, no he encontrado ninguna otra documentación útil que use la cámara frontal en este modelo. –

+0

@MuhammadAbdullah luego comparta Aquí ... –

0

Creo que este es un buen lugar para agregar algunos detalles que he resuelto.

En caso de que esté utilizando la cámara frontal en modo vertical y el archivo resultante salga cortado en cuadrados con bloques verdes, intente invertir el ancho y alto (vista previa y grabador) y ajuste el codificador a H263 ...

Esto resolvió el problema en mi Samsung Galaxy S en 2.3.3 + ...

Cuestiones relacionadas