Настройка зоны непрерывной фокусировки в RNCamera - PullRequest
0 голосов
/ 16 ноября 2018

Я работаю над приложением React Native для камеры, пытаясь отодвинуть основную точку фокусировки камеры от центра, потому что у нас возникли некоторые проблемы с нахождением там стабильной фокусировки. До сих пор касание к фокусировке работало как временное решение, но на самом деле я заинтересован в непрерывной фокусировке на другой области обзора камеры.

Работая на Android, реагируйте на родную версию 0.55.2, с модифицированной версией RNCamera 1.1.2

Для начала я попытался установить его на тот же триггер, что и тап для фокусировки, и сумел сфокусировать его на назначенной области, но только один раз и только на ощупь. Используя эту функцию, вставляется в Camera1.java, вызывается путем переопределения OnTouch в CameraView.java

public void submitFocusAreaRect(final Camera.Area focusArea)
  {
    if (mCameraParameters.getMaxNumFocusAreas() == 0) { return; }

    // Submit focus area to camera
    ArrayList<Camera.Area> focusAreas = new ArrayList<Camera.Area>();
    //focusAreas.add(focusArea);
    focusAreas.add(new Camera.Area(new Rect(0, -1000, 1000, 1000), 1000));

    mCameraParameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
    mCameraParameters.setFocusAreas(focusAreas);
    mCamera.setParameters(mCameraParameters);

    // Start the autofocus operation
    mCamera.autoFocus(new Camera.AutoFocusCallback() {
      @Override
      public void onAutoFocus(boolean success, Camera camera) {
        mCamera.cancelAutoFocus();
      }
    });
  }

Итак, это, по крайней мере, выглядит возможным, но мне очень тяжело, чтобы сделать это непрерывным. Что я пробовал до сих пор:

  • Установка режима фокусировки на FOCUS_MODE_CONTINUOUS_PICTURE или FOCUS_MODE_CONTINUOUS_VIDEO, кажется, блокирует фокус при вызове. Документация создает впечатление, что она должна возобновиться после вызова cancelAutoFocus, но этого, похоже, не происходит?

  • Вставка соответствующих строк в AdjustCameraParameters или setAutoFocusInternal, кажется, не имеет никакого эффекта.

У кого-нибудь есть советы, как сделать фокус непрерывным?

...