Cuillère Posté(e) 1 mars 2011 Share Posté(e) 1 mars 2011 Bonjour à tous, j'ai un petit problème lorsque j'essaye d'utiliser la caméra : ça marche avec un émulateur API8, mais pas sur un avec la version 2.3.1 d'android. J'ai aussi testé sur un téléphone (HTC Desire) et ça plante : dans le log cat j'ai "Fail to connect to camera service" sur la ligne "Camera.open();" J'ai mis la permission dans le manifest, et déjà regardé sur le net, je n'ai rien trouvé, si quelqu'un à une solution, voilà le code : public class Preview extends SurfaceView implements SurfaceHolder.Callback{ SurfaceHolder mHolder; Camera mCamera; public Preview(Context context, AttributeSet att) { super(context, att); // Install a SurfaceHolder.Callback so we get notified when the // underlying surface is created and destroyed. mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public Preview(Context context) { super(context); // Install a SurfaceHolder.Callback so we get notified when the // underlying surface is created and destroyed. mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public Camera getCamera(){ return mCamera; } public void surfaceCreated(SurfaceHolder holder) { // The Surface has been created, acquire the camera and tell it where // to draw. mCamera = Camera.open(); try { mCamera.setPreviewDisplay(holder); } catch (IOException exception) { mCamera.release(); mCamera = null; // TODO: add more exception handling logic here } } public void surfaceDestroyed(SurfaceHolder holder) { // Surface will be destroyed when we return, so stop the preview. // Because the CameraDevice object is not a shared resource, it's very // important to release it when the activity is paused. mCamera.stopPreview(); mCamera.release(); mCamera = null; } public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { // Now that the size is known, set up the camera parameters and begin // the preview. Camera.Parameters parameters = mCamera.getParameters(); parameters.setPreviewSize(h, w); mCamera.setParameters(parameters); mCamera.startPreview(); } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cuillère Posté(e) 2 mars 2011 Auteur Share Posté(e) 2 mars 2011 Résolu : j'utilise l'application appareil photo grâce à un intent : public void onCameraClick(){ Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.