Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更改Camera2 API中seekbar进度的控制\u AE\u曝光\u补偿建议_Android_Seekbar_Android Camera2 - Fatal编程技术网

Android 更改Camera2 API中seekbar进度的控制\u AE\u曝光\u补偿建议

Android 更改Camera2 API中seekbar进度的控制\u AE\u曝光\u补偿建议,android,seekbar,android-camera2,Android,Seekbar,Android Camera2,我目前正在开发Androids Camera 2 API,目前的问题是,我无法设置控制\u AE\u曝光\u补偿 我想在-2到2之间曝光 这是我的密码 public void setExposure(double exposureAdjustment) { Range<Integer> range1 = mCameraCharacteristics.get(CameraCharacteristics.CONTROL_AE_COMPENSATION_RANGE); in

我目前正在开发Androids Camera 2 API,目前的问题是,我无法设置
控制\u AE\u曝光\u补偿

我想在-2到2之间曝光

这是我的密码

public void setExposure(double exposureAdjustment) {
    Range<Integer> range1 = mCameraCharacteristics.get(CameraCharacteristics.CONTROL_AE_COMPENSATION_RANGE);
    int minExposure = range1.getLower();
    int maxExposure = range1.getUpper();

    float newCalculatedValue = 0;
    if (exposureAdjustment >= 0) {
        newCalculatedValue = (float) (minExposure * exposureAdjustment);
    } else {
        newCalculatedValue = (float) (maxExposure * -1 * exposureAdjustment);
    }

    try {
        CaptureRequest captureRequest = mPreviewRequestBuilder.build();
        mPreviewSession.setRepeatingRequest(mPreviewRequest,
                mCaptureCallback, mBackgroundHandler);
        mPreviewRequestBuilder.set(captureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, (int) newCalculatedValue);
        mPreviewSession.capture(captureRequest, mCaptureCallback, mBackgroundHandler);

        Log.v("cascascasc", exposureAdjustment + " : " + newCalculatedValue);

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

您是否可以分享任何例外情况?或其他附加输入?不,没有任何例外。但是我无法直观地检查曝光效果。@ManuelSchmitzberger如果代码工作正常,您可以共享您的Java类文件吗?这应该可以。所以你只需要添加你的
setExposure(…)
和seekbar方法。我应该用你的PreviewFragment替换我的cameraFragment类吗?那么,您的代码是否支持所有设备的相机预览的纵横比??
    exposure_seekbar.setMin(-2);
    exposure_seekbar.setMax(2);
    exposure_seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int i, boolean b) {

            if (b) {
                mCamera2Fragment.setExposure((double)i);
            }
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });