android - 在 QRcodeScanner React native 中打开/关闭手电筒 - 替代解决方案
问题描述
在 QRcodeScanner React native 中打开/关闭手电筒
我已按照上面的教程进行操作,但仍然无法正常工作。按下触摸不透明度时,它不会打开闪光灯。
问题与发送问题相同,但他的解决方案对我不起作用,不知道为什么。
更新 我找到了解决方案,如果其他帖子不适合您,您应该逐步尝试此操作。可能它会在未来的 PR 中合并到 react-native-qrcode-scanner 中,但现在应该可以解决。
import QRCodeScanner from "react-native-qrcode-scanner";
import { RNCamera } from "react-native-camera"
QRCodeScanner 上的道具:
cameraStyle={{ height: SCREEN_HEIGHT }}
cameraProps{{ flashMode: this.state.isFlashOn ? RNCamera.Constants.FlashMode.torch : RNCamera.Constants.FlashMode.off, captureAudio: false }}
customerMarker={this.renderCustomMarker} />
按钮:
<TouchOpacity activeOpacity={1} onPress={() => {
this.setState({isFlashOn: !this.state.isFlashOn});
this.scanner.reactivate();
}}>
解决方案
我的解决方案是: https ://github.com/moaazsidat/react-native-qrcode-scanner/issues/117
感谢@Albert0405!
这是@Albert0405 对我的问题的修复:
1)到node_modules找到react-native-qrcode-scanner文件夹并打开index.js
2)找到_renderCamera(),然后在Camera组件上,改变这个
<Camera
type={cameraType}
flashMode={this.props.flashMode} // Just add this line
style={[styles.camera, this.props.cameraStyle]}
onBarCodeRead={this._handleBarCodeRead.bind(this)}
>
{this._renderCameraMarker()}
</Camera>
3)最后一步是在你的项目中使用 Flash
import QRCodeScanner from "react-native-qrcode-scanner";
import { RNCamera } from "react-native-camera";
<QRCodeScanner
flashMode={this.state.isFlashOn ? RNCamera.Constants.FlashMode.torch : RNCamera.Constants.FlashMode.off}
/>
cameraProps 对我不起作用。所以我用上面的代码 flashMode 替换了它。
RNCamera.Constants.FlashMode.torch - 打开手电筒 RNCamera.Constants.FlashMode.off - 关闭手电筒 flashMode是在 RNCamera 上设置 Flash 的字段
这一步一步做的是启用从 react-native-qrcode-scanner 设置的flashMode 。
参考:https ://github.com/react-native-community/react-native-camera/blob/master/docs/RNCamera.md
更新:react-native-qrcode-scanner 版本 1.2.2+ 已实施此更改。我的 PR 已合并并可供所有用户使用,要了解如何使用,请阅读 Read Me for git repo。
推荐阅读
- flutter - Dart 是通过引用传递的吗?
- c - 带有 for 循环的 if else 选择语句的大 O 表示法
- android - 如何使我自己的注释处理器增量?
- visual-studio - 如何更好地诊断链接器错误 LNK2022?
- android - TextInputEditText,如何将提示对齐到上边距
- unity3d - 启用动画器时,运行时缺少游戏对象精灵
- bash - 手动将字符串列表传递给管道
- javascript - 尝试播放 youtube 视频 javascript 时“.playVideo 不是函数”
- node.js - TypeScript 在 Express 中添加自定义请求标头
- c# - 当用户在 DataGridView 中编辑单元格时,BindingSource 不更新(简单的损坏示例)