【问题标题】:React native access front cameraReact 原生访问前置摄像头
【发布时间】:2019-01-21 11:46:19
【问题描述】:

我正在使用“react-native camera”库来访问相机。所以这是我的代码 .

 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
  }
});

在这里,我可以访问后置摄像头,每当我点击拍照时,它都会捕捉图像并立即显示。但我需要在这里做两处改变。

  1. 使用此代码,正在访问后置摄像头,但我想访问前置摄像头。

  2. 另外,我捕获的图像不应立即显示。我想要一个按钮,每当我单击该按钮时,它都会导航到不同的页面并在那里显示所有图像。

反应原生有可能吗?如果是,请建议我在此代码中需要进行的更改

【问题讨论】:

    标签: react-native


    【解决方案1】:

    要具体回答您的第二个问题,您有两种选择。

    A) 拍摄照片后,将其作为base64 uri 存储到您的状态或redux,然后在需要时将base64 uri 显示为图像。

    B) 使用包react-native-fs 访问文件系统,将拍摄的照片作为缓存存储在iOS中,并在需要时检索。

    根据处理它的个人经验,我会推荐选项A

    【讨论】:

      【解决方案2】:

      要将摄像头切换到后置摄像头到前置摄像头,Camera组件中有一个名为mirrorMode的道具,如果为真则显示前置摄像头,否则将默认为后置摄像头模式:

          <Camera
            ...
            mirrorImage={this.state.mirrorMode}
          >
      

      您可以创建一个状态和一个按钮来更改状态以在这 2 个摄像头之间切换。

      【讨论】:

      • 我忘了说我过去试过第二个没有结果。在 iOS 中很难找到文件管理器来尝试执行此操作。在我看来,只有在 Android 中才有可能,但我不知道会怎样。对不起:(
      • 太棒了!将其保存为以后的参考。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多