public class CameraUtils {
public static final int CAMERA_FACING_BACK = 0;
public static final int CAMERA_FACING_FRONT = 1;
//查找前置摄像头Id
public static List<Integer> getFontCamera() {
int numberOfCameras = Camera.getNumberOfCameras();
List<Integer> fontNumList = new ArrayList<Integer>();
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
for (int i = 0; i < numberOfCameras; i++) {
Camera.getCameraInfo(i, cameraInfo);
if (cameraInfo.facing == CAMERA_FACING_FRONT) {
fontNumList.add(i);
}
}
return fontNumList;
}
//查找后摄像头Id
public static List<Integer> getBackCamera() {
int numberOfCameras = Camera.getNumberOfCameras();
List<Integer> fontNumList = new ArrayList<Integer>();
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
for (int i = 0; i < numberOfCameras; i++) {
Camera.getCameraInfo(i, cameraInfo);
if (cameraInfo.facing == CAMERA_FACING_BACK) {
fontNumList.add(i);
}
}
return fontNumList;
}
}
我所遇到的问题:有些后置摄像头是双摄像头的,只能获取得到一个摄像头。
主摄id为1,副摄一般id为2,副摄对App不可见,只能在FrameWork层做处理。