Home » Android » android – Delay on the capture of an image – React Native Camera / Expo Camera

android – Delay on the capture of an image – React Native Camera / Expo Camera

Posted by: admin May 14, 2020 Leave a comment

Questions:

I am trying to realize the same functionnality as in Facebook or Instagram:
Preview the image taken by the camera instantly

At this point, my taken is correctly taken when this function is called :

takePicture = async function() {
   if (this.camera && this.state.isConnected === true) {
      const options = { quality: 0, base64: false };
      const data = await this.camera.takePictureAsync(options);
      this.toLoading(data.uri);
   }
};

As displayed here, camera quality option is set to 0 to assure that the issue isn’t caused by image processing.

I also have set my RNCamera props to lower as so :

      autoFocus={"off"}
      skipProcessing={true}
      type={"back"}
      flashMode={"off"}
      zoom={0}
      whiteBalance={"auto"}
      ratio={"16:9"}

I tested this on both android and ios and even if ios seems to execute this a little bit faster, it still doesn’t do it instantly.
Has anyone been able to reproduce the facebook/instagram camera preview with react native? I have been looking on the github repo and there seem to be a lot of people in my situation but still no resolution. I have also noted that people have tried to eject expo projects to go on native code but the latency is still present.

How to&Answers:

There is now a skipProcessing flag which is meant to help the image display faster

this.camera.takePictureAsync({skipProcessing: true})

The documentation for SDK 30 says this may cause the image to be rotated incorrectly.

https://docs.expo.io/versions/latest/sdk/camera