您正在使用哪种实现
RCT相机
重现步骤
在 Android 上,有一个 RCTCamera 视图,其 zoom 属性设置为从 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
- 反应本机版本:0.55.2
- React Native 平台+平台版本:Android 6.0.1,API 23
反应原生相机
版本:Master 分支,但 RCTCamera 部分是 0.12 的修改版本,因为 RCTCamera 保存图片的速度比 RNCamera 快得多,并且具有缩放缩放功能。