Я работаю над приложением 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, кажется, не имеет никакого эффекта.
У кого-нибудь есть советы, как сделать фокус непрерывным?