我正在使用“本机照相机”库来访问照相机。所以这是我的代码 。
import React, { Component } from "react";
import {
AppRegistry,
Dimensions,
StyleSheet,
Text,
TouchableHighlight,
View
} from "react-native";
import Camera from "react-native-camera";
import { RNCamera, FaceDetector } from "react-native-camera";
export default class App extends Component<Props> {
render() {
return (
<View style={styles.container}>
<Camera
ref={cam => {
this.camera = cam;
}}
style={styles.preview}
aspect={Camera.constants.Aspect.fill}
>
<Text style={styles.capture} onPress=
{this.takePicture.bind(this)}>
take photo
</Text>
</Camera>
</View>
);
}
takePicture() {
const options = {};
//options.location = ...
this.camera
.capture({ metadata: options })
.then(data => console.log(data))
.catch(err => console.error(err));
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: "row"
},
preview: {
flex: 1,
justifyContent: "flex-end",
alignItems: "center"
},
capture: {
flex: 0,
backgroundColor: "#fff",
borderRadius: 5,
color: "#000",
padding: 10,
margin: 40
}
});
在这里,我可以使用后置摄像头,每当我单击“拍照”时,它都会捕获图像并立即显示出来。但是我需要在这里进行两个更改。
使用此代码,可以访问后置摄像头,但我想访问前置摄像头。
我捕获的图像也不应立即显示。我想要一个按钮,每当我单击该按钮时,它就会导航到不同的页面并在那里显示所有图像。
可以在本机反应吗?如果是,那么请向我建议我需要在此代码中进行的更改
答案 0 :(得分:1)
要将相机从后置摄像头切换为前置摄像头,请在“摄像头”组件中有一个名为mirrorMode
的道具,如果为true,它将显示前置摄像头,否则,它将是默认模式,即前置摄像头:
<Camera
...
mirrorImage={this.state.mirrorMode}
>
您可以创建一个状态和一个按钮,以更改状态以在这两个摄像机之间切换。
答案 1 :(得分:1)
要专门回答第二个问题,您有两个选择。
A)拍照后,将其作为base64 uri
存储到您的州或redux
中,然后在需要时将base64 uri显示为图像。
B)利用软件包react-native-fs访问文件系统,将拍摄的照片作为缓存存储在iOS中,并在需要时进行检索。
根据个人经验,我建议使用选项A