所以Android最近出现了,它现在有一个内置的摄像头功能,叫做setTorchMode。我很好奇这些参数是如何工作的(字符串cameraID,布尔值true/false)。很明显,布尔值决定了灯是开着还是关着,但是如何得到cameraID呢?我知道有一个名为getCameraIDList的方法,但是它返回一个I数组,而不仅仅是一个。你怎么知道清单上哪一个要用?
发布于 2015-11-02 21:06:55
您应该使用CameraManager "getCameraIdList“函数,它将检索一个字符串列表,其中每个字符串代表一个活动摄像机。
发布于 2018-03-05 09:31:16
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
try {
for (String camID : mCameraManager.getCameraIdList()) {
CameraCharacteristics cameraCharacteristics = mCameraManager.getCameraCharacteristics(camID);
int lensFacing = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING);
if (lensFacing == CameraCharacteristics.LENS_FACING_FRONT && cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) {
mCameraId = camID;
break;
} else if (lensFacing == CameraCharacteristics.LENS_FACING_BACK && cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) {
mCameraId = camID;
}
}
if (mCameraId != null) {
mCameraManager.setTorchMode(mCameraId, true);
}
} catch (CameraAccessException e) {
e.printStackTrace();
}
}如果可用,mCameraId将打开前摄像头闪光灯,如果可用,则打开相机闪光灯。如果没有可用的闪存,那么mCameraId将为null,而setTorchMode将不会被调用。
https://stackoverflow.com/questions/32304341
复制相似问题