Я пытаюсь реализовать ту же функциональность, что и в 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, чтобы перейти на собственный код, но задержка все еще присутствует.
Привет, ты нашел способ его улучшить?
Привет, нет, на данный момент ничего не было сделано, чтобы сделать это лучше. Для этого я использовал собственный код Android.
Теперь есть флаг skipProcessing, который предназначен для ускорения отображения изображения.
this.camera.takePictureAsync({skipProcessing: true})
В документации для SDK 30 говорится, что это может привести к неправильному повороту изображения.
https://docs.expo.io/versions/latest/sdk/camera
Обработка пропуска должна быть установлена в методе takepictureasync, как в моем ответе. Вы неправильно устанавливаете его на камере .. Если вы можете удалить свой голос против, я был бы признателен.
См. Комментарий к моему ответу ниже. Спасибо