延迟捕获图像 - React Native Camera/Expo Camera

Ari*_*ult 10 android react-native react-native-camera react-native-android expo

我试图实现与Facebook或Instagram相同的功能:立即
预览相机拍摄的图像

此时,调用此函数时我的摄取正确:

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);
   }
};
Run Code Online (Sandbox Code Playgroud)

如此处所示,摄像机质量选项设置为0,以确保问题不是由图像处理引起的.

我也将我的RNCamera道具设置为降低,如下所示:

      autoFocus={"off"}
      skipProcessing={true}
      type={"back"}
      flashMode={"off"}
      zoom={0}
      whiteBalance={"auto"}
      ratio={"16:9"}
Run Code Online (Sandbox Code Playgroud)

我在android和ios上测试了这个,即使ios似乎更快地执行它,它仍然不会立即执行.
有没有人能够使用react native重现facebook/instagram相机预览?我一直在寻找github回购,在我的情况下似乎有很多人,但仍然没有解决方案.我还注意到人们试图推出世博会项目以继续本机代码,但延迟仍然存在.

yka*_*ica 6

现在有一个skipProcessing标志,旨在帮助图像更快地显示

this.camera.takePictureAsync({skipProcessing: true})
Run Code Online (Sandbox Code Playgroud)

SDK 30 的文档表示这可能会导致图像旋转不正确。

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

  • 应该在 takepictureasync 方法中设置跳过处理,如我的答案所示。您在相机上的设置不正确。如果您可以删除您的反对票,我将不胜感激。 (4认同)