2010-11-22 26 views
8

J'ai essayé plusieurs réponses que j'ai trouvé sur le Web, tels que:Comment utiliser l'appareil photo face à l'avant sur Samsung Galaxy S

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

ou

mMediaRecorder.setVideoSource(2); 

Mais il ne travail. J'ai également défini des autorisations sur le fichier manifeste:

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

Est-ce que je rate quelque chose? J'ai cherché StackOverflow et je sais que cela a déjà été demandé, mais il semble qu'il n'y ait pas de solution confirmée à ce sujet, tout type d'aide serait apprécié.

Note: J'utilise Galaxy S sur la plate-forme 2.1

Répondre

12

Quoi qu'il en soit, après quelques essais et erreurs, j'ai tout compris comment le faire:

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, si vous avez besoin de l'utiliser avec 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 vous Si vous avez besoin d'une taille d'aperçu plus petite, vous pouvez définir/réduire votre taille SurfaceView à la place.

2

Il n'y a pas une API standard pour les caméras face à la route; vous devrez vous fier à toute documentation (le cas échéant) que le fabricant du matériel a pour utiliser ses extensions pour accéder à la caméra frontale. Cela ne fonctionnera bien sûr que sur ces appareils spécifiques. Remarque écrire des chaînes brutes comme "camera-id" est souvent un bon signe que vous avez erré dans les bois en dehors du SDK officiel. :)

+4

Oui, je le sais déjà :). Le paramètre "camera-id" ne fonctionnera bien sûr dans Samsung Galaxy S car il ne fait pas partie du SDK officiel. Mais malheureusement, je n'ai trouvé aucune autre documentation utile en utilisant la caméra frontale sur ce modèle. –

+0

@MuhammadAbdullah puis partager ici ... –

0

Je pense que c'est le meilleur endroit pour ajouter quelques détails. Si vous utilisez la caméra frontale en mode portrait et que le fichier résultant est découpé en carrés avec des blocs verts lancés, essayez d'inverser la largeur et la hauteur (prévisualisation et enregistreur) et réglez l'encodeur sur H263. ...

Cela a résolu le problème sur mon Samsung Galaxy S sur 2.3.3 + ...