public void openCamera(boolean facingFront) {
synchronized (this) {
int facing=facingFront? Camera.CameraInfo.CAMERA_FACING_FRONT:Camera.CameraInfo.CAMERA_FACING_BACK;
currentCameraId=getCameraIdWithFacing(facing);
camera = Camera.open(currentCameraId);
camera.setPreviewCallbackWithBuffer(this);
initRotateDegree(currentCameraId);
if (camera != null) {
mParams = camera.getParameters();
List<Camera.Size> supportedPictureSizesList=mParams.getSupportedPictureSizes();
List<Camera.Size> supportedVideoSizesList=mParams.getSupportedVideoSizes();
List<Camera.Size> supportedPreviewSizesList=mParams.getSupportedPreviewSizes();
Logger.logCameraSizes(supportedPictureSizesList);
Logger.logCameraSizes(supportedVideoSizesList);
Logger.logCameraSizes(supportedPreviewSizesList);
previewSize=choosePreferredSize(supportedPreviewSizesList,preferredRatio);
Camera.Size photoSize=choosePreferredSize(supportedPictureSizesList,preferredRatio);
frameHeight=previewSize.width;
frameWidth=previewSize.height;
Log.d(TAG, "openCamera: choose preview size"+previewSize.height+"x"+previewSize.width);
mParams.setPreviewSize(frameHeight,frameWidth);
mParams.setPictureSize(photoSize.width,photoSize.height);
Log.d(TAG, "openCamera: choose photo size"+photoSize.height+"x"+photoSize.width);
//mParams.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
int size = frameWidth*frameHeight;
size = size * ImageFormat.getBitsPerPixel(mParams.getPreviewFormat()) / 8;
if (mBuffer==null || mBuffer.length!=size)
mBuffer = new byte[size];
mFrameChain[0].init(size);
mFrameChain[1].init(size);
camera.addCallbackBuffer(mBuffer);
camera.setParameters(mParams);
cameraOpened=true;
}
}
}
CameraEngine.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:Fatigue-Detection
作者:
评论列表
文章目录