Android JAVA 问题如何同时打开相机和手机手电筒?

问题描述 投票:0回答:0

目前我正在制作一个应用程序,需要同时打开手机摄像头和手机手电筒。

但是我遇到了这个问题,其中 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。

有没有办法同时显示相机和手电筒?

................................

java android camera flashlight android-hardware
© www.soinside.com 2019 - 2024. All rights reserved.