【发布时间】:2018-05-07 14:26:38
【问题描述】:
您使用的是哪种实现方式
遥控相机
重现步骤
在 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() 调用在释放后尝试使用相机。
当尝试在设置状态的同时直接通过React Native调用setZoom,或者作为setState中的回调参数,由于连接摄像头服务失败而抛出异常。在不切换相机类型的情况下直接通过 React Native 调用setZoom 可以正常工作。
当前和最接近工作的事情,至少在它不直接抛出异常的情况下,是上面的示例,它带有一些日志记录:
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 版本:0.55.2
- React Native 平台 + 平台版本:Android 6.0.1,API 23
react-native-camera
版本:Master分支,但是RCCTamera部分是0.12的修改版,因为RCCTamera保存图片的速度比RNCamera快得多,并且有捏缩放功能。
【问题讨论】:
标签: android react-native react-native-camera