createDefaultRequest - 在createCaptureRequest()上指定的templateId无效

时间:2017-04-11 22:44:00

标签: java android

我希望从Android配置 camera2 API 以拍摄具有最高帧速率的照片,因此我尝试拍摄照片而不进行处理。

进行研究我发现最好的方法是使用参数 TEMPLATE_MANUAL 创建捕获请求。

创建CaptureRequest.Builder时:

final CaptureRequest.Builder capturebuilder = 
cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_MANUAL);

我有这个错误: createDefaultRequest - 指定的templateId无效

'cameraDevice'来自:

private CameraDevice.StateCallback stateCallback = new CameraDevice.StateCallback() {
        @Override
        public void onOpened(CameraDevice camera) {
            cameraDevice = camera;
            startCamera();
        }
        @Override
        public void onDisconnected(CameraDevice camera) {
        }
        @Override
        public void onError(CameraDevice camera, int error) {
        }
    };

此处调用'stateCallBack'

public  void openCamera()
    {
        CameraManager manager=(CameraManager)getSystemService(Context.CAMERA_SERVICE);
        try
        {
            String camerId=manager.getCameraIdList()[0];
            CameraCharacteristics characteristics=manager.getCameraCharacteristics(camerId);
            StreamConfigurationMap map=characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
            previewsize=map.getOutputSizes(SurfaceTexture.class)[0];
            if(ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {

                manager.openCamera(camerId,stateCallback,null);
            }

        }catch (Exception e)
        {
            e.printStackTrace();
        }
    }

0 个答案:

没有答案