Какую реализацию вы используете
RCTCamera
Шаги для воспроизведения
На Android, имейте представление RCTCamera с опцией увеличения, установленной для чтения из this.state.zoom, затем выполните
this.setState({
zoom: [any level],
type: [front type if current camera is back camera, back type if current camera is front camera],
});
Ожидаемое поведение
Предполагается, что другая камера должна открываться с установленным масштабированием независимо от того, какая опора увеличения.
Фактическое поведение
Другая камера открывается без установленного увеличения.
Работает нормально, когда компонент впервые монтируется и тому подобное, но не после. Я столкнулся с двумя исключениями, когда экспериментировал с разными подходами:
В некоторых случаях выдается исключение, потому что setZoom()
вызов пытается использовать камеру после того, как он был освобожден.
При попытке вызвать setZoom
напрямую через React Native одновременно с настройкой состояния или в качестве параметра обратного вызова в setState
, он генерирует исключение, поскольку ему не удалось подключиться к службе камеры. Прямой вызов setZoom
через React Native, когда не переключаются типы камер, работает нормально.
Текущая и ближайшая к работе вещь, по крайней мере, поскольку она не выдает исключение напрямую, является приведенным выше примером, который выглядит следующим образом с некоторыми записями:
05-02 15: 33: 30.482 1953-1953 / com.appname D / zoom: CameraView setZoom вызывается, настройка на 30
05-02 15: 33: 30.482 1953-1953 / com.appname D / zoom: RCTCamera setZoom вызывается, настройка cameraType от 1 до 30
05-02 15: 33: 30.672 345-11616 /? W / QCameraParameters: [PARM_DBG] zoom_level = 30
05-02 15: 33: 31.112 345-6416 /? W / QCameraParameters: [PARM_DBG] zoom_level = 0
05-02 15: 33: 35.572 1953-1953 / com.appname D / zoom: CameraView setZoom вызывается, настройка на 20
05-02 15: 33: 35.572 1953-1953 / com.appname D / zoom: RCTCamera setZoom вызывается, настройка cameraType 2 до 20
05-02 15: 33: 35.912 345-12088 /? W / QCameraParameters: [PARM_DBG] zoom_level = 20
05-02 15: 33: 36.312 345-31706 /? W / QCameraParameters: [PARM_DBG] zoom_level = 0
Окружающая среда
- Node.js версия : 9,3
- React Native version : 0.55.2
- Платформа React Native + версия платформы : Android 6.0.1, API 23
реагировать-нативную-камеру
Версия : основная ветвь, но части RCTCamera являются модифицированной версией 0.12, так как RCTCamera сохраняет изображения намного быстрее, чем RNCamera, и имеет масштабирование пинч.