gpt4 book ai didi

javascript - 如何打开/关闭 React Native Camera Torch

转载 作者:行者123 更新时间:2023-12-02 22:46:36 24 4
gpt4 key购买 nike

我正在开发一个扫描条形码的 React Native 应用程序。我想让用户通过按下按钮来打开和关闭灯。现在灯一直亮着。 React Native 相机组件可以实现这一点吗?谢谢!

class CameraScreen extends React.Component {
state = {
isCameraReady: false
};

constructor(props) {
super(props);
this.handleCameraReady = this.handleCameraReady.bind(this);
this.state = {
camera: {
type: RNCamera.Constants.Type.back
}
};
}
handleCameraReady() {
this.setState({
isCameraReady: true
});
}

onBarCodeRead = data => {
this.setState({ scanned: true });
const DATA_SKU = data.data.split("*");
const SKU = DATA_SKU[0];
const STK_ID = DATA_SKU[1] !== undefined ? DATA_SKU[1] : "";
this.setState({ showCamera: false });
this.props.navigation.navigate("Home", {
scanDataSku: SKU,
scanDataStkID: STK_ID
});
};

render() {
return (
<SafeAreaView style={styles.container}>
<RNCamera
style={styles.container}
onBarCodeRead={this.onBarCodeRead}
ref={cam => (this.camera = cam)}
cameraProps={{ captureAudio: false }}
flashMode={
this.state.isCameraReady
? RNCamera.Constants.FlashMode.torch
: RNCamera.Constants.FlashMode.off
}
onCameraReady={this.handleCameraReady}
></RNCamera>
<View style={styles.bottomNav}>
<TouchableOpacity
onPress={() => this.props.navigation.navigate("Home")}
style={styles.bottomBtn}
>
<Text style={styles.bottomTxt}>Back</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.bottomBtn}>
<Text style={styles.bottomTxt}>Light</Text>
</TouchableOpacity>
</View>
</SafeAreaView>
);
}
}

最佳答案

是的 - 我做了类似的事情:

toggleTorch()
{
let tstate = this.state.torchon;
if (tstate == RNCamera.Constants.FlashMode.off){
tstate = RNCamera.Constants.FlashMode.torch;
} else {
tstate = RNCamera.Constants.FlashMode.off;
}
this.setState({torchon:tstate})
}

然后将闪光模式设置为适当的状态:

<RNCamera
flashMode={this.state.torchon}
...

这是我定义按钮的方式:

<TouchableOpacity style={styles.toggleTorch}  onPress={() => this.toggleTorch() }>
{ this.state.torchon == RNCamera.Constants.FlashMode.off? (
<Image style={styles.iconbutton} source={require('../images/flash.png')} />
) : (
<Image style={styles.iconbutton} source={require('../images/flash-on.png')} />
)
}
</TouchableOpacity

关于javascript - 如何打开/关闭 React Native Camera Torch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58379513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com