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