目前我正在制作一个应用程序,需要同时打开手机摄像头和手机手电筒。
但是我遇到了这个问题,其中 1 覆盖了另一个。可能是因为他们都使用相同的相机参考。
拜托,有谁知道我该怎么办?这是我的功能:
private void startCamera() {
CameraManager manager = (CameraManager) getSystemService(CAMERA_SERVICE);
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
return;
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
String pickedCamera = getCamera(manager);
manager.setTorchMode(pickedCamera, true);
manager.openCamera(pickedCamera, _cameraStateCallback, null);
final int previewHeight = _previewSize.getHeight();
final int previewWidth = _previewSize.getWidth();
_imagePreviewReader = ImageReader.newInstance(previewWidth, previewHeight,
PixelFormat.RGBA_8888, MAX_IMAGES);
_conversionScript = new YuvToRgb(_renderScript, _previewSize, CONVERSION_FRAME_RATE);
_conversionScript.setOutputSurface(_imagePreviewReader.getSurface());
_previewSurface = _conversionScript.getInputSurface();
}
} catch (CameraAccessException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
}
}
现在我有另一个函数可以获取相机“getCamera(manager)”,所有代码似乎都可以正常工作,因为当我运行该应用程序时,手电筒会瞬间打开。之后显示相机。 见 manager.setTorchMode 和 manager.openCamera.
我正在使用 camera2 API。
有没有办法同时显示相机和手电筒?
................................