0

前面カメラを使用しようとしていますが、代わりに背面カメラが表示されます。どうしたの?

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {
   // TODO Auto-generated method stub
   if (!previewing) 
   {
   camera = Camera.open();
   if (camera != null) 
   {
   try 
   {
       camera.setDisplayOrientation(90);
       camera.setPreviewDisplay(surfaceholder);
       Camera.Parameters p = camera.getParameters();
       p.set("camera_id",2);
       camera.setParameters(p);
       camera.startPreview();
       previewing = true;
     }
     catch (IOException e)
     {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
   }
   }
}
4

2 に答える 2

2

API レベル 9 以降Camera.open(int)、目的のカメラの番号をパラメーターとして指定できるメソッドがあります。

于 2013-06-08T21:26:35.703 に答える
2

以下のコードを使用して、前面カメラを取得できます

private Camera openFrontFacingCameraGingerbread() {
    int cameraCount = 0;
    Camera cam = null;
    Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
    cameraCount = Camera.getNumberOfCameras();
    for (int camIdx = 0; camIdx < cameraCount; camIdx++) {
        Camera.getCameraInfo(camIdx, cameraInfo);
        if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
            try {
                cam = Camera.open(camIdx);
            } catch (RuntimeException e) {
                Log.e(TAG, "Camera failed to open: " + e.getLocalizedMessage());
            }
        }
    }

    return cam;
}
于 2013-06-08T21:37:53.443 に答える