Как я могу заморозить предварительный просмотр CameraX в Android? - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу, чтобы камера заморозила предварительный просмотр при нажатии кнопки захвата изображения. Я посмотрел на другие вопросы переполнения стека, но они устарели.

версия cameraX, которую я использую: 1.0.0-beta03

Любая помощь будет оценена. Спасибо

1 Ответ

1 голос
/ 29 апреля 2020

Пока нет «правильного» способа сделать это, но есть несколько способов достичь этого:

  • Остановить поток предварительного просмотра, отменив использование Preview case, сделайте снимок, затем привяжите new Preview, чтобы продолжить просмотр. Чтобы этот подход работал, вам также необходимо иметь ImageAnalysis привязанный вариант использования, поскольку ImageCapture не может сделать снимок, если это единственный ограниченный вариант использования (другой Preview или ImageAnalysis вариант использования также должен Обязательно ознакомьтесь с официальной документацией возможные комбинации вариантов использования ). Хотя этот подход работает, он приведет к небольшой задержке между моментом вызова обратного вызова ImageCapture и продолжением предварительного просмотра, в течение которого экран будет пустым.

  • В тот момент, когда вы делаете снимок, используйте последний кадр из ImageAnalysis, чтобы отобразить его в верхней части окна предварительного просмотра, вы можете преобразовать кадр, который является ImageProxy, в Bitmap и отобразить его в ImageView. После вызова обратного вызова ImageCapture снимите рамку и продолжите предварительный просмотр.

...