如何快速拍摄本机相机?

时间:2019-01-21 07:12:12

标签: reactjs react-native react-native-camera

  takePicture = async function() {
    if (this.camera) {
       const options = { quality: 0.5, base64: true,  }; 
       const data = await this.camera.takePictureAsync(options);         
        this.setState({path: data.uri})
    }   
  }

一旦我调用takePicture功能来捕获图像,相机仍会继续移动并且不会暂停。我想让相机暂停然后再显示图像。

这里需要处理Promise吗?如果是,我不知道在哪里以及如何做。

我也尝试过使用pauseAfterCapture:true,但是仍然需要1或2秒来捕获图像。

我知道这是一个老问题,但是尚无解决方案可以帮助我。请帮忙。

1 个答案:

答案 0 :(得分:0)

我还发现可用的相机组件非常慢,这就是为什么我创建react-native-fast-camera并将其开源以供公众使用的原因。它是非常可定制的,并且可以通过响应本机组件完全控制。

注意:当前Android版本仍在开发中。

这里是一个例子:

import FastCamera, { Methods } from 'react-native-fast-camera';


<FastCamera style={{ height: cameraHeight, width: cameraWidth }}
    onSaveSuccess={imageUrl => {
      console.log("onSaveSuccess: ", imageUrl);
    }}
    onGalleryImage={imageUrl => {
      console.log("onGalleryImage: ", imageUrl);
    }}
    onFlashToggle={isflashOn => {
      console.log('flash info: ', isflashOn);
    }}
  >
    {/* here render your buttons to control the camera component */}
    <Button 
      title="capture picture"
      onPress={()=> Methods.takePicture();}
    />
  </FastCamera>

这是屏幕截图:

enter image description here