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()
调用会在释放后尝试使用相机。
尝试在设置状态的同时直接通过React Native调用setZoom
,或者作为setState
中的回调参数时,它会抛出异常,因为它无法连接到摄像头服务。
当前和最接近工作的事情,至少在它没有直接抛出异常的范围内,就是上面的例子,它带有一些日志记录:
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
版本:主分支,但RCTCamera部分是0.12的修改版本,因为RCTCamera比RNCamera更快地保存图片,并且有缩放缩放。
答案 0 :(得分:0)
解决了它。对于遇到相同或类似非常具体问题的任何人:
切换相机类型时,相机参数实际设置两次。一旦作为setZoom()的一部分,它按预期工作,并再次作为adjustPreviewLayout()的一部分,它将setZoom()中的参数集清零。
由于这两个函数都在RTCamera.java中,我通过使setZoom()将变焦值存储在变量中(除了它已经在做的事情之外)解决了这个问题,然后让adjustPreviewLayout()设置缩放参数根据那个变量。