Я использую androidx.camera:camera-view:1.0.0-alpha05 в моем проекте, чтобы делать фотографии с передней и задней камеры телефона. Мне не нужны все расширенные функции, представленные в примерах здесь https: / /github.com/android/camera-samples/tree/master/CameraXBasic также в настоящий момент примеры устарели и не работают с последними библиотеками. Таким образом, все функции в androidx.camera:camera-view в порядке, за исключением того, что я не могу определить, присутствует ли вспышка / фонарик для передней или задней камеры, и нет способа получить это из CameraView. Хотя существуют такие методы, как hasCameraWithLensFacing для проверки наличия указанной камеры, а также можно установить режим вспышки с помощью свойства flash CameraView. Также нет возможности получить CameraInfo, на который имеется ссылка в документации по android для androidx.camera:camera-core.

Так как же определить, присутствует ли флэш-память, используя только androidx.camera:camera-view:1.0.0, который в настоящее время является -alpha05?

1
Midnight Guest 21 Дек 2019 в 03:32

1 ответ

Проверьте Google "Начало работы с CameraX": https://codelabs.developers.google.com/codelabs/camerax -начало-начало / # 3

Они используют PreviewView, который требует дополнительной работы по инициализации и предлагает менее точный контроль над самой камерой, чем CameraView, но позволяет вам делать следующие вещи:

  • Определение наличия в камере вспышки

    _cameraHasFlashUnit = _camera.CameraInfo.HasFlashUnit;

  • Установка FlashMode (через простые значения int)

    _imageCapture.FlashMode = _flashMode;

    • Однако значения int плохо документированы, но я нашел следующие тезисы:
      • 0 = Авто
      • 1 = Всегда
      • 2 = выкл.
  • Включение и выключение резака

    _camera.CameraControl.EnableTorch(_torchIsActive);

Примеры взяты из кода с использованием androidx-beta01.1.

Мои образцы кода написаны на C #, потому что в настоящее время я разрабатываю Xamarin Native, но при необходимости их можно легко перенести на Kotlin.

1
samtun 2 Июл 2020 в 15:27