Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在React本机相机中使用focusDepth时图像失焦_Android_React Native_React Native Camera - Fatal编程技术网

Android 在React本机相机中使用focusDepth时图像失焦

Android 在React本机相机中使用focusDepth时图像失焦,android,react-native,react-native-camera,Android,React Native,React Native Camera,我一直在尝试使用focusDepth属性手动更改相机的焦距。但是,在拍摄图像时,相机预览会发生变化并失去焦点,从而导致图像与拍摄前的预览不同。我使用的是Redmi Note 8 Pro。我注意到,当设置自动对焦时,这个问题消失了,因此它似乎特定于手动对焦属性。有人知道我如何解决这个问题吗 非常感谢你的帮助 以下是我的代码摘录,其中包含相关的状态定义和RNCamera模块: const [focusValue, setFocusValue] = useState(1); const [zoomVa

我一直在尝试使用focusDepth属性手动更改相机的焦距。但是,在拍摄图像时,相机预览会发生变化并失去焦点,从而导致图像与拍摄前的预览不同。我使用的是Redmi Note 8 Pro。我注意到,当设置自动对焦时,这个问题消失了,因此它似乎特定于手动对焦属性。有人知道我如何解决这个问题吗

非常感谢你的帮助

以下是我的代码摘录,其中包含相关的状态定义和RNCamera模块:

const [focusValue, setFocusValue] = useState(1);
const [zoomValue, setZoomValue] = useState(0);
<RNCamera
ref={(ref) => {
setCameraRef(ref);
}}
ratio="9:16"
style={styles.preview}
captureAudio={false}
focusDepth={focusValue}
zoom={zoomValue}
autoFocus={RNCamera.Constants.AutoFocus.off}
useCamera2Api={true}
type={RNCamera.Constants.Type.back}
flashMode={RNCamera.Constants.FlashMode.off}
whiteBalance={RNCamera.Constants.WhiteBalance.shadow}
androidCameraPermissionOptions={{
title: 'Permission to use camera',
message: 'We need your permission to use your camera',
buttonPositive: 'Ok',
buttonNegative: 'Cancel',
}}>

<TouchableOpacity 
onPress={async() => {
if (cameraRef) {
  const options = { quality: 1, base64: true };
  const data = await cameraRef.takePictureAsync(options);
  navigation.navigate('Image',{'photo':data.uri});
      }),
    });
}
      }}

    style={styles.capture}>
    <Text style={{ fontSize: 14, color:'white', fontWeight:'bold'}}> TAKE PICTURE </Text>
</TouchableOpacity>  
    </View>
    
    <View style={{alignSelf:'stretch'}}>
      <Slider
minimumValue={0}
maximumValue={1}
allowTouchTrack={true}
animateTransitions={true}
minimumTrackTintColor="white"
maximumTrackTintColor="#15a2ea"
thumbTintColor="#bae1f5"
trackStyle={{height:2}}
style={{marginLeft:20, marginRight:20}}
thumbStyle={{width:20, height:20}}
value={0}
onValueChange={(sliderValue) => setFocusValue(1-sliderValue)}
/>
<Slider
minimumValue={0}
maximumValue={1}
allowTouchTrack={true}
animateTransitions={true}
minimumTrackTintColor="white"
maximumTrackTintColor="#15a2ea"
thumbTintColor="#bae1f5"
trackStyle={{height:2}}
style={{marginLeft:20, marginRight:20}}
thumbStyle={{width:20, height:20}}
value={0}
onValueChange={(zoomSliderValue) => setZoomValue(zoomSliderValue)}
/>
</View>
</RNCamera>
const[focusValue,setFocusValue]=useState(1);
const[zoomValue,setZoomValue]=useState(0);
{
setCameraRef(参考);
}}
比率=“9:16”
style={style.preview}
captureAudio={false}
focusDepth={focusValue}
zoom={zoomValue}
自动对焦={RNCamera.Constants.autoFocus.off}
useCamera2Api={true}
类型={RNCamera.Constants.type.back}
flashMode={RNCamera.Constants.flashMode.off}
白平衡={RNCamera.Constants.whiteBalance.shadow}
androidCameraPermissionOptions={{
标题:“使用相机的权限”,
信息:“我们需要您的许可才能使用您的相机”,
buttonPositive:“Ok”,
按钮否定:“取消”,
}}>
{
如果(摄影师){
const options={quality:1,base64:true};
const data=wait cameraRef.takePictureAsync(选项);
navigation.navigate('Image',{'photo':data.uri});
}),
});
}
}}
style={style.capture}>
拍照
setFocusValue(1-sliderValue)}
/>
setZoomValue(zoomSliderValue)}
/>