android使用Camera调用系统原生的摄像头(前置与后置)

1.Camera类

Camera是应用层软件直接使用的类,包含了启动,预览,拍摄以及关闭摄像头等操作的接口。
Camera mCamera = null;

 int numberOfCameras = Camera.getNumberOfCameras();// 获取摄像头个数
         //遍历摄像头信息
        for (int cameraId = 0; cameraId < numberOfCameras; cameraId++) {
            Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
            Camera.getCameraInfo(cameraId, cameraInfo);
            if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {//前置摄像头
                mCamera = Camera.open(cameraId);//打开摄像头
            }
        }

1.Camera.CameraInfo.CAMERA_FACING_FRONT :前置摄像头
2.Camera.CameraInfo.CAMERA_FACING_BACK:后置摄像头

2.方法

  • Camera open():打开Camera,返回一个Camera实例。
  • Camera open(int cameraId):根据cameraId打开一个指定的Camera,返回一个Camera实例。
  • void release():释放资源
  • int getNumberOfCameras():获取当前设备支持的Camera硬件个数。
  • Parameters getParameters():获取Camera的各项参数设置类。
  • void setParameters(Camera.Parameters params):通过params把Camera的各项参数写入到Camera中。
  • void setDisplayOrientation(int degrees):摄像预览的旋转度。
  • void setPreviewDisplay(SurfaceHolder holder):设置Camera预览的SurfaceHolder。
  • void starPreview():开始Camera的预览。
  • void stopPreview():停止Camera的预览
  • void autoFocus(Camera.AutoFocusCallback cb):自动对焦。
  • void takePicture(Camera.ShutterCallback shutter,Camera.PictureCallback raw,Camera.PictureCallback jpeg):拍照。(参数:拍照前的一些设置(如:拍摄快门声);未经处理的yuv数据;JPEG图像数据的回调)
  • void lock():锁定Camera硬件,使其他应用无法访问。
  • void unlock():解锁Camera硬件,使其他应用可以访问。
 /**
   * 关闭相机,释放资源。
   */
  private void closeCamera() {
      if (mCamera != null) {
          mCamera.release();
          mCamera = null;
      }
  }	

你可能感兴趣的:(Android)