Задержка при захвате изображения - React Native Camera / Expo Camera

Я пытаюсь реализовать ту же функциональность, что и в 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 с помощью react native? Я смотрел репозиторий github, и, похоже, в моей ситуации много людей, но все еще нет разрешения. Я также заметил, что люди пытались извлечь проекты expo, чтобы перейти на собственный код, но задержка все еще присутствует.

См. Комментарий к моему ответу ниже. Спасибо

ykay says Reinstate Monica 31.10.2018 20:14

Привет, ты нашел способ его улучшить?

SkyTreasure 16.05.2019 14:24

Привет, нет, на данный момент ничего не было сделано, чтобы сделать это лучше. Для этого я использовал собственный код Android.

Aria Groult 22.05.2019 09:24
14
3
3 356
1

Ответы 1

Теперь есть флаг skipProcessing, который предназначен для ускорения отображения изображения.

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

В документации для SDK 30 говорится, что это может привести к неправильному повороту изображения.

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

Обработка пропуска должна быть установлена ​​в методе takepictureasync, как в моем ответе. Вы неправильно устанавливаете его на камере .. Если вы можете удалить свой голос против, я был бы признателен.

ykay says Reinstate Monica 31.10.2018 20:11

Другие вопросы по теме