【问题标题】:Delay on the capture of an image - React Native Camera / Expo Camera延迟捕获图像 - React Native Camera / Expo Camera
【发布时间】:2018-05-18 07:26:41
【问题描述】:

我正在尝试实现与 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,似乎有很多人在我的情况下,但仍然没有解决方案。我还注意到,人们试图退出 expo 项目以继续使用本机代码,但延迟仍然存在。

【问题讨论】:

  • 请参阅下面对我的回答的评论。谢谢
  • 您好,您有什么方法可以改进吗?
  • 您好,目前没有,没有做任何改进。我使用了一些原生 Android 代码来实现。

标签: android react-native react-native-android expo react-native-camera


【解决方案1】:

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

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

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

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

【讨论】:

  • 应该在 takepictureasync 方法中设置跳过处理,就像我的回答一样。您在相机上的设置不正确。如果您可以删除您的反对票,我将不胜感激。
猜你喜欢
  • 2023-04-04
  • 1970-01-01
  • 2018-08-20
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多