14

我正在尝试实现与 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);
   }
};

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

我也将我的 RNCamera 道具设置为更低:

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

我在 android 和 ios 上都对此进行了测试,即使 ios 似乎执行得更快一点,它仍然不会立即执行。
有没有人能够用本机反应重现 facebook/instagram 相机预览?我一直在查看 github repo,似乎有很多人在我的情况下,但仍然没有解决方案。我还注意到,人们试图退出世博会项目以继续使用本机代码,但延迟仍然存在。

4

1 回答 1

4

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

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

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

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

于 2018-10-25T12:10:37.207 回答