КамераX

CameraX — это дополнение к Jetpack, которое упрощает добавление возможностей камеры в ваше приложение. Библиотека предоставляет ряд исправлений совместимости и обходных путей, которые помогут сделать работу разработчика единообразной на многих устройствах.

В этой таблице перечислены все артефакты в группе androidx.camera .

Артефакт Стабильный выпуск Релиз-кандидат Бета-версия Альфа-релиз
камера-камера2 1.3.4 1.4.0-rc01 - -
ядро камеры 1.3.4 1.4.0-rc01 - -
эффекты камеры - 1.4.0-rc01 - -
расширения камеры 1.3.4 1.4.0-rc01 - -
жизненный цикл камеры 1.3.4 1.4.0-rc01 - -
камера-mlkit-vision - 1.4.0-rc01 - -
вид с камеры 1.3.4 1.4.0-rc01 - -
камера-видоискатель - - 1.3.0-бета02 1.4.0-альфа07
камера-видео 1.3.4 1.4.0-rc01 - -
Последнее обновление этой библиотеки: 7 августа 2024 г.

Тестирование устройства

CameraX протестирован на многих устройствах в нашей лаборатории. Чтобы просмотреть список устройств, находящихся в настоящее время в лаборатории, см. раздел Устройства, протестированные в лаборатории CameraX .

Объявление зависимостей

Чтобы добавить зависимость от CameraX, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

Добавьте зависимости для нужных вам артефактов в файл build.gradle для вашего приложения или модуля:

классный

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.4.0-rc01"
  // The following line is optional, as the core library is included indirectly by camera-camera2
  implementation "androidx.camera:camera-core:${camerax_version}"
  implementation "androidx.camera:camera-camera2:${camerax_version}"
  // If you want to additionally use the CameraX Lifecycle library
  implementation "androidx.camera:camera-lifecycle:${camerax_version}"
  // If you want to additionally use the CameraX VideoCapture library
  implementation "androidx.camera:camera-video:${camerax_version}"
  // If you want to additionally use the CameraX View class
  implementation "androidx.camera:camera-view:${camerax_version}"
  // If you want to additionally add CameraX ML Kit Vision Integration
  implementation "androidx.camera:camera-mlkit-vision:${camerax_version}"
  // If you want to additionally use the CameraX Extensions library
  implementation "androidx.camera:camera-extensions:${camerax_version}"
}

Котлин

dependencies {
    // CameraX core library using the camera2 implementation
    val camerax_version = "1.4.0-rc01"
    // The following line is optional, as the core library is included indirectly by camera-camera2
    implementation("androidx.camera:camera-core:${camerax_version}")
    implementation("androidx.camera:camera-camera2:${camerax_version}")
    // If you want to additionally use the CameraX Lifecycle library
    implementation("androidx.camera:camera-lifecycle:${camerax_version}")
    // If you want to additionally use the CameraX VideoCapture library
    implementation("androidx.camera:camera-video:${camerax_version}")
    // If you want to additionally use the CameraX View class
    implementation("androidx.camera:camera-view:${camerax_version}")
    // If you want to additionally add CameraX ML Kit Vision Integration
    implementation("androidx.camera:camera-mlkit-vision:${camerax_version}")
    // If you want to additionally use the CameraX Extensions library
    implementation("androidx.camera:camera-extensions:${camerax_version}")
}

Обратная связь

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

Создать новую задачу

Дополнительную информацию см. в документации по системе отслеживания проблем .

Видоискатель камеры Compose, версия 1.0

Версия 1.0.0-альфа02

12 июня 2024 г.

Выпущен androidx.camera:camera-viewfinder-compose:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты .

Версия 1.0.0-альфа01

14 мая 2024 г.

androidx.camera:camera-viewfinder-compose:1.0.0-alpha01 выпущен. Версия 1.0.0-alpha01 содержит эти коммиты .

Новые возможности

  • Новая библиотека. Эта библиотека представляет встроенный видоискатель Compose, который можно использовать с CameraX и Camera2. Компонуемый видоискатель поддерживает различные соотношения сторон и обработку сенсорных событий.

Видоискатель камеры Версия 1.4

Версия 1.4.0-альфа07

12 июня 2024 г.

Выпущены androidx.camera:camera-viewfinder:1.4.0-alpha07 и androidx.camera:camera-viewfinder-core:1.4.0-alpha07 . Версия 1.4.0-alpha07 содержит эти коммиты .

Версия 1.4.0-альфа06

14 мая 2024 г.

Выпущены androidx.camera:camera-viewfinder:1.4.0-alpha06 и androidx.camera:camera-viewfinder-core:1.4.0-alpha06 . Версия 1.4.0-alpha06 содержит эти коммиты .

Изменения API

  • Переименуйте перечисления ImplementationMode Viewfinder , чтобы лучше отражать базовые реализации, и добавьте фиксированные константы для TransformationInfo.sourceRotation . ( Ic6149 )
  • Добавлен ZoomGestureDetector.ZoomEvent для инкапсуляции состояний жеста масштабирования. ( I84cdf )

Версия камеры 1.4

Версия 1.4.0-rc01

7 августа 2024 г.

Выпущен androidx.camera:camera-*:1.4.0-rc01 . Версия 1.4.0-rc01 содержит эти коммиты .

Новые возможности

  • Добавлен экспериментальный CameraInfo.getCameraInfo для предоставления конкретной информации о камере без необходимости привязки вариантов использования к камере. ( I550d1 )

Изменения API

  • Добавлены API PreviewView.getScreenFlash и PreviewView.setScreenFlashOverlayColor для случаев, когда ScreenFlashView не добавлен явно. ( I43945 )

Исправление ошибок

  • Исправлены проблемы с экспозицией и цветовым оттенком, когда изображение, снятое с включенной вспышкой, при слабом освещении с привязкой к варианту использования VideoCapture. ( Ic9814 )
  • Исправлена ​​проблема, из-за которой прерывание запроса takePicture с включенными расширениями могло не дать результата, и следующий запрос takePicture мог больше не работать. ( Iae78f )
  • Исправлена ​​проблема утечки памяти, возникающая при включении расширений. ( Iab276 )
  • Устранена неисправность расширений CameraX на таких устройствах, как серии Pixel 7/8 и Samsung Galaxy S24. Проблема, возникшая из-за проблемы преобразования Camera2OutputConfigImpl в режиме выпуска, возникла после обновления AGP до 8.5.1 и включения минификации. ( I99598 , б/354824993 )

Версия 1.4.0-бета02

12 июня 2024 г.

Выпущен androidx.camera:camera-*:1.4.0-beta02 . Версия 1.4.0-beta02 содержит эти коммиты .

Изменения API

  • Как и в случае с VideoCapture , добавьте setMirrorMode для варианта использования предварительного просмотра. Он будет поддерживать включение и выключение зеркального режима для потока предварительного просмотра через OutputConfiguration.setMirrorMode из API 33 и выше, для более старых API он будет неактивен. ( I821f4 )

Исправление ошибок

  • Исправлена ​​проблема, из-за которой приложения не могли успешно делать снимки на Samsung Tab A8, когда ImageCapture выбирает 1920x1080 в комбинации Preview + VideoCapture + ImageCapture UseCase . ( I5a463 , б/336925549 )
  • Исправлена ​​постоянная запись, которая могла не продолжаться после переключения камеры. ( Icb0a1 )

Версия 1.4.0-бета01

14 мая 2024 г.

Выпущен androidx.camera:camera-*:1.4.0-beta01 . Версия 1.4.0-beta01 содержит эти коммиты .

Изменения API

  • Добавлен ZoomGestureDetector.ZoomEvent для инкапсуляции состояний жеста масштабирования. ( I84cdf )

Исправление ошибок

  • Исправлена ​​ошибка, из-за которой по-прежнему при захвате и фокусировке касанием не используются значения повторяющегося запроса FPS/режима стабилизации, что может воссоздать сеанс захвата и вызвать проблемы с задержкой или зависание предварительного просмотра на некоторых устройствах. ( I7dc0b )
  • Исправлена ​​ошибка, из-за которой на некоторых устройствах нельзя было выбрать высокое разрешение, когда CameraEffect включен. (например, 4000x3000 на Samsung A32 5G). ( Ie3ed3 , б/337336152 )
  • Исправлен сбой при съемке с помощью функции предварительного просмотра, ImageCapture и VideoCapture(UHD) привязаны к Pixel 4XL API29. ( I5b288 )
  • Поддержка виртуальных устройств. Контекст, переданный в ProcessCameraProvider сохранит идентификатор устройства, чтобы обеспечить функциональность в среде виртуальных устройств. ( I5ba48 )

Версия 1.4.0-альфа05

17 апреля 2024 г.

Выпущен androidx.camera:camera-*:1.4.0-alpha05 . Версия 1.4.0-alpha05 содержит эти коммиты .

Новые возможности

  • Преобразовал ProcessCameraProvider в реализацию Kotlin. ( I46d4f )
  • Добавлены функции приостановки ImageCapture.takePicture , позволяющие вызывать их идиоматическим способом Kotlin. ( I920be )

Изменения API

  • Добавьте API формата вывода в ImageCapture и добавьте метод getSupportedOutputFormats в ImageCaptureCapabilities для запроса возможностей устройства. Значение выходного формата по умолчанию — OUTPUT_FORMAT_JPEG , которое захватывает изображения SDR в формате JPEG. Если устройство поддерживает Ultra HDR и для выходного формата установлено значение OUTPUT_FORMAT_JPEG_ULTRA_HDR , CameraX будет захватывать сжатые изображения Ultra HDR в формате JPEG/R. Формат обратно совместим с форматом SDR JPEG и поддерживает HDR-рендеринг контента. Это означает, что в старых приложениях или устройствах изображения отображаются в обычном формате JPEG; в приложениях и устройствах, которые были обновлены для полной поддержки этого формата, изображения отображаются в формате HDR. ( I5de50 )
  • Добавьте PhysicalCameraInfo в CameraInfo для запроса информации о физической камере и добавьте установщик/получатель идентификатора физической камеры в CameraSelector ( Ic5b90 ).
  • Замените CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED на ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED . Значение константы остается прежним. Это для объединения всех констант в одном месте. ( I890bb )
  • Новый API RetryPolicy позволяет разработчикам настраивать поведение повторных попыток инициализации CameraX. ( I36dd2 )
  • Включить создание объекта ImageCaptureLatencyEstimate для облегчения тестирования ( Iaba99 ).
  • Добавьте ImageAnalysis#COORDINATE_SYSTEM_SENSOR . При его использовании MlKitAnalyzer возвращает координаты в системе координат датчика камеры. ( I3ec61 )
  • API метаданных открытых расширений. Новые интерфейсы CameraExtensionsInfo и CameraExtensionsControl позволяют приложениям отслеживать и настраивать параметры мощности расширения. Приложения могут получить экземпляр CameraExtensionsInfo или CameraExtensionsControl с помощью недавно добавленных методов ExtensionsManager#getCameraExtensionsInfo() или ExtensionsManager#getCameraExtensionsControl() . ( I28e1a )
  • Добавлен ProcessCameraProvider.awaitInstance , который является приостанавливаемой версией ProcessCameraProvider.getInstance ( Ib22b9 ).
  • Добавьте API PreviewView#getSensorToViewTransform() . Матрица представляет собой преобразование координат датчика камеры в координаты PreviewView . Это можно использовать для преобразования координат из одного UseCase в другой. Например, преобразование координат обнаруженных объектов в ImageAnalysis в наложение PreviewView . ( I947ab )
  • Сделайте API camera-viewfinder-core более универсальным, чтобы его можно было использовать camera-viewfinder и camera-viewfinder-compose . ( I1e295 )
  • Добавьте функцию getSurface в ViewfinderSurfaceRequest . ( I781a0 )
  • Используйте camera-viewfinder-core в camera-viewfinder и объявите устаревшими ViewfinderSurfaceRequest и CameraViewfinder . ( I6198c )
  • Добавлен ZoomGestureDetector , который интерпретирует жесты масштабирования, специально настроенные для масштабирования. ( Ифабф )

Исправление ошибок

  • Исправлена ​​проблема выбора разрешения ImageAnalysis , связанная с настройкой целевого разрешения анализатора по умолчанию: целевое разрешение неправильно сохранялось как 640x480, даже если приложения установили другую настройку разрешения анализатора по умолчанию. Если приложения сталкиваются с этой проблемой (1.3.0 ~ 1.3.2) и не могут выполнить обновление для использования более новых выпусков версий, содержащих решение, непосредственная установка ResolutionSelector с предпочтительным разрешением и соответствующей AspectRatioStrategy для UseCase ImageAnalysis может обойти эту проблему. . ( I81f72 , б/330091012 )
  • Исправлена ​​проблема, из-за которой запрос takePicture в очереди мог не выполниться, если текущий запрос не выполнен. ( Ie0801 )
  • Сделайте проверку недействительных данных JPEG примененной к устройствам Vivo X60 и X60 Pro. Это может решить проблему с аномально большим изображением на этих устройствах. ( I82247 , б / 288828159 )
  • Исправлена ​​проблема с неправильными метаданными изображения JPEG на устройствах Samsung A24. Благодаря исправлению CameraX может успешно сохранять изображение JPEG или возвращать правильные растровые объекты при вызове функции ImageProxy.toBitmap() на устройствах Samsung A24. ( I8d6eb , б/309005680 )
  • Сделайте проверку недействительных данных JPEG применимой ко всем устройствам Samsung, если размер захваченного изображения превышает 10 МБ. Это может решить аномально большую проблему с iamge на устройствах Samsung. ( Ic2a65 , б/288828159 )
  • Удалена поддержка ImageAnalysis в расширениях CameraX, поскольку реализации расширений многих OEM-производителей плохо работают с ImageAnalysis и могут вызывать противоречивые проблемы. ( I2d926 )

Версия 1.4.0-альфа04

24 января 2024 г.

Выпущен androidx.camera:camera-*:1.4.0-alpha04 . Версия 1.4.0-alpha04 содержит эти коммиты.

Новые возможности

  • Новый артефакт: camera-effects: библиотека для применения эффектов в реальном времени к выходным данным CameraX, включая Preview , VideoCapture и/или ImageCapture . Этот артефакт содержит реализации OpenGL API CameraEffect , которые эффективно управляют выводом камеры.
  • OverlayEffect : для рисования наложений с помощью Android Canvas API. Это позволяет приложению наносить водяной знак или выделять обнаруженные объекты на выходах камеры.
  • API-интерфейсы DynamicRange для варианта использования предварительного просмотра: динамический диапазон теперь можно установить для варианта использования предварительного просмотра независимо от варианта использования видео. Это позволяет использовать динамические диапазоны HDR, такие как HLG10, только для предварительного просмотра. В CameraInfo также доступны новые API-интерфейсы для запроса того, какие динамические диапазоны поддерживает каждая камера.

Изменения API

  • ScreenFlashUiCompleter переименован в ScreenFlashListener и перемещен ScreenFlashUiCompleter#getExpirationTimeMillis в параметр expirationTimeMillis ScreenFlash#apply . ( I13944 )
  • Добавлены новые API, позволяющие устанавливать динамический диапазон в сценарии использования «Предварительный просмотр» и запрашивать динамические диапазоны, поддерживаемые каждой камерой. Это позволяет использовать динамические диапазоны HDR, такие как HLG10, только в сценарии предварительного просмотра, больше не требуя одновременной привязки VideoCapture . ( Если25е3 )
  • getMirroring() переименован в isMirroring() ( I47063 ).
  • Добавлена ​​поддержка оценки задержки захвата в реальном времени в CameraX. Расширения камеры позволяют приложениям использовать API, который позволяет оценить, сколько времени займет захват. Оценка учитывает текущие условия окружающей среды, состояние камеры и включает время, затраченное на обработку запросов на многокадровый захват, а также любое дополнительное время на кодирование обработанных буферов, если это необходимо. ( I05c3a )
  • ScreenFlashUiControl переименован в ScreenFlash , ScreenFlashUiControl#applyScreenFlashUi в ScreenFlash#apply , ScreenFlashUiControl#clearScreenFlashUi в ScreenFlash#clear и добавлен метод getScreenFlashUiApplyTimeoutSeconds вместо прямого предоставления SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS . ( Iccdd0 )

Исправление ошибок

  • Исправлена ​​утечка памяти, из-за которой действия или фрагменты не освобождались при включении расширений ( I14215 ).
  • Исправлена ​​проблема, из-за которой getZoomRatio неправильно возвращал уменьшенное значение при применении увеличения коэффициента масштабирования. ( I4aa0d , б/317543616 )
  • Событие ImageCapture#ScreenFlash#clear вызывается немедленно, когда ImageCapture отсоединяется или закрывается камера, а также исправляет некоторые ошибки, из-за которых оно никогда не вызывается из-за того, что захваты в этих сценариях не выполняются должным образом. ( Если99f9 )
  • Исправлен сбой, который происходил, когда жизненный цикл был остановлен до завершения запроса takePicture ( Idf017 , b/306202751 ).
  • Исправлена ​​проблема, из-за которой предварительный просмотр камеры становился черным, когда на некоторых устройствах включены расширения ( I1ffd0 ).
  • Исправлена ​​некорректная продолжительность записи видео на устройствах, использующих SoC Snapdragon 778G. ( If6aa7 , b/316057919 )

Версия 1.4.0-альфа03

13 декабря 2023 г.

Выпущен androidx.camera:camera-*:1.4.0-alpha03 . Версия 1.4.0-alpha03 содержит эти коммиты.

Новые возможности

  • Добавлен CameraInfo.mustPlayShutterSound для предоставления информации о том, должен ли воспроизводиться звук затвора в соответствии с региональными ограничениями. ( Ифда84 )
  • Добавлены OnImageCapturedCallback.onCaptureStarted и OnImageSavedCallback.onCaptureStarted для уведомления, когда камера начала экспонировать кадр. На этом этапе рекомендуется воспроизвести звук затвора или анимацию затвора. ( Ic49b3 )
  • В CameraX добавлена ​​поддержка функции Screen Flash для захвата изображения с передней камеры. CameraX позаботится об обработке API на стороне платформы и синхронизирует время с изменениями пользовательского интерфейса приложения по мере необходимости (например, запуск предварительного захвата AE после изменения цвета/яркости экрана приложения). Приложениям нужно будет только добавить свои реализации пользовательского интерфейса в интерфейс ScreenFlashUiControl , предоставляемый CameraX. ( I8ae84 )
  • Добавлена ​​поддержка реализации функции Screen Flash на стороне пользовательского интерфейса в CameraX. Приложения смогут получить базовую реализацию ImageCapture.ScreenFlashUiControl из PreviewView или недавно добавленного ScreenFlashView , который добавит моноцветное наложение и максимизирует яркость экрана во время захвата фотографий со вспышкой. ( I1810e )

Изменения API

  • Поддерживает новые функции расширений (постпросмотр и процесс захвата): добавлены API-интерфейсы ImageCapture#getImageCaptureCapabilities() для приложений, позволяющие запрашивать возможности постпросмотра и обратного вызова хода процесса захвата. Приложения могут включить постпросмотр с помощью ImageCapture.Builder#setPostviewEnabled() . Размер постпросмотра можно выбрать с помощью ImageCapture.Builder#setPostviewResolutionSelector() . При вызове takePicture() onPostviewBitmapAvailable и onCaptureProcessProgressed могут быть реализованы в OnImageSavedCallback или OnImageCapturedCallback , чтобы получить уведомление о постпросмотре и ходе обработки, если оно поддерживается. ( I5cd88 )
  • API для расчета координат, преобразования из датчика в текущий буфер, с флагом, указывающим, содержит ли поверхность информацию об ориентации камеры. ( I59096 )
  • Предоставьте API для запроса PreviewCapabitlity в Preview UseCase . ( Ie5b6c )
  • Добавлены API для поддержки большего количества качеств VideoCapture . Recorder.Builder#setVideoCapabilitiesSource(int) можно использовать с VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES для создания экземпляра Recorder , который поддерживает больше качеств, чем VIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE . Распространенный случай использования — когда приложение пытается записывать видео UHD, когда это возможно, но CamcorderProfile устройства не включает настройки UHD, даже если кодек способен записывать видео UHD. ( Иедбе2 , б/263961771 )
  • Добавьте метод получения/установки выходного формата ImageAnalysis в CameraController . ( I9a96c , б/308240643 )

Исправление ошибок

  • Из камеры 1.3.1 : улучшена производительность ProcessCameraProvider#bindToLifecycle() . Основное изменение заключается в оптимизации процесса определения наиболее подходящих комбинаций размеров для UseCases . Оптимальные результаты зависят от конкретных комбинаций UseCase и количества поддерживаемых выходных размеров для целевых устройств. ( I454f2 )
  • Разрешить использование VideoCapture , когда расширения включены. ( I91f32 )
  • Исправлена ​​проблема с большим захваченным изображением JPEG на устройствах серий Samsung A71 и M51. Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют слишком большой размер файла. Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I01afc , б/288828159 )
  • Отключите поддержку ImageAnalysis на пикселях, чтобы избежать ошибки на пикселях, из-за которой случайно возвращаются непустые поддерживаемые размеры ImageAnalysis . ( I7ec31 )
  • Исправлена ​​проблема с производительностью, из-за которой загрузка процессора и энергопотребление увеличивались при включении расширений. ( Ibdccb )
  • В CameraUseInconsistentTimebaseQuirk добавлен Snapdragon 480. Это устраняет проблему в Android 12 для устройств, использующих этот набор микросхем, из-за которой звук в записях компенсируется количеством времени, в течение которого устройство находится в приостановленном состоянии. ( I58010 )

Версия 1.4.0-альфа02

18 октября 2023 г.

Выпущен androidx.camera:camera-*:1.4.0-alpha02 . Версия 1.4.0-alpha02 содержит эти коммиты.

Изменения API

  • Переименуйте API в setCameraOpenRetryMaxTimeoutInMillisWhileResuming и переименуйте аргумент. ( I72370 )
  • Добавление API для запроса возможностей устройства и включения стабилизации видео/предварительного просмотра. ( I87544 )
  • Предоставьте API для настройки максимального времени ожидания повторной попытки открытия камеры. ( I0c642 )
  • Выпущен ProcessCameraProvider.shutdownAsync в качестве общедоступного API тестирования, позволяющего использовать поставщика камеры процесса в наборах тестов, которым может потребоваться инициализировать CameraX различными способами между тестами. ( I9eca7 )
  • Добавьте API для настройки динамического диапазона захвата видео, частоты кадров и режима зеркалирования. ( Ifb8f7 )
  • Устарейте OutputSize и замените его на ResolutionSelector . ResolutionSelector — это более комплексный способ выбора разрешения, который соответствует API ядра камеры. ( И93абд , б/286801438 )

Исправление ошибок

  • Исправлена ​​проблема с предварительным просмотром черного цвета на Samsung Galaxy S23 Ultra 5G, когда расширения «Боке» или «Ретуширование лица» включены с помощью ImageAnalysis на задней камере. ( I2e8b1 )
  • Исправлены проблемы с растягиванием предварительного просмотра и VideoCapture на Moto E5 Play. ( 73dce2 )

Версия 1.4.0-альфа01

20 сентября 2023 г.

Выпущен androidx.camera:camera-*:1.4.0-alpha01 . Версия 1.4.0-alpha01 содержит эти коммиты.

Изменения API

  • Добавьте новый API для доступа к информации об амплитуде звука во время записи. ( Ид4925 )

Исправление ошибок

  • Повысьте стабильность расширений, гарантируя, что события инициализации и деинициализации запускаются в правильном порядке. ( Ib3b8e )
  • Исправлен сбой конфигурации сеанса захвата из-за превышения поддерживаемой комбинации поверхностей из-за внутреннего добавления дополнительной повторяющейся поверхности. ( Id718c )
  • Исправлена ​​проблема с большим захваченным изображением JPEG на устройстве Vivo S16. Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют большой размер файла. Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I79505 , б / 299069235 )
  • Исправлена ​​проблема, из-за которой ImageAnalysis нельзя было связать с ImageCapture и Preview, когда на некоторых устройствах включены некоторые режимы расширения. Исправление вернет правильное значение, когда приложения запрашивают доступность ImageAnalysis через ExtensionsManager#isImageAnalysisSupported() . ( I7d538 )
  • Обновите JavaDoc, чтобы оно соответствовало поведению. Вместо немедленного завершения #setZoomRatio , #setLinearZoom и #enableTorch ждут, пока камера будет готова. Также добавлена ​​информация о том, как получить максимальное поле зрения с помощью API #takePicture . ( I23588 )

Версия 1.3

Версия 1.3.4

12 июня 2024 г.

Выпущен androidx.camera:camera-*:1.3.4 . Версия 1.3.4 содержит эти коммиты .

Исправление ошибок

  • Исправлена ​​проблема, из-за которой getZoomRatio неправильно возвращал уменьшенное значение при применении увеличения коэффициента масштабирования. ( I4aa0d , б/317543616 )
  • Исправлена ​​ошибка, из-за которой при съемке/нажатии для фокусировки не использовались значения повторяющегося запроса FPS/режима стабилизации, что могло повторно создать сеанс захвата и вызвать проблемы с задержкой или зависание предварительного просмотра на некоторых устройствах. ( I7dc0b )
  • Исправлена ​​проблема, из-за которой частота кадров устанавливалась на более низкое значение при вызове setTargetFrameRate с FRAME_RATE_RANGE_UNSPECIFIED . ( I78c61 )

Версия 1.3.3

17 апреля 2024 г.

Выпущен androidx.camera:camera-*:1.3.3 . Версия 1.3.3 содержит эти коммиты .

Исправление ошибок

  • Исправлена ​​проблема выбора разрешения ImageAnalysis , связанная с настройкой целевого разрешения анализатора по умолчанию: целевое разрешение неправильно сохранялось как 640x480, даже если приложения установили другую настройку разрешения анализатора по умолчанию. Если приложения сталкиваются с этой проблемой (1.3.0 ~ 1.3.2) и не могут выполнить обновление для использования более новых выпусков версий, содержащих решение, непосредственная установка ResolutionSelector с предпочтительным разрешением и соответствующей AspectRatioStrategy для варианта использования ImageAnalysis может обойти эту проблему. . ( I81f72 , б/330091012 )

Версия 1.3.2

6 марта 2024 г.

Выпущен androidx.camera:camera-*:1.3.2 . Версия 1.3.2 содержит эти коммиты .

Исправление ошибок

  • Исправлена ​​проблема с метаданными JPEG на устройствах Samsung A24. CameraX теперь точно сохраняет изображения, а функция ImageProxy.toBitmap() возвращает правильные растровые объекты. ( I8d6eb , б/309005680 )
  • Удалена опция разрешения 9280x6944 на устройствах Redmi Note 9 Pro из-за проблем. ( Ia23da )

Версия 1.3.1

13 декабря 2023 г.

Выпущен androidx.camera:camera-*:1.3.1 . Версия 1.3.1 содержит эти коммиты.

Исправление ошибок

Улучшена производительность ProcessCameraProvider#bindToLifecycle() . Основное изменение заключается в оптимизации процесса определения наиболее подходящих комбинаций размеров для UseCases . Оптимальные результаты зависят от конкретных комбинаций UseCase и количества поддерживаемых выходных размеров для целевых устройств. ( I454f2 )

Вот некоторые справочные результаты для различных сценариев:

  • Четыре UseCases : Preview + ImageCapture + ImageAnalysis + VideoCapture

    • Google Pixel 7: примерно от 430 до 60 мс.
    • Samsung Galaxy S23 Ultra: примерно от 540 до 45 мс.
    • Samsung A53 5G: примерно от 115 до 70 мс
  • Три UseCases : Preview + ImageCapture + ImageAnalysis

    • Google Pixel 7: примерно от 9 до 7 мс.
    • Samsung Galaxy S23 Ultra: примерно от 6 до 5 мс.
    • Samsung A53 5G: примерно от 32 до 12 мс
  • В CameraUseInconsistentTimebaseQuirk добавлен Snapdragon 480. Это устраняет проблему в Android 12 для устройств, использующих этот набор микросхем, из-за которой звук в записях компенсируется количеством времени, в течение которого устройство находится в приостановленном состоянии. ( I58010 )

Версия 1.3.0

18 октября 2023 г.

Выпущен androidx.camera:camera-*:1.3.0 . Версия 1.3.0 содержит эти коммиты.

Важные изменения с версии 1.2.0

Версия 1.3.0-rc02

20 сентября 2023 г.

Выпущен androidx.camera:camera-*:1.3.0-rc02 . Версия 1.3.0-rc02 содержит эти коммиты.

Исправление ошибок

  • Повысьте стабильность расширений, гарантируя, что события инициализации и деинициализации запускаются в правильном порядке. Исправлены некоторые проблемы с предварительным просмотром черного цвета при переключении режимов расширений или переключении камер. ( Иддаак )
  • Исправлена ​​проблема, из-за которой ImageAnalysis нельзя было связать с ImageCapture и Preview, когда на некоторых устройствах включены некоторые режимы расширения. Исправление вернет правильное значение, когда приложения запрашивают доступность ImageAnalysis через ExtensionsManager#isImageAnalysisSupported() . ( I7d538 )
  • Исправлена ​​проблема, из-за которой записанное видео, аудио и видео не синхронизировались при включении режима зеркалирования на Xiaomi Poco X3 NFC. ( I20b4c )

Версия 1.3.0-rc01

23 августа 2023 г.

androidx.camera:camera-*:1.3.0-rc01 выпущен. Версия 1.3.0-rc01 содержит эти коммиты.

Изменения API

  • Добавлен PendingRecording.asPersistentRecording , позволяющий непрерывно записывать запись, пока VideoCapture , к которому подключено ее записывающее устройство, восстанавливается. ( I517c6 )

Исправление ошибок

  • Исправлен сбой, когда поток используется как для VideoCapture , так и для предварительного просмотра. Также исправлен черный экран на устройствах LEGACY, когда включен общий доступ к потоку.
  • Исправлена ​​проблема с большим захваченным изображением JPEG на устройствах серии Samsung S7 (SM-G930T, SM-G930V). Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют большой размер файла. Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I407b0 , б/288828159 )
  • Исправлена ​​проблема с большим захваченным изображением JPEG на устройствах серий Samsung S22 (SM-S901B, SM-S901B/DS) и S22+ (SM-S906B). Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют большой размер файла, около 13 МБ на устройстве S22 SM-S901B/DS. Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I73be9 , б / 288828159 )
  • Исправлена ​​проблема с большим захваченным изображением JPEG на устройствах серий Samsung A5, A52, A70 и A72. Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют слишком большой размер файла (например, около 32 МБ или даже 96 МБ). Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I97c4d , б/288828159 )
  • Исправлен сбой при съемке с включенными расширениями ( I698f5 ).

Версия 1.3.0-бета02

26 июля 2023 г.

Выпущен androidx.camera:camera-*:1.3.0-beta02 . Версия 1.3.0-beta02 содержит эти коммиты.

Исправление ошибок

  • Используйте фонарик в качестве вспышки для вариантов Pixel 4 и 5, чтобы улучшить качество съемки при слабом освещении ( I56ff5 , b/280221967 )
  • Исправлена ​​проблема с большим захваченным изображением JPEG на устройствах серии Samsung A5 (2017). Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют размер файла около 32 МБ. Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I29837 , б / 288828159 )
  • Исправлена ​​ошибка, из-за которой повторная попытка не запускалась должным образом в случае сбоя захвата на проблемных устройствах, упомянутых в CaptureFailedRetryQuirk . ( I7b589 )

Версия 1.3.0-бета01

21 июня 2023 г.

Выпущен androidx.camera:camera-*:1.3.0-beta01 . Версия 1.3.0-beta01 содержит эти коммиты.

Изменения API

  • Имя функции ResolutionSelector.Builder#setHighResolutionEnabledFlag(int) переименовано в setAllowedResolutionMode , а константы ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF / ON переименованы в PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION / PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE . ( Если84e8 )
  • Удалены устаревшие API ImageAnalysis.setTargetRotationDegrees(int) , ImageCapture.setTargetRotationDegrees(int) и VideoCapture.setTargetRotationDegrees(int) . ( ID8e77 )
  • Класс DynamicRange представляет динамический диапазон изображений. Это можно использовать для выбора форматов расширенного динамического диапазона в качестве выходных данных VideoCapture с помощью VideoCapture.Builder#setDynamicRange() . ( Ib0377 )
  • В ExtensionsManager добавлен API-интерфейс isImageAnalysisSupported , с помощью которого приложения могут определять, можно ли связать вариант использования ImageAnalysis вместе с предварительным просмотром и ImageCapture , когда расширения включены. ( I1bc63 )
  • Новый класс VideoCapabilities полученный из Recorder можно использовать для запроса поддерживаемых динамических диапазонов и качества записи видео на устройстве. Методы getSupportedQualities() и isQualitySupported() класса QualitySelector устарели. Вместо этого используйте методы getSupportedQualities() и isQualitySupported() VideoCapabilities . ( I04014 )
  • CameraController#setVideoCaptureTargetQuality() переименован в setVideoCaptureQualitySelector и принимает аргумент QualitySelector , что обеспечивает большую гибкость настройки качества видео. CameraController#getVideoCaptureTargetQuality() соответственно изменен на getVideoCaptureQualitySelector . ( I520ed )
  • Удалена экспериментальная аннотация для функций видео. Функции видео теперь стабильны. ( I1a113 )

Исправление ошибок

  • Используйте фонарик в качестве вспышки на моделях Samsung SM-A320, чтобы повысить скорость и качество получаемых изображений при слабом освещении. ( I6a022 , б/286190938 )
  • Добавьте поддержку формата ImageFormat.JPEG для ImageProxy.toBitmap() . Если массив байтов JPEG не может быть декодирован, будет выдано UnsupportedOperationException . ( I81958 , б / 282057603 )

Версия 1.3.0-альфа07

24 мая 2023 г.

Выпущен androidx.camera:camera-*:1.3.0-alpha07 . Версия 1.3.0-alpha07 содержит эти коммиты.

Новые возможности

  • Новый API VideoCapture.Builder# setTargetFrameRate(Range) позволяет захватывать видеозаписи с другой частотой кадров, помимо частоты кадров, установленной устройством по умолчанию. Доступную частоту кадров для записей можно запросить через новый API CameraInfo#getSupportedFrameRates() .

Изменения API

  • Константы ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF / ON переименованы в ALLOWED_RESOLUTIONS_NORMAL / SLOW , а имя функции компоновщика setHighResolutionEnabledFlag переименовано в setAllowedResolutionMode . ( Iae817 )
  • CameraInfo#getSupportedFrameRateRanges() теперь возвращает Set , а не List , чтобы лучше представить, что диапазоны неупорядочены. ( I02f43 )
  • Добавьте прослушиватель ошибок в CameraEffect для обработки неисправимых ошибок ( Ice471 ).
  • Добавьте общедоступный конструктор в ResolutionInfo для лучшей тестируемости ( If6d1c ).
  • Предоставлен API UseCase.snapToSurfaceRotation(int) для замены использования setTargetRotationDegrees и прекращения поддержки API ImageAnalysis.setTargetRotationDegrees(int) , ImageCapture.setTargetRotationDegrees(int) и VideoCapture.setTargetRotationDegrees(int) . ( Я9010 )
  • Добавлены новые API Preview#getTargetFrameRate и Preview.Builder#setTargetFrameRate , позволяющие устанавливать и получать целевую частоту кадров для варианта использования предварительного просмотра ( If4f22 ).
  • VideoRecordEvent.Finalize теперь завершается с кодом ошибки ERROR_RECORDING_GARBAGE_COLLECTED , когда объект Recording остановлен из-за сборки мусора. ( Iba974 )

Исправление ошибок

  • Исправлено исключение NullPointerException , когда размеры кэшированных выходных данных в StreamConfigurationMapCompat имеют значение null. ( Idf124 , б/282025204 )
  • Исправлена ​​проблема, из-за которой Preview.setSurfaceProvider(null) не приостанавливал предварительный просмотр в расширениях ( Ia903e ).
  • Исправлена ​​проблема, из-за которой ConcurrentModificationException выдавалось при открытии камеры, когда привязано VideoCapture . ( Ic8ac4 )

Версия 1.3.0-альфа06

19 апреля 2023 г.

Выпущен androidx.camera:camera-*:1.3.0-alpha06 . Версия 1.3.0-alpha06 содержит эти коммиты.

Новые возможности

  • Параллельная камера — это новая функция, представленная в Android 11, которая поддерживает одновременную потоковую передачу с устройств камеры, например, она позволяет устройству одновременно использовать переднюю и заднюю камеры. В настоящее время CameraX поддерживает только две одновременные камеры, что позволяет двум камерам работать одновременно, причем для каждой привязано не более двух {@link UseCase}. Максимальное разрешение — 720p или 1440p. Более подробную информацию можно найти по следующей ссылке: CameraManager#getConcurrentCameraIds().
  • Представляем новый API ResolutionSelector , который охватывает следующие функции:
    • Приложения могут указать соотношение сторон и стратегии разрешения, чтобы выбрать лучшее разрешение для своих нужд.
    • Все размеры и параметры соотношения сторон выражаются в координатах датчика устройства камеры.
    • Приложения могут реализовать собственный фильтр разрешения, чтобы расположить поддерживаемые размеры в желаемом порядке.
    • Приложения также могут включать захват с высоким разрешением для получения изображений с более высоким разрешением. Однако учтите, что использование высокого разрешения может привести к увеличению времени захвата.
    • Добавлены API-интерфейсы зеркалирования VideoCapture . Видео, записанные с помощью VideoCapture по умолчанию не зеркалируются. Однако предварительный просмотр камеры по умолчанию отображается на передней камере. API-интерфейсы зеркалирования VideoCapture позволяют согласовывать предварительный просмотр с камеры при использовании передней камеры. Существует три MirrorMode : OFF , ON и ON_FRONT_ONLY . Для согласования с предварительным просмотром камеры рекомендуется использовать ON_FRONT_ONLY , что означает, что зеркальное отображение не включено для задней камеры, но включено для передней камеры.

Изменения API

  • Представлен новый API-интерфейс ResolutionSelector . Приложения могут указывать соотношение сторон и стратегии разрешения с помощью резервных правил или настраиваемого фильтра разрешения для получения желаемых результатов. Приложения могут указать флаг для включения захвата с высоким разрешением. Это позволит CameraX выбирать более высокое разрешение при съемке фотографий или видео. Однако обратите внимание, что использование высокого разрешения может привести к увеличению времени захвата. ( Ибед95 )
  • Диапазоны FPS, поддерживаемые алгоритмом AE, теперь можно запросить с помощью CameraInfo#getSupportedFrameRateRanges() . ( Iaa67f )
  • Объедините имена всех методов частоты кадров, используя «FrameRate». Исправьте ошибку javadoc в VideoCapture#getTargetFrameRate() ( I83304 ).
  • Устаревшие API setTargetAspectRatio и setTargetResolution устарели. Вместо этого используйте новый API ResolutionSelector . ( I542c3 )
  • Добавлены общедоступные API для одновременной работы двух камер, в том числе
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn() и ConcurrentCameraConfig , SingleCameraConfig и ConcurrentCamera ( Iab1c1 )
  • Сделать ImageProcessor.Response#getOutputImage NonNull ( Ib9c60 )
  • Добавлены API-интерфейсы зеркалирования VideoCapture , включая VideoCapture.Builder.setMirrorMode(int) и VideoCapture.getMirrorMode() . API полезны для приложений, требующих, чтобы запись видео соответствовала обыкновенному поведению предварительного просмотра камеры, то есть предварительный просмотр задней камеры не зеркально, но предварительный просмотр фронта. ( I713b6 , b/194634656 )
  • Добавить setTargetFrameRate() API в видеозапьер. Стоимость API VideoCapture.Builder и getTargetFramerate() в VideoCapture ( i109D4 )
  • Сделайте SurfaceOutput , расширяющуюся и скрыть общественный конструктор urfaceOutput.Event . ( I60ea8 )
  • Добавлено Recording.mute Отключить для динамического отключения или упоминания записи в обработке. RecordingStats будет содержать AudioStats.AUDIO_STATE_MUTED когда запись в обработке явно приглушена. ( IE17FC )
  • Made #setEffects() параметр не нулевой. Добавьте API #clearEffects() для очистки эффектов. Приложение должно позвонить #clearEffects() для удаления эффектов. ( I4b4d9 )
  • Добавьте второй конструктор для ViewfinderSurfaceRequest.Builder , чтобы взять строитель для конструктора копирования ( I621A7 )

Исправление ошибок

  • Исправлена ​​проблема, в которой приложения, вызывая API расширения, могли сбой при закрытии камеры ( IB27E5 )
  • Исправлена ​​проблема, где VideoCapture не может работать с фронтальной камерой на некоторых устройствах. Например, на Samsung Galaxy S23 и Xiaomi 2107113SG. ( IBEC7E , B/270656244 )
  • Исправлена ​​проблема, в которой снимки с использованием файла в общедоступной папке внешней хранилища всегда выйдут из строя в Android 10 или выше. Обратите внимание, что в Android 10 снимки с использованием файла во внешней общедоступной папке также требуют установки requestLegacyExternalStorage в True в теге приложения. ( I11b2c )
  • Исправлена ​​авария RejectedExecutionException в DefaultSurfaceProcessor . Сбой может произойти, когда VideoCapture связана, а деятельность приостановлена. ( IDB46A , B/273713906 )

Версия 1.3.0-Alpha05

22 марта 2023 г.

androidx.camera:camera-*:1.3.0-alpha05 выпускается. Версия 1.3.0-Alpha05 содержит эти коммиты.

Изменения API

  • Добавлены API -интерфейсы ротации VideoCapture , включая VideoCapture.Builder.setTargetRotation(int) , VideoCapture.setTargetRotation(int) , VideoCapture.setTargetRotationDegrees(int) и VideoCapture.getTargetRotation() . API полезны для приложений, которые блокируют ориентацию устройства. ImageCapture.setTargetRotationDegrees(int) и ImageAnalysis.setTargetRotationDegrees(int) также добавлены. ( Id3ffe , b/205242781 )
  • Разрешить VIDEO_CAPTURE и PREVIEW|VIDEO_CAPTURE как цель эффектов. Эффекты, которые нацелены на VIDEO_CAPTURE , будут применены к использованию VideoCapture ; Эффекты, нацеленные на PREVIEW|VIDEO_CAPTURE будут применены к общему потоку перед копированием для предварительного просмотра и потока VideoCapture . ( IEE6F3 )

Исправление ошибок

  • Из камеры 1.2.2 : Исправлена ​​проблема, в которой расширения камеры не работают должным образом, когда прогиар включен на некоторых устройствах, таких как Pixel ( i90aa2 )
  • Исправлена ​​ошибка PreviewView , которая, если приложение обрабатывает саму ориентацию экрана. Предварительный просмотр может искажаться при вращении. Это происходит только на определенных устройствах. Его можно воспроизвести на Pixel A4, Pixel 5 и Pixel 6a. ( I14340 , B/223488673 )

Версия 1.3.0-альфа04

22 февраля 2023 г.

androidx.camera:camera-*:1.3.0-alpha04 выпускается. Версия 1.3.0-Alpha04 содержит эти коммиты.

Новые возможности

Новая функция, поддерживающая ранее неподдерживаемые комбинации поверхности, делясь одним потоком на несколько пользователей.

  • Ранее, при привязке «Предварительный просмотр, видеозапьер, Imageanalysis» на уровне аппаратного обеспечения камеры заполнен и ниже, или привязка «Предварительный просмотр, видеозапью, ImageCapture» на устаревшем уровне аппаратного уровня, камера бросает IllegalArgumentException .
  • Новое поведение состоит в том, что привязки будут работать, не бросая исключения. Вместо этого Camerax использует OpenGL для копирования общего потока как для предварительного просмотра, так и для видеозапьеры.
  • В качестве стоимости копии буфера приложение может увидеть увеличение задержки и энергопотребления.

Изменения API

  • Добавьте API, чтобы преобразовать ImageProxy в Bitmap . Поддерживаемый формат ImageProxy - ImageFormat.YUV_420_888 и PixelFormat.RGBA_8888 . Если формат недействителен, будет брошено IllegalArgumentException . ( IC7110 )
  • Добавьте CoroutineCameraViewfinder , чтобы поддержать настройку ViewFinder, используя подвесные функции в Kotlin. ( I657bc )
  • Добавьте новый общественный конструктор для ViewfinderSurfaceRequest . Это обеспечивает гибкость, когда пользователь не может предоставить CameraCharacteristics . ( IE6549 )

Исправление ошибок

  • Исправлена ​​сбой расширений, который происходит на некоторых устройствах Samsung при слишком быстрое приложение/возобновление приложения ( IACA26 )

Версия 1.3.0-альфа03

25 января 2023 г.

androidx.camera:camera-*:1.3.0-alpha03 выпускается. Версия 1.3.0-alpha03 содержит эти коммиты.

Изменения API

  • Добавлена CameraInfo.getIntrinsicZoomRatio чтобы предоставить информацию о угле просмотра относительно камеры по умолчанию. ( IB300C )
  • Добавлена CameraInfo.getLensFacing чтобы предоставить информацию, обращенную к объективу. Добавлена CameraSelector#LENS_FACING_EXTERNAL в качестве экспериментальной функции для выбора внешних камер. ( ICAF3E )
  • Добавьте #setEffect() в CameraController , который позволяет добавлять эффекты к выходу камеры. ( I1d21f )
  • Добавить метод invalidate() в SurfaceRequest . Поставщик поверхности может уведомить, что ранее предоставленная поверхность больше не является действительной. ( IDC649 )
  • Добавить API ImageProcessor . Этот интерфейс предназначен для инъекции последующих эффектов в трубопровод ImageCapture . ( I575c6 )
  • Добавлен API Recorder.Builder.setAspectRatio() , который может быть объединен с QualitySelector для поддержки большего количества резолюций видео. ( I8a082 )
  • Добавлен Recorder.Builder#setTargetVideoEncodingBitRate чтобы установить целевое видео, кодирующее BitRate и Recorder#getTargetVideoEncodingBitRate чтобы получить целевое видео, кодирующее битрейт. ( I5984d )

Исправление ошибок

  • Фиксированная ImageCapture не удалась, когда нет флэш -единицы, а режим вспышки включен. ( I9e8b4 , b/263391112 )
  • Исправлена ​​проблема развращения изображения JPEG, если написание данных о местоположении EXIF ​​на некоторых устройствах Samsung Android 12. ( IB7086 , B/263747161 , B/263289024 )
  • При настройке Torch/Zoom перед инициализацией камеры, например, вызов CameraController#enableTorch , ожидающее действие кэшируется и отправляется после того, как инициализация собирается. ( I11e92 , b/264157663 )

Версия 1.3.0-альфа02

7 декабря 2022 г.

androidx.camera:camera-*:1.3.0-alpha02 выпускается. Версия 1.3.0-alpha02 содержит эти коммиты.

Изменения API

  • Добавьте новый API для применения эффекта после обработки для предварительного просмотра вывода. ( IC17D5 )
  • Переименованное OutputOptions.getDurationLimit to OutputOptions.getDurationLimitMillis и OutputOptions.setDurationLimit to OutputOptions.setDurationLimitMillis . ( I91f0c )
  • Добавьте класс AudioConfig для обработки настройки, связанной с аудио при записи видео. Аннотация @RequiresPermission перемещается от функций startRecording в AudioConfig , чтобы избежать ненужных запросов разрешений на случаи, когда звук не требуется. ( I28755 )
  • Снимите метаданные, OnVideoSavedCallback , OutputFileOptions и OutputFileResults , которые больше не используются после применения нового API захвата видео. ( I38cd8 )
  • Примените новый API с захватом видео. Методы getVideoCaptureTargetSize и setVideoCaptureTargetSize заменяются на методы getVideoCaptureTargetQuality и setVideoCaptureTargetQuality соответственно, поскольку setTargetResolution больше не поддерживается. ( I2a1d5 )

Исправление ошибок

  • Удалить устаревшего core.VideoCapture . VideoCapture API. ( I531e0 )
  • Исправлена ​​вопрос о том, что обратный вызов onError не вызывается при фотографировании без разрешения на хранение ( I936DB , B/244807669 )
  • Улучшить качество и надежность расширения камеры. Расширения камеры отключены на устройствах Motorola, используя расширения камеры v1.1.0 и старше из -за проблем с поддержкой Боке, захватом изображений и предварительным просмотром. ( Id3ce3 )
  • Исправлена ​​нативная сбоем, когда видео обрезка через ViewPort включен на устаревших устройствах. ( I16B8A , B/251357665 )

Версия 1.3.0-альфа01

9 ноября 2022 г.

androidx.camera:camera-*:1.3.0-alpha01 выпускается. Версия 1.3.0-alpha01 содержит эти коммиты.

Новые возможности

  • Camera-viewfinder была официально опубликована. Camera-viewfinder предоставляет виджет базового видоискателя, который может отображать подачу камеры для Camera2. Пожалуйста, проверьте пример кода .

Изменения API

  • Добавлено OutputOptions.setDurationLimit , чтобы разрешить настройку ограничения продолжительности видео. Запись будет автоматически завершена при превышении указанного ограничения продолжительности. ( I902a0 )
  • Добавить видеозаписи аудиоу ошибки AudioStats.AUDIO_STATE_SOURCE_ERROR . Отправлено, когда настройка источника аудио, настройка исходной сбой или возникает какая -то ошибка. ( I37410 )

Исправление ошибок

  • Добавьте причуд, чтобы позволить некоторым проблематичным устройствам повторно захватить захват один раз при столкновении с перерывами захвата. ( ID4795 )
  • Исправлена PreviewView реализация SurfaceView Проблема черного экрана на ViewPager2 . В рамках исправления PreviewView повторно использует свой SurfaceView если запрошенное разрешение не будет изменено. ( IB3F27 )
  • Поддержка видеопольза (функция Wysiwyg) при использовании ViewPort или CameraController API. ( IFBBA8 , B/201085351 )
  • Исправленное видео, снятое с фронтальной камерой, не работает на Huawei P40 Lite. ( I87c57 , b/250807400 )

Версия 1.2

Версия 1.2.3

24 мая 2023 г.

androidx.camera:camera-*:1.2.3 выпускается. Версия 1.2.3 содержит эти коммиты.

Исправление ошибок

  • Исправлена ​​проблема, где VideoCapture не может работать с фронтальной камерой на некоторых устройствах. Например, на Samsung Galaxy S23 и Xiaomi 2107113SG. ( IBEC7E , B/270656244 )

Версия 1.2.2

22 марта 2023 г.

androidx.camera:camera-*:1.2.2 выпускается. Версия 1.2.2 содержит эти коммиты.

Исправление ошибок

  • Исправлена ​​проблема, в которой расширения камеры не работают должным образом, когда прогиар включен на некоторых устройствах, таких как Pixel ( i90AA2 )

Версия 1.2.1

25 января 2023 г.

androidx.camera:camera-*:1.2.1 выпускается. Версия 1.2.1 содержит эти коммиты.

Исправление ошибок

  • Исправьте проблему развращения изображения JPEG, если написание данных о местоположении EXIF ​​на некоторых устройствах Samsung Android 12. ( B/263289024 )

Версия 1.2.0

7 декабря 2022 г.

androidx.camera:camera-*:1.2.0 выпускается. Версия 1.2.0 содержит эти коммиты.

Важные изменения с версии 1.1.0

  • Новая библиотека-камера-млкит-вид. Легко интегрировать камеру с множеством функций MLKIT, включая сканирование штрих -кода, обнаружение лица, обнаружение текста и т. Д. Добавлено MLKitAnalyzer в качестве новых API.
  • Новый экспериментальный API с нулевым баллом. Оптимизирует конвейер захвата, чтобы иметь лучшую задержку, сохраняя при этом хорошее качество изображения. Когда режим захвата устанавливается на CAPTURE_MODE_ZERO_SHUTTER_LAG , задержка между кнопкой затвора нажимается, и ожидается, что изображение будет минимизирована по сравнению с другими режимами захвата. На устройствах, которые не поддерживают ZERO_SHUTTER_LAG , это будет отступить, чтобы CAPTURE_MODE_MINIMIZE_LATENCY .
  • Установите android.camera.core.VideoCapture .
  • Добавлен setStreamUseCase() в качестве публичного API Camera2Interop .
  • Добавлены требования уровня API для setOutputImageRotationEnabled .
  • Переименованное ImageAnalysis.Analyzer#getTargetResolutionOverride() ImageAnalysis.Analyzer#getDefaultTargetResolution()
  • Добавлен API для установки метаданных местоположения в сохраненное видео.
  • Фиксированная низкая VideoCapture
  • Исправлена ​​проблема с предварительным просмотром Black, которая происходит, когда расширение Bokeh включено на некоторых устройствах Samsung, а пользователь переключает камеры.
  • Исправлено Preview/VideoCapture Samsung J7 Prime (SM-G610M) и J7 (SM-J710MN)) на устройствах API уровня 27.
  • Отключил обходной путь, чтобы перевернуть область AF горизонтально от передних камер на Samsung Android T, так как проблема была решена

Версия 1.2.0-rc01

24 октября 2022 г.

androidx.camera:camera-*:1.2.0-rc01 выпускается. Версия 1.2.0-rc01 содержит эти коммиты.

Изменения API

  • Добавьте API setStreamUseCase для OutputConfiguration . Пользователь может указать вариант использования потока для сеанса потока, перекрывая внутреннюю логику Camerax, чтобы выбрать вариант использования потока, чтобы оптимизировать в соответствии с их потребностями. ( IB1A95 )

Исправление ошибок

  • Исправлено Preview/VideoCapture Samsung J7 Prime (SM-G610M) и J7 (SM-J710MN)) на устройствах API уровня 27. Разрешение 1920x1080 вызывает растяжение изображений Preview/VideoCapture . Добавлен обходной путь, чтобы не выбрать разрешение 1920x1080 для предварительного просмотра или VideoCapture , чтобы избежать проблемы с растянутым изображением. ( I0e04e )
  • Исправлена ​​низкая кадров при использовании вариантов использования VideoCapture и предварительного просмотра с соотношением сторон 16: 9 на некоторых устройствах Huawei. ( If8c88 , b/223643510 )
  • Исправленная сбой камеры, когда SurfaceProvider не установлен. В рамках исправления предварительный просмотр без набора SurfaceProvider теперь не будет настроен на сеанс захвата камеры. ( I99681 )

Версия 1.2.0-бета02

21 сентября 2022 г.

androidx.camera:camera-*:1.2.0-beta02 выпускается. Версия 1.2.0-бета02 содержит эти коммиты.

Изменения API

  • Добавить требование уровня API для setOutputImageRotationEnabled ( i26e3e , b/240993561 )

Исправление ошибок

  • Отключил обходной путь, чтобы перевернуть область AF горизонтально передних камер на Samsung Android T, так как проблема была исправлена. ( I05F69 )
  • Исправлена ​​проблема с предварительным просмотром Black, которая происходит, когда расширение BOKEH включено на некоторых устройствах Samsung, а пользовательские переключают камеры. ( IF6168 )

Версия 1.2.0-бета01

24 августа 2022 г.

androidx.camera:camera-*:1.2.0-beta01 выпускается. Версия 1.2.0-beta01 содержит эти коммиты.

Новые возможности

  • Новая библиотека camera-mlkit-vision . Легко интегрируйте камеру с множеством функций MLKIT, включая сканирование штрих -кода, обнаружение лица, обнаружение текста и т. Д., Пожалуйста, найдите пример кода здесь .
  • Новый экспериментальный API с нулевым баллом . Оптимизирует конвейер захвата, чтобы иметь лучшую задержку, сохраняя при этом хорошее качество изображения. Когда режим захвата устанавливается на Capture_Mode_zero_Shutter_LAG, задержка между кнопкой затвора нажимается, и ожидается, что изображение будет минимизирована по сравнению с другими режимами захвата. На устройствах, которые не поддерживают Zero_shutter_lag, это будет отступить, чтобы Capture_mode_minimize_latency.
  • Сделано ImageAnalysis.Analyzer и MLKitAnalyzer как официальные API.
  • Выставлен API для установки метаданных местоположения в сохраненное видео.
  • Переименовать ImageAnalysis.Analyzer#getTargetResolutionOverride() в ImageAnalysis.Analyzer#getDefaultTargetResolution() .

Исправление ошибок

  • Исправлена ​​Альпа K61V1_BASIC_REF. Проблема захвата изображения. Захваченные изображения JPEG из HAL имеют неверные метаданные Esif. Метаданные ESIF не имеют тега 0xffd9 или 0xffda, чтобы сделать ExifInterface правильно проанализировать атрибуты. Захватывание изображений в формате YUV, а затем сжимает их к выводам JPEG для обходного пути этой проблемы. ( I45abb )

Версия 1.2.0-Alpha04

27 июля 2022 г.

androidx.camera:camera-*:1.2.0-alpha04 выпускается. Версия 1.2.0-Alpha04 содержит эти коммиты.

Изменения API

  • Переименовать ImageAnalysis.Analyzer#getTargetResolutionOverride() в ImageAnalysis.Analyzer#getDefaultTargetResolution() . Поведение также изменяется таким образом, чтобы значение, возвращаемое этим методом, может быть переопределено значением ImageAnalysis#setTargetResolution() . ( If1d36 )
  • Выставлен API для установки метаданных местоположения в сохраненное видео. Объект android.location.Location может быть установлен через новый API androidx.camera.video.OutputOptions.Builder.setLocation(Location) . ( I313A0 , B/204197544 )

Исправление ошибок

  • Исправьте проблему, чтобы сделать картинку с предварительным просмотром Ubind ( IE70B6 , B/235119898 )
  • Фиксированный сбой в Recorder при попытке записаться, пока источник звука недоступен. ( I9f652 )

Версия 1.2.0-Alpha03

29 июня 2022 г.

androidx.camera:camera-*:1.2.0-alpha03 выпускается. Версия 1.2.0-Alpha03 содержит эти коммиты.

Изменения API

  • Удалили экспериментальное аннотацию для ImageAnalysis.Analyzer и MLKitAnalyzer . ( I0ff22 )

Исправление ошибок

  • Добавлена ​​автофокусировка времени по умолчанию 5000 мс, который завершит часть AF с помощью isFocusSuccessful False, если FocusMeteringAction не будет отменена, а часть AF не сходится в продолжительность. ( IBC2E3 )
  • Исправьте проблему, чтобы сделать картинку с предварительным просмотром Unbind ( I1D3A2 , B/235119898 )
  • Включенная реализация расширенного расширения и обновление версии расширений поддержки CAMERAX до 1.2 ( I92256 )

Версия 1.2.0-Alpha02

1 июня 2022 г.

androidx.camera:camera-*:1.2.0-alpha02 выпускается. Версия 1.2.0-Alpha02 содержит эти коммиты.

Новые возможности

  • Выставьте камерукс с нулевым задержкой API как экспериментальный.

Изменения API

  • Добавьте новый режим захвата CAPTURE_MODE_ZERO_SHUTTER_LAG в ImageCapture и добавьте isZslSupported в CameraInfo , чтобы запросить возможность устройства. Режим CAPTURE_MODE_ZERO_SHUTTER_LAG стремится обеспечить минимальную задержку для мгновенного захвата. Он реализован на основе кольцевого буфера, который кэширует результаты промежуточного захвата для последующей переработки, когда пользователь нажимает кнопки для снимков. Если {@link VideoCapture} связан или режим Flash не выключен, или расширение OEM включено, этот режим будет отключен автоматически. ( I9ae74 )
  • Добавить метод ImageAnalysis.getBackgroundExecutor() ( ICC945 )

Исправление ошибок

  • Фиксированный метод обработки ImageCapture отключает факел на зарегистрированных устройствах. ( IB5EB5 , B/228272227 )
  • Исправлена ​​ошибка, в которой AssertionError не обрабатывается при получении характеристики CONTROL_ZOOM_RATIO_RANGE . ( /Ia248a , b /231701345 )

Версия 1.2.0-альфа01

18 мая 2022 г.

androidx.camera:camera-*:1.2.0-alpha01 выпускается. Версия 1.2.0-alpha01 содержит эти коммиты.

Новые возможности

  • Запускается новая библиотека-камера-млкит-вид

Исправление ошибок

  • Фиксированный QualitySelector не может записать видео UHD, когда включена стратегия резервной защиты. Проблема возникает, когда VideoCapture связана с ImageCapture и предварительным просмотром на полном или более высоком устройстве камеры оборудования. Стратегия запасной стратегии QualitySelector VideoCapture вызывает резолюцию FHD. Резолюция UHD фактически поддерживается для этой комбинации вариантов использования и должно быть принято. ( I0e788 , b/230651237 )
  • Исправлено NullPointerException на ImageCapture.takePicture() . ( I92366 , b/230454568 , b/229766155 )
  • Исправлена ​​асинхронная поведение androidx.camera.video.Recorder ( IA8CE8 )

Camera-Camera2, Camera-Core, Camera-Lifecycle, и камера Video Version 1.1.0

Версия 1.1.0

29 июня 2022 г.

androidx.camera:camera-*:1.1.0 выпускается. Версия 1.1.0 содержит эти коммиты.

Важные изменения с 1.0.0

  • Приземленное представление, расширение и библиотеки захвата видео в качестве первой версии RC. Из 1.1.0-beta01 все библиотеки камерных камер будут выравнивать один и тот же номер версии. Это поможет разработчикам гораздо проще отслеживать версии и уменьшить сложность матриц совместимости с большими версиями.
  • Представил новые публичные API и функции, в том числе:
  • Добавьте официальную библиотеку камеры-видео, чтобы поддержать варианты использования видео.
  • Возможность преобразования и вращения YUV в RGB ( ImageAnalysis.Builder.setOutputImageRotationEnabled и setOutputImageFormat )
  • Поддержите режим многогранного режима, позволяя приложениям для камеры возобновить камеру, когда камера прерывается другим приложением, и фокус возвращается.
  • Гарантирует, что Camerax хорошо работает на складных устройствах, исправляя некоторые проблемы предварительного просмотра.
  • Добавлена CameraState , который будет выставлен через Camerainfo.
  • Добавлен API ProcessCameraProvider.getAvailableCameraInfos() , чтобы напрямую извлечь информацию о доступных камерах
  • Выходной формат JPEG для ImageCapture#OnImageCapturedCallback при включении расширений.
  • Добавлен API isFocusMeteringSupported в CameraInfo , который позволяет приложениям проверять, поддерживается ли данное FocusMeteringAction на текущей камере или нет.
  • Появление getResolutionInfo API для предоставления информации о разрешении для предварительного просмотра, ImageCapture и ImageAnalysis .
  • Добавлен новый API ImageCapture.Builder#setJpegQuality чтобы позволить изменять качество сжатия изображения JPEG при снимке.
  • Добавлена CameraSelector#filter в публичный API для фильтрации списка CameraInfos на основе CameraSelector .
  • Добавлена Camera2CameraControl.clearCaptureRequestOptions для очистки существующих параметров запроса захвата.
  • Добавлен экспериментальный API для использования CameraController с внешними библиотеками обработки изображений. например, Mlkit
  • Добавлен экспериментальный API CameraInfo#getCameraSelector() , который возвращает CameraSelector , уникальный для своей камеры
  • Продвигал несколько экспериментальных API до официальных публичных API
  • Заменила аннотация @Experimental с @RequiresOptIn на экспериментальные API. Для вызова экспериментальных API, используйте Androidx.annotation.optin вместо устаревшего Androidx.annotation.experimatal.useexperimental.
  • Продвижение следующих экспериментальных API -интерфейсов к официальным API: CameraXConfig.Builder#setAvailableCamerasLimiter() , CameraXConfig.Builder#setMinimumLoggingLevel() , CameraXconfig.Builder#setSchedulerHandler() CameraXConfig#getAvailableCamerasLimiter() , cameraxConfig CameraXConfig#getMinimumLoggingLevel() , CameraXConfig#getCameraExecutor() , CameraXConfig#getSchedulerHandler() ,
  • @ExperimentalCameraFilter API
  • Экспериментальная экспозиция компенсация API.
  • Продвигал экспериментальный API UseCaseGroup для ядра, камеры-лифуцикл и камеры. Добавлен ViewPort#getLayoutDirection , ViewPort.Builder#setLayoutDirection и ViewPort.Builder#setScaleType для настройки ViewPort.
  • Продвигал ExperimentalUseCaseGroupLifecycle до официальных публичных API.
  • Изменения в существующих API
  • Renamed MediaStoreOutputOptions.getCollection в MediaStoreOutputOptions.getCollectionUri .
  • ActiveRecording была переименована в «запись», чтобы уменьшить условно.
  • Изменено API создателя QualitySelector API на основанный на списке API

Исправление ошибок

  • Исправлена ​​проблема YuvToJpegProcessor EOFException , когда режим расширения включен и установлен режим ImageCapture#CAPTURE_MODE_MAX_QUALITY Режим.
  • Фиксированная конфигурация кодека не удалась из -за записи видео
  • Исправлено растянутое растянутое соотношение аспектов видео при записи в FHD
  • Исправлена ​​аудио/видео из синхронизации после паузы и возобновления на некоторых устройствах
  • Исправлена ​​проблема, в которой запускается вспышка во время tap-to-focus ( startFocusAndMetering ), когда режим вспышки является автоматическим или всегда_он в условиях низкого освещения.

Версия 1.1.0-RC02

1 июня 2022 г.

androidx.camera:camera-*:1.1.0-rc02 выпускается. Версия 1.1.0-RC02 содержит эти коммиты.

Исправление ошибок

  • Исправлено NullPointerException на ImageCapture.takePicture() . ( I92366 , b/230454568 , b/229766155 )
  • Исправлена ​​ошибка, в которой AssertionError не обрабатывается при получении характеристики CONTROL_ZOOM_RATIO_RANGE . ( IA248A , B/231701345 )

Версия 1.1.0-rc01

11 мая 2022 г.

androidx.camera:camera-*:1.1.0-rc01 выпускается. Версия 1.1.0-RC01 содержит эти коммиты.

Новые возможности

  • Отпустите первую версию RC для камеры-видео, вида камеры и камеры.

Исправление ошибок

  • Исправлена ​​проблема, в которой видеокодек не был выпущен, когда VideoCapture<Recorder> была несвязанной, что привело к последующему использованию VideoCapture<Recorder> для сбоя при записи с помощью MediaCodec.CodecException , особенно на устройствах API 21-22. ( IE7F68 )
  • Исправить захваченные изображения CameraExtensionsActivity не удаляются в ImageCaptureTest

Версия 1.1.0-BETA03

6 апреля 2022 г.

androidx.camera:camera-*:1.1.0-beta03 выпускается. Версия 1.1.0-beta03 содержит эти коммиты.

Изменения API

  • Сделано ограниченным конструктором CaptureRequestOptions . ( I261b6 )
  • Добавлен экспериментальный API для использования CameraController с внешними библиотеками обработки изображений. например, mlkit ( i4ea71 )

Исправление ошибок

  • Исправлена ​​проблема, которую предварительный просмотр становится боковым путем в PreviewView , когда активность не перезапускается после вращающихся устройств в нескольких Window. ( I1ea36 , b/223488673 )
  • Исправьте проблему с несколькими Window, которая, когда фокус переходит обратно в приложение, он не может возобновить камеру, когда (1) другое приложение с высоким приоритетом открывает другую камеру (2) Устройство-это устройства Samsung Android 12. ( I7e9f2 )
  • Обходной путь включен для устройств, которые сбоятся при проверке наличия Flash. Эти устройства не будут иметь факела. ( If26a3 , b/216667482 )
  • Исправлена ​​проблема AbstractMethodError , когда приложения используют расширения и включают прогноз. ( I7cbaf , b/222726805 )
  • Force Disable Mode Extension Bokeh на устройстве Motorola Razr 5G, что вызовет проблему с экраном черного предварительного просмотра. ( I35d49 )
  • Исправлено аудио/видео из синхронизации после паузы и резюме на некоторых устройствах Samsung Pre-API 29. ( I64622 , B/202798609 , B/202798572 )
  • Исправлено аудио/видео из синхронизации после паузы и возобновления на Sony G3125. ( I2a1a5 , b/202799148 )
  • Исправлена ​​аварий, когда рекордер столкнулся с InvalidConfigException . Тем не менее, это исправление предотвращает сбою приложения, но не разрешает причину InvalidConfigException . Если Recorder все еще не может быть настроен, приложения получат обратный вызов ошибки, когда он начнет записывать. ( I89C29 , B/213617227 )

Внешний вклад

  • Обновлено: Compose: UI: UI-тест API (UpdateApi) из-за миграции Test-Coroutines-LIB ( i3366d )

Версия 1.1.0-бета02

23 февраля 2022 г.

androidx.camera:camera-*:1.1.0-beta02 выходит. Версия 1.1.0-beta02 содержит эти коммиты.

Изменения API

  • Добавьте возможность указать физический идентификатор камеры через Camera2interop. ( I5aed8 )

Исправление ошибок

  • Исправлена ​​выпуск просмотра растянутого предварительного просмотра на OPPO Find N ( I7D004 )
  • Исправлена ​​проблема Galaxy J7 Prime о том, что предварительный просмотр искажен. ( I4c500 )
  • Используйте совместимый битрейт, чтобы найти видеокодер. ( D969052 )

Версия 1.1.0-бета01

26 января 2022 г.

androidx.camera:camera-*:1.1.0-beta01 выпускается. Версия 1.1.0-beta01 содержит эти коммиты.

Новые возможности

  • Из 1.1.0-beta01 все библиотеки камерных камер будут выравнивать один и тот же номер версии. Это поможет разработчикам гораздо проще отслеживать версии и уменьшить сложность матрицы совместимости с большой версией.

Изменения API

  • Добавлена Camera2CameraControl.clearCaptureRequestOptions для очистки существующих параметров запроса захвата. ( IFA07d )

Исправление ошибок

  • Исправлена ​​сбой при записи видео на некоторых устройствах O (API 26). ( I88fdf , b/212328261 )
  • Исправлена ​​неверная проблема с регионом AF при использовании cameraControl#startFocusAndMetering() на камере с передним объективом в устройствах Samsung ( IFBF59 , B/210548792 )
  • Используйте факел в качестве вспышки на Pixel 3A/Pixel 3A XL, чтобы улучшить скорость и качество захваченного изображения в темноте ( IB12B6 , B/211474332 )
  • Включенные приложения для возобновления камеры, когда камера прерывается другим приоритетом с более высоким приоритетом в режиме мульти-окна, и фокус переключается на приложение. Обратите внимание, что может быть некоторая задержка (от 1 секунды -10 секунд или более) между изменениями фокуса и повторной открытой камерой из -за некоторой проблемы с фреймворком. ( I4d092 )

Версия 1.1.0-Alpha12

15 декабря 2021 г.

androidx.camera:camera-*:1.1.0-alpha12 выпускается. Версия 1.1.0-Alpha12 содержит эти коммиты.

Изменения API

  • Удалили ненужные аннотации @RequiresApi(21) из внутренних классов/интерфейсов. ( I8e286 , b/204917951 )
  • Качественные константы и постоянные стратегии QualitySelector были изменены, чтобы быть представленными классовыми объектами. Например, QualitySelector.QUALITY_HD изменяется на Quality.HD , а QualitySelector.FALLBACK_STRATEGY_LOWER изменяется на экземпляр, возвращаемый FallbackStrategy.lowerQualityOrHigherThan(Quality) . API, используемый для создания QualitySelector был изменен на API на основе списка. Новый API QualitySelector.fromOrderedList(List<Quality>) будет ссылаться на порядок списка качества ввода вместо заказа, созданного QualitySelector.Procedure . Класс QualitySelector.Procedure был удален. ( I43343 )
  • PendingRecording.withEventListener() был удален, и теперь слушатель событий должен быть передан в PendingRecording.start() . Это требование слушателя событий предназначено для того, чтобы поощрять обращение с асинхронными ошибками, о которых сообщается в событии VideoRecordEvent.Finalize . ( I1e71d )
  • ActiveRecording была переименована в Recording для снижения словесности. ( I77ceb )

Исправление ошибок

  • Исправлена ​​проблема, снятая на фотографиях в режиме FLASH_AUTO , недостаточно выявлена ​​в темных условиях на Pixel 3A и Pixel 3A XL ( I13F19 , B/205373142 )
  • Всегда используйте последний размер дисплея, чтобы определить Resolution предварительного просмотра. ( I4a694 )
  • Отфильтрованные камеры, которые не имеют REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE . Камеры с REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE имеют минимальный набор возможностей, которые поддерживает каждое устройство камеры. Камера без REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE может быть камерой для поддержки специальных функций и не поддерживает стандартный цвет цвета. CameraX не может поддержать Preview , ImageCapture , ImageAnalysis или VideoCapture для этих камер. Поэтому эти камеры должны быть отфильтрованы, чтобы предотвратить неправильное использование. ( IB8CDA )
  • CameraSelector#filter больше не бросает IllegalArgumentException , когда набор результатов пуст. ( I27804 )
  • Умная эвристика теперь используется для выбора настройки Encoder на основе указанных OEM -профилей. ( Iaeef0 )
  • Исправлено предварительный просмотр будет иметь черноподобные цветовые линии после начала видеозаписи видео на Pixel1. ( I833C6 , B/205340278 )

Версия 1.1.0-Alpha11

17 ноября 2021 г.

androidx.camera:camera-*:1.1.0-alpha11 выпускается. Версия 1.1.0-Alpha11 содержит эти коммиты.

Изменения API

  • Добавлена ​​камераселектор#фильтр в публичный API для фильтрации списка камерфос на основе камераселектора. ( I105d0 )
  • Добавьте API setoutputimagerotationenabled для конфигурации Imageanalysis. Пользователь может включить вращение для буфера изображения YUV/RGB. Степень вращения представляет собой относительное вращение, рассчитанное на основе вращения датчика и вращения цели, чтобы сохранить изображение заранее.

  • Добавьте API setoutputimagerotationenabled для конфигурации Imageanalysis. Пользователь может включить вращение для буфера изображения YUV/RGB. Степень вращения представляет собой относительное вращение, рассчитанное на основе вращения датчика и вращения цели, чтобы сохранить изображение заранее.

    Добавить getSensorToBufferTransformMatrix api в ImageInfo. Возвращенная матрица представляет собой отображение от координат датчиков в буферные координаты, то есть от значения CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE до (0, 0, image.getWidth, image.getHeight) . Матрица может использоваться для сопоставления координат от одного {usecase} к другому. Например, координаты картирования лица, обнаруженные с помощью Imageanalysis для предварительного просмотра. ( I9ff1e )

  • Добавлен новый API ImageCapture.Builder#setJpegQuality, чтобы позволить изменять качество сжатия изображения JPEG при фотографировании. ( I8dcf4 )

  • Переименован в MediaStoreOutputoPtions.getCollection в MediaStoreOutputoPtions.getCollectionUri. ( I16639 )

Исправление ошибок

  • Исправлена ​​проблема, в которой запускается Flash во время tap-to-focus (startfocusandemering), когда режим Flash является автоматическим или всегда_он в условиях низкого освещения. ( ID4C11 )
  • Отключил HDR+ на Pixel 2 XL / Pixel 3 XL в режиме Minimize_latency, чтобы уменьшить задержку. ( IB6270 , B/203505523 )

Внешний вклад

Версия 1.1.0-Alpha10

13 октября 2021 г.

androidx.camera:camera-*:1.1.0-alpha10 выпускается. Версия 1.1.0-Alpha10 содержит эти коммиты.

Новые возможности

  • Выпустил androidx.camera:camera-video:1.1.0-alpha10 в качестве первой версии альфа для видео официально. Есть несколько известных вопросов , которые будут исправлены в более поздних выпусках.

Изменения API

  • Добавлено @RequiresApi(21) аннотация ко всем классам камер и MinsDkversion от Androidmanifest.xml. Это позволит легко интегрировать Camera-Core в приложения, которые имеют minsdkversion менее 21, но хотят условного использования путей кода, которые полагаются на API 21 и выше. Для любого приложения с Minsdkversion 21 или выше, это изменение не требует действий. ( IE7F2E , B/200599470 )

Исправление ошибок

  • Бросьте инициализацию Exception, чтобы приложение могло изящно обрабатывать AssertionError, произошедший при создании камерахарактеристики. ( IBEC79 )

Версия 1.1.0-Alpha09

29 сентября 2021 г.

androidx.camera:camera-camera2:1.1.0-alpha09 , androidx.camera:camera-core:1.1.0-alpha09 и androidx.camera:camera-lifecycle:1.1.0-alpha09 . Версия 1.1.0-Alpha09 содержит эти коммиты.

Изменения API

  • Экспериментальная аннотация в экспериментации теперь удаляется, когда API больше не экспериментальны. ( I01ef5 )

Исправление ошибок

  • Исправьте проблему, в которой снятые фотографии размыты в режиме MAXIMIZE_QUALITY . ( I173A9 , B/193823892 )
  • Исправлена ​​проблема Samsung Galaxy J5, которую камера застряла после фотографирования с помощью Flash On/Auto в темной среде ( i3aab9 )
  • Когда для ImageCapture необходимо обрезка, сжатие выходного обрезанного изображения с указанным уровнем качества JPEG в соответствии с режимом захвата набора. Если режим захвата - CAPTURE_MODE_MINIMIZE_LATENCY , качество сжатия JPEG будет 95. Если режим захвата будет CAPTURE_MODE_MAXIMIZE_QUALITY , качество сжатия JPEG будет 100. ( IEB37C , B/142856426 )

Версия 1.1.0-Alpha08

18 августа 2021 г.

androidx.camera:camera-camera2:1.1.0-alpha08 , androidx.camera:camera-core:1.1.0-alpha08 и androidx.camera:camera-lifecycle:1.1.0-alpha08 . Версия 1.1.0-Alpha08 содержит эти коммиты.

Новые возможности

  • Добавить API setoutputimageformat для конфигурации анализа изображений. Пользователь может выбрать ImageAnalysis.output_image_format_yuv_420_888 или Imageanalysis.output_image_format_rgba_8888. По умолчанию будет выбран ImageAnalysis.output_image_format_yuv_420_888. ( I7902d )

Изменения API

  • Экспериментальная аннотация ExperimentalUseCaseGrouplifecyclecycle теперь удаляется, когда API больше не экспериментальны. ( I17b85 )

Исправление ошибок

  • Фиксированный экран предварительного просмотра слишком яркий на Huawei P20 Lite. Эта проблема возникает только тогда, когда определенные специальные резолюции предварительного просмотра используются вместе с большим масштабированием. ( Idefce , B/192129158 )
  • Исправлена ​​проблема, которую Flash не работает на некоторых устройствах при настройке режима Flash на flash_mode_on вскоре, за которой следует сфотографировать. ( IEB49B )
  • Исправлена ​​проблема, где предварительный просмотр на некоторое время останется при снимке, если связаны видео, если связаны с видео, ImageCapture и Preview. ( I56197 , B/193864120 )
  • Позволяет Imageanalysis выбирать разрешение, превышающее 1080p. Устройство с ограниченным уровнем может поддерживать разрешение размера записей для Imageanalysis, когда оно связано вместе с предварительным просмотром и изображением. Компромисс-это выбранное разрешение для ImageCapture также должно быть разрешением размера записей. To successfully select a RECORD size resolution for ImageAnalysis, a RECORD size target resolution should be set on both ImageCapture and ImageAnalysis. This indicates that the application clearly understands the trade-off and prefers the ImageAnalysis to have a larger resolution rather than the ImageCapture to have a MAXIMUM resolution. For the definitions of RECORD, MAXIMUM sizes and more details see https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. The RECORD size refers to the camera device's maximum supported recording resolution, as determined by CamcorderProfile. The MAXIMUM size refers to the camera device's maximum output resolution for that format or target from StreamConfigurationMap.getOutputSizes(int). ( I1ee97 , b/192911449 )
  • Add the Exif info to the captured image. ( I01ff0 , b/193342619 )
  • In ImageCapture, return the URI of the saved image if the saving location is File. ( Ib5b49 , b/149241379 )
  • Fixed an issue that captured images with flash is dark on many devices. ( I4e510 )

Version 1.1.0-alpha07

21 июля 2021 г.

androidx.camera:camera-camera2:1.1.0-alpha07 , androidx.camera:camera-core:1.1.0-alpha07 , and androidx.camera:camera-lifecycle:1.1.0-alpha07 are released. Version 1.1.0-alpha07 contains these commits.

Исправление ошибок

  • Fixed a Samsung Galaxy Note 5 issue that camera gets stuck after taking pictures with flash on/auto in dark environment ( If6871 )
  • Fixed YuvToJpegProcessor EOFException issue when extension mode is enabled and ImageCapture#CAPTURE_MODE_MAX_QUALITY mode is set. ( I538bd , b/192017012 )

Version 1.1.0-alpha06

30 июня 2021 г.

androidx.camera:camera-camera2:1.1.0-alpha06 , androidx.camera:camera-core:1.1.0-alpha06 , and androidx.camera:camera-lifecycle:1.1.0-alpha06 are released. Version 1.1.0-alpha06 contains these commits.

Изменения API

  • Promote the experimental exposure compensation APIs for camera-core ( I08ee8 )
  • Added a API isFocusMeteringSupported in CameraInfo which allows applications to check if the given FocusMeteringAction is supported on current camera or not. ( Ib45ae , b/188606490 )
  • Exposed getResolutionInfo API to provide the resolution information for Preview, ImageCapture and ImageAnalysis. ( I2b613 , b/188600718 )
  • Promoted the following experimental APIs to official APIs: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). ( I2ade2 )
  • Exposed the CameraProvider interface to provide access to a set of cameras. ( I1a7b1 )
  • Promote the experimental UseCaseGroup API for camera-core, camera-lifecycle and camera-video. Added ViewPort#getLayoutDirection , ViewPort.Builder#setLayoutDirection and ViewPort.Builder#setScaleType for customizing viewport. ( I7cee8 )

Version 1.1.0-alpha05

2 июня 2021 г.

androidx.camera:camera-camera2:1.1.0-alpha05 , androidx.camera:camera-core:1.1.0-alpha05 , and androidx.camera:camera-lifecycle:1.1.0-alpha05 are released. Version 1.1.0-alpha05 contains these commits.

Изменения API

  • Removed Camera2CameraFilter class. Suggest to select camera by CameraFilter and retrieve CameraCharacteristics or other Camera2 related information through Camera2CameraInfo if needed. ( Ib887c )
  • ExperimentalCameraFilter APIs are now out of experimental stage and become formal APIs. They can be used without annotated OptIn. ( I4bc94 )
  • Added camera state API that's exposed through CameraInfo#getCameraState() . ( Ia86b4 )
  • Added experimental API CameraInfo#getCameraSelector() which returns a CameraSelector unique to its camera ( I77f9f )

Исправление ошибок

  • Fixed the issue that ListenableFuture returned in setZoomRatio and setLinearZoom cannot complete on some android 11 devices ( I716d7 )
  • Speed up Camera switching and reduce the error happen rate of the camera device ( I34c99 )
  • Replaced ExperimentalUseCaseGroupLifecycle with ExperimentalUseCaseGroup. ( I3b2ef , b/159033688 )

Version 1.1.0-alpha04

21 апреля 2021 г.

androidx.camera:camera-camera2:1.1.0-alpha04 , androidx.camera:camera-core:1.1.0-alpha04 , and androidx.camera:camera-lifecycle:1.1.0-alpha04 are released. Version 1.1.0-alpha04 contains these commits.

Исправление ошибок

  • Fixed a memory leak caused by multiple threads concurrently accessing the same collection. The memory leak may cause the Activity or Fragment to be retained by a Preview instance. ( I7b4b8 )
  • Replaced annotation @Experimental with @RequiresOptIn to experimental APIs. For calling experimental APIs, use androidx.annotation.OptIn instead of deprecated androidx.annotation.experimental.UseExperimental . ( Iff226 )
  • Fixed ImageCapture with flash On/Auto takes washed out images on Samsung Galaxy S7. ( I30001 )
  • Added a CameraState API that will be exposed through CameraInfo. ( I75392 )

Версия 1.1.0-альфа03

24 марта 2021 г.

androidx.camera:camera-camera2:1.1.0-alpha03 , androidx.camera:camera-core:1.1.0-alpha03 , and androidx.camera:camera-lifecycle:1.1.0-alpha03 are released. Version 1.1.0-alpha03 contains these commits.

Исправление ошибок

  • Output JPEG format for ImageCapture#OnImageCapturedCallback when Extensions modes is enabled. ( I0d7b1 )
  • Fixed initialization failure on UMIDIGI BISON devices ( I57d9e , b/180818665 )
  • Fixed Samsung A3 stretched preview in PreviewView. ( Iacb30 , b/180121821 )

Версия 1.1.0-альфа02

24 февраля 2021 г.

androidx.camera:camera-camera2:1.1.0-alpha02 , androidx.camera:camera-core:1.1.0-alpha02 , and androidx.camera:camera-lifecycle:1.1.0-alpha02 are released. Version 1.1.0-alpha02 contains these commits.

Изменения API

  • Added an API ProcessCameraProvider.getAvailableCameraInfos() to directly retrieve information about the available cameras, which are either all of the device's cameras, or those selected by the CameraSelector provided in CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector) . ( Ieac08 )

Исправление ошибок

  • CameraX now tries to force open a camera on the initial attempt, this may result in CameraX stealing the camera away from other camera clients when its app has a higher priority. ( Iab069 , b/175820568 )
  • Fixed the Robolectric test failure when setAvailableCamerasLimiter is used in CameraXConfig. ( Ice307 )
  • This change catches the exception when the image queue is maxed out in ImageAnalysis. So instead of crashing, you may notice other use cases being frozen or sluggish. eg frozen/sluggish preview. ( Ic12da , b/175851631 )
  • Fixed ExtensionsErrorListener to report errors when only Preview or ImageCapture is bound. ( I5ae39 )
  • Fixed ImageCapture performance regression by removing the validation of image saved location before taking a picture. After making this change, if the save destination is invalid, it will take longer to get the failure response because it will try to save the image after the photo is taken. ( I1fd4e , b/177061560 )
  • Fixed ImageCapture performance regression with "File" type OutputFileOptions. ( I5164a , b/177061560 )
  • Documentation updated to recommend against using ProcessCameraProvider.configureInstance(...) from library code. ( Ib8a9f )

Версия 1.1.0-альфа01

27 января 2021 г.

androidx.camera:camera-camera2:1.1.0-alpha01 , androidx.camera:camera-core:1.1.0-alpha01 , and androidx.camera:camera-lifecycle:1.1.0-alpha01 are released. Version 1.1.0-alpha01 contains these commits.

Исправление ошибок

  • Workaround included for intermittent corrupt image data in JPEGs on SM-G930T back-facing camera. ( I52001 , b/159831206 )
  • Fixed IllegalArgumentException issue that happened when all preview supported sizes are smaller than 640x480 and display size is larger than 640x480. ( I2a63c , b/150506192 )
  • Resources in libraries with no explicitly declared public resources (ex. via public.xml) are now private by default. ( Ia1dcc , b/170882230 )

Camera-Camera2, Camera-Core, & Camera-Lifecycle Version 1.0.2

Версия 1.0.2

29 сентября 2021 г.

androidx.camera:camera-camera2:1.0.2 , androidx.camera:camera-core:1.0.2 , and androidx.camera:camera-lifecycle:1.0.2 are released. Version 1.0.2 contains these commits.

Исправление ошибок

  • Fix the issue where the captured photos are blurred in MAXIMIZE_QUALITY mode. ( I173a9 , b/193823892 )
  • Fixed a issue that captured image with flash is dark on many devices. ( I4e510 )

Camera-Camera2, Camera-Core, & Camera-Lifecycle Version 1.0.1

Версия 1.0.1

21 июля 2021 г.

androidx.camera:camera-camera2:1.0.1 , androidx.camera:camera-core:1.0.1 , and androidx.camera:camera-lifecycle:1.0.1 are released. Version 1.0.1 contains these commits.

Исправление ошибок

  • Fixed the issue that the ListenableFuture returned in setZoomRatio and setLinearZoom cannot complete on some android 11 devices ( I716d7 )

  • Fixed the issue that the camera gets stuck at closing camera state on some devices and causes black preview. ( I34c99 )

Camera-Camera2, Camera-Core, & Camera-Lifecycle Version 1.0.0

Версия 1.0.0

5 мая 2021 г.

androidx.camera:camera-camera2:1.0.0 , androidx.camera:camera-core:1.0.0 , and androidx.camera:camera-lifecycle:1.0.0 are released. Version 1.0.0 contains these commits.

Major features of 1.0.0

  • CameraX supports Preview , ImageCapture , and Analysis
  • CameraX manages the camera lifecycle within an easy to use API
  • CameraX aims to provide a compatibility layer that fixes many issues in the Android Camera Ecosystem

Известные вопросы

Version 1.0.0-rc05

21 апреля 2021 г.

androidx.camera:camera-camera2:1.0.0-rc05 , androidx.camera:camera-core:1.0.0-rc05 , and androidx.camera:camera-lifecycle:1.0.0-rc05 are released. Version 1.0.0-rc05 contains these commits.

Исправление ошибок

  • Fixed ImageCapture with flash On/Auto takes washed out images on Samsung Galaxy S7. ( I30001 )

Версия 1.0.0-rc04

24 марта 2021 г.

androidx.camera:camera-camera2:1.0.0-rc04 , androidx.camera:camera-core:1.0.0-rc04 , and androidx.camera:camera-lifecycle:1.0.0-rc04 are released. Version 1.0.0-rc04 contains these commits.

Исправление ошибок

Version 1.0.0-rc03

24 февраля 2021 г.

androidx.camera:camera-camera2:1.0.0-rc03 , androidx.camera:camera-core:1.0.0-rc03 , and androidx.camera:camera-lifecycle:1.0.0-rc03 are released. Version 1.0.0-rc03 contains these commits.

Исправление ошибок

  • Fix format error in the document of ProcessCameraProvider#getInstance
  • Fixed the Robolectric test failure when setAvailableCamerasLimiter is used in CameraXConfig.
  • Fixed ImageCapture performance regression by removing the validation of image saved location before taking a picture. After making this change, if the save destination is invalid, it will take longer to get the failure response because it will try to save the image after the photo is taken
  • This change catches the exception when the image queue is maxed out in ImageAnalysis. So instead of crash, you may notice other use cases being frozen or sluggish. eg frozen/sluggish preview.
  • Workaround included for intermittent corrupt image data in JPEGs on SM-G930T back-facing camera. ( I52001 , b/159831206 )
  • This change catches the exception when the image queue is maxed out in ImageAnalysis. So instead of crashing, you may notice other use cases being frozen or sluggish. eg frozen/sluggish preview. ( Ic12da , b/175851631 )
  • Fixed the Robolectric test failure when setAvailableCamerasLimiter is used in CameraXConfig. ( Ice307 )
  • Fixed ImageCapture performance regression by removing the validation of image saved location before taking a picture. After making this change, if the save destination is invalid, it will take longer to get the failure response because it will try to save the image after the photo is taken. ( I1fd4e , b/177061560 )
  • Fixed ImageCapture performance regression with "File" type OutputFileOptions. ( I5164a , b/177061560 )

Version 1.0.0-rc02

27 января 2021 г.

androidx.camera:camera-camera2:1.0.0-rc02 , androidx.camera:camera-core:1.0.0-rc02 , and androidx.camera:camera-lifecycle:1.0.0-rc02 are released. Version 1.0.0-rc02 contains these commits.

Исправление ошибок

  • Fixed IllegalArgumentException issue happened when all preview supported sizes are smaller than 640x480 and display size is larger than 640x480. ( b/150506192 )
  • Limit number of camera reopen attempts. While attempting to recover from certains issues when opening the camera, CameraX will no longer attempt to reopen the camera indefinitely, instead it will stop after retrying for 10 seconds. I435d2

  • Fixed IllegalArgumentException issue that happened when all preview supported sizes are smaller than 640x480 and display size is larger than 640x480. ( I2a63c , b/150506192 )

Version 1.0.0-rc01

16 декабря 2020 г.

androidx.camera:camera-camera2:1.0.0-rc01 , androidx.camera:camera-core:1.0.0-rc01 , and androidx.camera:camera-lifecycle:1.0.0-rc01 are released. Version 1.0.0-rc01 contains these commits.

Изменения API

  • Changed CameraFilter and Camera2Filter to take in CameraInfo. ( I6883d )
  • Added experimental class Camera2CameraControl to allow interoperating with Camera2 APIs dynamically. ( I45cf3 )
  • Renamed Camera2CameraInfo#fromCameraInfo to #from. ( Ia2bd6 )
  • Added an experimental setAvailableCamerasLimiter API to CameraXConfig to allow apps to optimize the initialization latency by avoiding initializing unused cameras. ( I6cf88 )
  • Added experimental method CameraXConfig.Builder#setMinimumLoggingLevel() to allow setting a minimum logging level for CameraX logs. When not set, it defaults to Log#DEBUG . ( Ic3245 )

Исправление ошибок

  • Workaround included for intermittent corrupt image data in JPEGs on SM-G930V back-facing camera. ( I5aca5 , b/159831206 )
  • Fixed the issue that taking pictures doesn't receive results when flash is always/on and the environment is dark on Samsung SM-A716 devices. ( If98b2 , b/172036589 )
  • Fixed the issue that the Preview cannot be stopped by calling Preview.setSurfaceProvider(null) . ( I3ac18 )
  • Fixed orientation issue when capturing 4:3 images on some devices. ( I0e3fb , b/171492111 )

Camera Camera2, Core, & Lifecycle Version 1.0.0-beta12

11 ноября 2020 г.

androidx.camera:camera-camera2:1.0.0-beta12 , androidx.camera:camera-core:1.0.0-beta12 , and androidx.camera:camera-lifecycle:1.0.0-beta12 are released. Version 1.0.0-beta12 contains these commits.

Исправление ошибок

  • Disabled auto flash on Samsung A3 devices to fix the crash when taking a photo with auto flash AE mode on Samsung A3 devices. ( Ia5fe3 , b/157535165 )
  • Fixed an issue where the preview was stretched on Nexus 4 devices running Android L (API levels 21 and 22). ( I4d407 , b/158749159 )
  • OnImageCapturedCallback#onCaptureSuccess base class implementation no longer closes the image. This is for preventing unexpected behavior to developers. Developers should not rely on super.onCaptureSuccess to close the image. ( Ifbf9c )
  • The androidx variant of the Experimental annotation has been deprecated to provide parity with Kotlin. It has been replaced by the RequiresOptIn annotation, and the Java-facing linter has been updated to support both the new Kotlin annotation and the new androidx variant. ( I52495 , b/151331381 )

Camera-Camera2 Version 1.0.0-beta11

14 октября 2020 г.

androidx.camera:camera-camera2:1.0.0-beta11 is released. Version 1.0.0-beta11 contains these commits.

Новые возможности

  • Supports android 11 CONTROL_ZOOM_RATIO API for zoom on android 11 or later devices which contains valid CONTROL_ZOOM_RATIO_RANGE . ( I62cc6 )

Исправление ошибок

  • Fixed the NumberFormatException issue happened when the camera Id is a non-integer camera Id. ( Ib2228 )
  • Improved the latency of CameraX initialization and bindToLifecycle ( I61dc5 )
  • Creation of UseCases do not require initialization of CameraX to complete. All implementation specific configurations are set on UseCase once it is attached to a Camera instance which for the public API is ProcessCameraProvider.bindToLifecycle() . ( Ia5411 )
  • <UseCase>.getTargetRotation() will return Surface.ROTATION_0 if called before being attached to a Camera instance unless a targetRotation has been set on the Builder or UseCase. ( I80fcd )

Camera-Core Version 1.0.0-beta11

14 октября 2020 г.

androidx.camera:camera-core:1.0.0-beta11 is released. Version 1.0.0-beta11 contains these commits.

New Features - Supports android 11 CONTROL_ZOOM_RATIO API for zoom on android 11 or later devices which contains valid CONTROL_ZOOM_RATIO_RANGE . ( I62cc6 )

Исправление ошибок

  • Fixed the NumberFormatException issue happened when the camera Id is a non-integer camera Id. ( Ib2228 )
  • Creation of UseCases do not require initialization of CameraX to complete. All implementation specific configurations are set on UseCase once it is attached to a Camera instance which for the public API is ProcessCameraProvider.bindToLifecycle() . ( Ia5411 )
  • <UseCase>.getTargetRotation() will return Surface.ROTATION_0 if called before being attached to a Camera instance unless a targetRotation has been set on the Builder or UseCase. ( I80fcd )

Camera-Core Version 1.0.0-beta10

23 сентября 2020 г.

androidx.camera:camera-core:1.0.0-beta10 is released. Version 1.0.0-beta10 contains these commits.

Исправление ошибок

  • Fix bug in validating file save destination for image capture ( I8c565 , b/167697553 )

Camera-Camera2 Version 1.0.0-beta10

23 сентября 2020 г.

androidx.camera:camera-camera2:1.0.0-beta10 is released. Version 1.0.0-beta10 contains these commits.

Исправление ошибок

Camera-Camera2 Version 1.0.0-beta09

16 сентября 2020 г.

androidx.camera:camera-camera2:1.0.0-beta09 is released. Version 1.0.0-beta09 contains these commits.

Изменения API

  • Instead of providing static methods, Camera2CameraInfo takes in a CameraInfo instance when created to retrieve Camera2 related information from. ( I5b844 )

Исправление ошибок

  • Fixed target aspect ratio issue on tablet devices. A 16:9 size should be selected when the target aspect ratio is set as AspectRatio.RATIO_16_9 . ( Ib7fcf , b/151969438 )
  • Throw an InitializationException to make the app be able to gracefully handle the AssertionError happened when creating CameraCharacteristics. ( I89c8c , b/160524721 )
  • Added experimental interfaces for ExposureCompensation ( If96c7 )

Версия ядра камеры 1.0.0-beta09

16 сентября 2020 г.

androidx.camera:camera-core:1.0.0-beta09 is released. Version 1.0.0-beta09 contains these commits.

Изменения API

  • fixed the bug where viewport is marked as non-null on UseCaseGroup. Developers should be able to create a viewport without setting a viewport. ( Ie3d2e )
  • Added experimental interfaces for ExposureCompensation ( If96c7 )
  • Allow arbitrary target rotation for Preview. The transformation info is calculated and returned to user on-the-fly via a new TranformationInfoListener callback. ( I21470 )

Исправление ошибок

  • Fixed the issue that flash on some devices would not turn off. It happens when the flash mode is set to FLASH_MODE_ON to take a picture, and is changed to FLASH_MODE_OFF when the flash is fired. The symptom is like torch mode enabled. ( Ib4451 , b/162568128 )
  • Forced PreviewView to use TextureView if extension effect is enabled and the vendor library implementation needs to do a special process on the output surface. ( I0c3cc )
  • Fixed the activity/fragment leak when an activity/fragment context is passed to ProcessCameraProvider.getInstance(Context) .

Известные вопросы

  • When ViewPort is set, the crop rect of ImageCapture might be incorrect on devices who rotate the image buffer in HAL. This will be fixed in the next release.

Камера-Камера2 Версия 1.0.0-beta08

19 августа 2020 г.

androidx.camera:camera-camera2:1.0.0-beta08 is released. Version 1.0.0-beta08 contains these commits.

Исправление ошибок

  • Optimized bindToLifecycle to run quickly on the main thread. ( I1d57e )
  • DisplayOrientedMeteringPointFactory takes in a CameraInfo instance instead of a CameraSelector so there is a direct mapping to which Camera the factory will be generating points for. All classes which use DisplayOrientedMeteringPointFactory also take in a CameraInfo instance instead of CameraSelector. ( I400c1 )
  • Fixed auto-resolution aspect ratio size grouping issue that a 16:9 mod16 size (864x480) is selected when the target resolution setting is 2016x1080 and there is another 1920x1080 16:9 size supported. ( I53167 , b/159363774 )
  • Fix the CameraControl issue where it's unable to work by a race condition ( I2279f , b/152333890 , b/160714166 )

Версия ядра камеры 1.0.0-beta08

19 августа 2020 г.

androidx.camera:camera-core:1.0.0-beta08 is released. Version 1.0.0-beta08 contains these commits.

Изменения API

  • DisplayOrientedMeteringPointFactory takes in a CameraInfo instance instead of a CameraSelector so there is a direct mapping to which Camera the factory will be generating points for. All classes which use DisplayOrientedMeteringPointFactory also take in a CameraInfo instance instead of CameraSelector . ( I400c1 )

Исправление ошибок

  • For image capture, overwrite the flip horizontal flag in metadata based on camera direction. ( I28499 )
  • Initialization should no longer crash when using a Context that does not return an Application object from Context.getApplicationContext() . ( I3d3c9 , b/160817073 )

Camera-Camera2 Version 1.0.0-beta07

22 июля 2020 г.

androidx.camera:camera-camera2:1.0.0-beta07 is released. Version 1.0.0-beta07 contains these commits.

Исправление ошибок

  • Fixed the issue that the preview is stretched on android 5.0 legacy device. ( I0c03a )
  • Excluded some JPEG supported sizes that will cause WYSIWYG issue on some devices. ( Ib5128 )

Версия ядра камеры 1.0.0-beta07

22 июля 2020 г.

androidx.camera:camera-core:1.0.0-beta07 is released. Version 1.0.0-beta07 contains these commits.

Изменения API

  • Merge FIT_CENTER , FIT_START , and FIT_END fit style with FIT . FIT means that the returned crop rect will be the max possible sensor rect. ( Ia73c3 )
  • Preview's crop rect is configured by viewport. Only the area covered by the crop rect should be visible to end users. ( I142a4 )

Исправление ошибок

  • Fixed the issue that the preview is stretched on android 5.0 legacy device. ( I0c03a )
  • Fixed the ConcurrentModificationException exception issue when unbinding use cases. ( I371c0 )

Камера-Камера2 Версия 1.0.0-beta06

24 июня 2020 г.

androidx.camera:camera-camera2:1.0.0-beta06 is released. Version 1.0.0-beta06 contains these commits.

Изменения API

  • Added experimental interfaces for filtering cameras by camera ID and CameraCharacteristics. ( I28f61 )

Исправление ошибок

  • Fixed the issue where startFocusAndMetering fails to focus successfully on Samsung Galaxy S7. ( If3be7 , b/159039233 )
  • Fix the camera can't be closed after quit the app. ( I7a7b3 )
  • Fix repeated camera switching breaks preview when using SurfaceView implementation of PreviewView ( I920ce )
  • CameraControl#startFocusAndMetering will fail if none of the specified MeteringPoint can generate valid metering rectangles. ( Id53ce )

Camera-Core Version 1.0.0-beta06

24 июня 2020 г.

androidx.camera:camera-core:1.0.0-beta06 is released. Version 1.0.0-beta06 contains these commits.

Изменения API

  • Added experimental interfaces for filtering cameras by camera ID and CameraCharacteristics. ( I28f61 )

Исправление ошибок

  • CameraX can now be configured with ProcessCameraProvider#configureInstance() before calling ProcessCameraProvider#getInstance() . This allows for customization of the CameraXConfig without requiring implementing CameraXConfig.Provider in the app's Application class. ( Ia1a8d )
  • CameraControl#startFocusAndMetering will fail if none of the specified MeteringPoint can generate valid metering rectangles. ( Id53ce )

Camera-Camera2 Version 1.0.0-beta05

10 июня 2020 г.

androidx.camera:camera-camera2:1.0.0-beta05 is released. Version 1.0.0-beta05 contains these commits.

Исправление ошибок

  • Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An InitializationException contains a CameraUnavailableException that will be set to the ListenableFuture of the intialization result instead of crashing the application. ( I9909a , b/149413835 )
  • Fixed the crash when calling startFocusAndMetering on devices that CONTROL_AF_STATE is null. ( Ife55e , b/157084254 )

Camera-Core Version 1.0.0-beta05

10 июня 2020 г.

androidx.camera:camera-core:1.0.0-beta05 is released. Version 1.0.0-beta05 contains these commits.

Изменения API

  • Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An InitializationException contains a CameraUnavailableException will be set to the ListenableFuture of the intialization result instead of crashing the application. ( I9909a , b/149413835 )

Исправление ошибок

  • Updated javadocs of setTargetResolution and setTargetRotation . ( Iae16f )

Camera-Camera2 Version 1.0.0-beta04

27 мая 2020 г.

androidx.camera:camera-camera2:1.0.0-beta04 is released. Version 1.0.0-beta04 contains these commits.

Исправление ошибок

  • Allowed applications to set any camera2 capture request parameters via Camera2Interop without causing a crash. Please note that if there are issues that arise as a result of overriding parameters. Stability and behaviour are not guaranteed when overriding parameters using Camera2Interop. ( Ibe5a1 , b/149103700 )
  • Auto-initialization is fixed when using an app on a device that is using a pseudo-locale. ( I3bef3 , b/154767663 )
  • Converted error log related to detached use case to a debug log on Camera2CameraImpl. ( I1a565 , b/154422490 )
  • Fixed issue where image taken is too dark sometimes even though flash is fired. ( I5d9fa , b/149729613 )
  • Fix bug where buffer in ImageProxy from ImageCapture was not rewound ( I0c455 , b/153249512 )
  • Fixed the issues where binding ImageCapture only: (1) Failed to take photos with MAX_QUALITY; (2) Generated bad Image quality because auto exposure does not work. ( I17782 , b/145326998 )
  • Improved reliability of re-opening camera when CameraX is disconnected by another process or codepath stealing the camera ( I1fbc3 , b/153714651 )

Camera-Core Version 1.0.0-beta04

27 мая 2020 г.

androidx.camera:camera-core:1.0.0-beta04 is released. Version 1.0.0-beta04 contains these commits.

Изменения API

  • Adds an experimental API, CameraXConfig.Builder#setSchedulerHandler() for setting the handler used internally by the CameraX camera stack. This new API along with CameraXConfig.Builder#setCameraExecutor() should allow full control over the threads being used by the CameraX camera stack. ( I7bf32 , b/121160431 )

Исправление ошибок

  • Fixes crash in ImageAnalysis where the ImageProxy is accessed after the ImageReaderProxy has been closed. This also makes it so that all ImageProxy received by the Analyzer must be closed before the ImageReaderProxy will be closed. ( I4b299 , b/145956416 , b/154155377 , b/156357269 )
  • Removed the CameraInfo parameter from PreviewView#createSurfaceProvider() , PreviewView now internally retrieves it from the SurfaceRequest . ( If18f0 , b/154652477 )
  • Auto-initialization is fixed when using an app on a device that is using a pseudo-locale. ( I3bef3 , b/154767663 )
  • Fixed issue where image taken is too dark sometimes even though flash is fired. ( I5d9fa , b/149729613 )
  • Fix issue with ImageAnalysis where multiple calls to setAnalyzer/clearAnalyzer resulted in the analyzer not receiving images to analyze. ( I6169f , b/151605317 , b/153514544 )
  • Fix bug where buffer in ImageProxy from ImageCapture was not rewound ( I0c455 , b/153249512 )
  • Fixed the issue that the first camera in the supported list from CameraManager is not always selected to use. ( I4c624 , b/153418028 )
  • Fixed intermittent crash caused by setting Preview.SurfaceProvider not releasing the previously requested surface. “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation” ( I8e4e7 , b/155936225 )

Camera-Camera2 Version 1.0.0-beta03

April 15, 2020

androidx.camera:camera-camera2:1.0.0-beta03 is released. Version 1.0.0-beta03 contains these commits.

Исправление ошибок

  • Fixes to support the release of camera-core

Camera-Core Version 1.0.0-beta03

April 15, 2020

androidx.camera:camera-core:1.0.0-beta03 is released. Version 1.0.0-beta03 contains these commits.

Исправление ошибок

  • Fixed regression from beta03 where calling bindToLifecycle() with zero UseCase s would cause a thrown exception. This prevented retrieval of a Camera without binding a UseCase .

Camera-Camera2 Version 1.0.0-beta02

1 апреля 2020 г.

androidx.camera:camera-camera2:1.0.0-beta02 is released. Version 1.0.0-beta02 contains these commits.

Исправление ошибок

  • Fixed the ImageInfo.getRotationDegrees() from the ImageProxy produced by ImageCapture so that it matches the EXIF orientation rotational value. ( Id4281 , b/150802561 )
  • Explicit ordering of CameraX dependencies within build.gradle is no longer required to use the default CameraX/Camera2 implementation. For cases where declaring strict dependencies is required, all CameraX dependencies can now be included in the build file. ( I46e88 )
  • Fixed the IllegalArgumentException issue happening on the devices where the display size is smaller than 640x480. ( Ife3f2 , b/150506192 )
  • Fixed bindToLifecycle so that it only modifies the UseCase if it successfully binds. Previously when calling bindToLifecycle in order to do resolution calculations the UseCase is updated. Now it no longer needs to update the UseCase to do the calculations ( I78d9e )

Camera-Core Version 1.0.0-beta02

1 апреля 2020 г.

androidx.camera:camera-core:1.0.0-beta02 is released. Version 1.0.0-beta02 contains these commits.

Исправление ошибок

  • Fixed the ImageInfo.getRotationDegrees() from the ImageProxy produced by ImageCapture so that it matches the EXIF orientation rotational value. ( Id4281 , b/150802561 )
  • Fixed bindToLifecycle so that it only modifies the UseCase if it successfully binds. Previously when calling bindToLifecycle in order to do resolution calculations the UseCase is updated. Now it no longer needs to update the UseCase to do the calculations ( I78d9e )
  • Fixed an issue where the Preview use case's capture session wasn't being updated when the preview surface changed after calling Preview.setSurfaceProvider() more than once.

Camera-Camera2 Version 1.0.0-beta01

26 февраля 2020 г.

androidx.camera:camera-camera2:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

Исправление ошибок

  • Renamed SurfaceRequest.setSurface(Surface) to SurfaceRequest.provideSurface(Surface) , and SurfaceRequest.setWillNotComplete() to SurfaceRequest.willNotProvideSurface() . ( I224fe )
  • Fixed an issue with the aspect ratio of a saved image not being correct after changing the target rotation value using ImageCapture.setTargetRotation() . ( I474ea , b/148763432 )
  • Fixed initialization of app variants with ProGuard enabled by preserving the flag that sets the default CameraXConfig provider. ( I2d6c1 )

Camera-Core Version 1.0.0-beta01

26 февраля 2020 г.

androidx.camera:camera-core:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

Изменения API

  • Replaced the ListenableFuture on SurfaceRequest.provideSurface() with an Executor and Callback . This simplifies the API by no longer requiring handling of exceptions on provideSurface() and enforces that the provideSurface() callback cannot be cancelled. This is to prevent crashes on older devices caused by prematurely releasing surfaces. The SurfaceRequest.Result object is now used for tracking how a SurfaceRequest uses the provided Surface . ( I7854b )
  • Renamed SurfaceRequest.setSurface(Surface) to SurfaceRequest.provideSurface(Surface) and SurfaceRequest.setWillNotComplete() to SurfaceRequest.willNotProvideSurface() . ( I224fe )

Исправление ошибок

  • Fixed an issue with the aspect ratio of a saved image not being correct after changing the target rotation value using ImageCapture.setTargetRotation() . ( I474ea , b/148763432 )
  • Fixed initialization of app variants with ProGuard enabled by preserving the flag that sets the default CameraXConfig provider. ( I2d6c1 )
  • Updated documentation for flash mode APIs to include possible values. ( I4a3ec )

Camera-Camera2 Version 1.0.0-alpha10

10 февраля 2020 г.

androidx.camera:camera-camera2:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits .

Исправление ошибок

  • Improved stability on INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY devices by ensuring Surface s are only retained for duration of use by Camera2. ( I9dac2 )
  • Fixed underexposed preview issue on LEGACY devices by adjusting CONTROL_AE_TARGET_FPS_RANGE properly. ( 1224638 )

Camera-Core Version 1.0.0-alpha10

10 февраля 2020 г.

androidx.camera:camera-core:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits .

Изменения API

  • Updated ImageCapture to allow saving images to Uri and OutputStream . Combined overloaded takePicture methods into one. Updated test app to use Uri as the canonical example. ( Ia3bec )
  • Preview.PreviewSurfaceProvider has been renamed to Preview.SurfaceProvider . SurfaceProvider s no longer require developers to create their own ListenableFuture , and providing a Surface is now done through a new SurfaceRequest object. The Preview.getPreviewSurfaceProvider() method has been removed due to its potential for misuse when Preview is paired with other classes such as PreviewView . ( I20105 )
  • Added getTargetRotation() and getTargetName() to Preview . ( Iceee7 )
  • Added getTargetRotation() , getBackpressureStrategy() , and getImageQueueDepth() in ImageAnalysis . ( I9d6d9 )
  • Added getTargetRotation() and getCaptureMode() in ImageCapture() ( I5bc17 )
  • The arguments that were previously passed in ImageCapture.OnImageSavedCallback.onError() and ImageCapture.OnImageCapturedCallback.onError() have now been replaced by a single argument ImageCaptureException , which still contains all the information that was previously passed.
  • The file argument previously passed in ImageCapture.OnImageSavedCallback.onImageSaved() has been removed. ( I750d2 )
  • Preview and ImageCapture classes are now marked final. ( I2500b )
  • API updated, with getZoomRatio() , getMaxZoomRatio() , getMinZoomRatio() , and getLinearZoom() methods of CameraInfo merging into getZoomState() which returns a ZoomState instance. ( Ib19fe )
  • Removed API fields OPTION_TARGET_CLASS and OPTION_TARGET_NAME from CameraXConfig as they are intended for internal library use only. Removed constructor for CameraXConfig.Builder . ( I96912 )
  • Removed requirement that app must extend Application in order to initialize CameraX. CameraX will now be initialized with a default Camera2 configuration as long as the camera-camera2 artifact is included in the application's build.gradle . ( I58ff5 ) ( b/146923574 )

Camera-Camera2 Version 1.0.0-alpha09

22 января 2020 г.

androidx.camera:camera-camera2:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits .

Изменения API

  • Add camera2 interop path for extracting a Camera2 camera ID. You can extract the camera ID from CameraInfo using Camera2CameraInfo.extractCameraId() . The following code sample shows how to use this:

    Camera camera = provider.bindToLifecycle(...);
    String cameraId =
        Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
    

    The Camera2CameraInfo class requires the ExperimentalCamera2Interop markerClass.

Camera-Core Version 1.0.0-alpha09

22 января 2020 г.

androidx.camera:camera-core:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits .

Изменения API

  • The SurfaceOrientedMeteringPointFactory parameter useCaseForSurface was renamed to useCaseForAspectRatio and the reference documentation was expanded.
  • FocusMeteringAction.Builder.from() methods are replaced by the constructors FocusMeteringAction.Builder() .
  • Removed DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float) . Applications should use the constructor that takes a Display parameter and pass in the current display.
  • Javadoc improvements for focus and metering APIs regarding MeteringMode and 3A Flags, and usage of Display parameter.
  • Expanded the reference documentation for setZoomRatio and setLinearZoom .

Исправление ошибок

  • Fixed issues when closing then opening cameras resulting in "Precondition" check failure.
  • Fixed a ConcurrentModificationException that could occur when using torch and zoom APIs.
  • Fixed issue to now select resolutions closer to requested resolution when a mod16 dimensions size is available.
  • startFocusMetering and cancelFocusMetering APIs now behave as documented, with correct timing and potentially returning errors when they occur.
  • Fixed issue when a specific target resolution was requested with a crop aspect ratio on a device that doesn't support such sizes. Now, a non-cropped size of sufficient resolution to bound the original request will be selected when available.

Camera-Camera2 Version 1.0.0-alpha08

18 декабря 2019 г.

androidx.camera:camera-camera2:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits .

Известные вопросы

  • Not all Camera2 capture request options work when using the Camera2 interop. If the requested option is not supported, the session fails to start and an error like this may occur: 09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination

Исправление ошибок

  • Fixed an issue in which a preview black screen occurred after rotating or switching the camera for API Levels 21 and 22.

Изменения API

  • Experimental : Added a camera2 interop path for extracting the Camera ID.

Camera-Core Version 1.0.0-alpha08

18 декабря 2019 г.

androidx.camera:camera-core:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits .

Известные вопросы

  • Apps using the PreviewView or CameraView may have the wrong aspect ratio preview. This happens after pause or resume on some FULL devices, such as the Pixel2.

Исправление ошибок

  • Updated the documentation for FocusMeteringAction and CameraControl .
  • Implemented TorchControl for enableTorch() and getTorchState() .

Изменения API

  • Hid IntDefs and moved IntDef constants outside of the IntDef definition.
  • Moved rotationDegrees from class OnImageCaptureCallback to ImageInfo .
  • Moved rotationDegrees from class Analyzer to ImageInfo .

Камера-Камера2 Версия 1.0.0-alpha07

4 декабря 2019 г.

androidx.camera:camera-camera2:1.0.0-alpha07 is released. Version 1.0.0-alpha07 of camera-camera2 contains these commits

  • Camera2Config is now available for use with initializing and configuring a Camera2-based implementation for CameraX. More details on how to use this in initialization are in the camera-core section of the release notes.
  • The camera2 interop functionally is now marked as experimental and moved to a separate package, androidx.camera.camera2.interop.

Версия ядра камеры 1.0.0-alpha07

4 декабря 2019 г.

androidx.camera:camera-core:1.0.0-alpha07 is released. Version 1.0.0-alpha07 of camera-core contains these commits

Note that there are some substantial changes in this Alpha release as we prepare for Beta. We recommend you review the changes and share any feedback you may have on the CameraX Google group . For those developers using CameraX in apps that are on the Play store, we recommend waiting for the formal Beta release before upgrading the library within your applications.

Изменения API

  • Important : CameraX initialization has changed. Applications should implement CameraXConfig.Provider , and use the default Camera2Config provided by androidx.camera.camera2 . A typical usage is:

    import androidx.camera.camera2.Camera2Config
    import androidx.camera.core.CameraXConfig
    
    public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
        override fun getCameraXConfig(): CameraXConfig {
                return Camera2Config.defaultConfig(this)
        }
    }
    
  • The CameraX class has been removed. The bindToLifecycle() , unbind() , unbindAll() , isBound() , and hasCamera() previously provided by the CameraX class call are now available via the ProcessCameraProvider .

  • A per-process instance of ProcessCameraProvider is obtained asynchronously using the static method ProcessCameraProvider.getInstance() , which returns a listenable future, which provides the ProcessCameraProvider on completion. Here it is shown in onCreate() for a typical usage. You can place calls to getInstance() later in the activity's lifecycle to defer initialization latency to a later time (such as when a user action opens a camera UI).

    import androidx.camera.lifecycle.ProcessCameraProvider
    import com.google.common.util.concurrent.ListenableFuture
    
    class MainActivity : AppCompatActivity() {
       private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider>
       override fun onCreate(savedInstanceState: Bundle?) {
           cameraProviderFuture = ProcessCameraProvider.getInstance(this);
      }
    
  • A listener can be added to the ListenableFuture returned by getInstance() . This ensures the camera provider can be retrieved from the Future without blocking on Future.get()

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • Camera selection is now done by a camera selector, instead of per-use case

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • CameraProvider.bindToLifecycle is given the lifecycle owner, the camera selector, and use cases, which are then bound to the given lifecycle owner and run for the selected camera.

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • Use case “Config” classes are removed. Instead, build use cases directly, setting options on each use case builder. Например:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • The Preview use case has been updated to accept a surface created and managed by the application to ensure Android best practices. It is highly recommended to use the PreviewView view class provided in the camera-view package.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • See documentation for attaching an app-managed surface. In these cases the app manages the lifecycle of the surface.

  • Important : The ImageAnalysis Analyzer method implementation must call image.close() on received images when finished using them. Otherwise, new images may not be received or the camera may stall, depending on back pressure setting. Refer to the reference docs for details.

  • ImageAnalysis ImageReaderMode is now changed to a backpressure strategy intdef .

  • ImageProxy.getImage() is marked as experimental. Applications should annotate usage for example via @androidx.camera.core.ExperimentalGetImage

  • The UIThread annotation requirement for the Analyzer has been removed.

  • The ImageAnalysis.clearAnalyzer() function is added for removing an analyzer.

  • Listeners with more than 1 method have been renamed to Callback:

    • ImageCapture.OnImageCapturedListener is now ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener is now ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener is now VideoCapture.OnVideoSavedCallback
  • Enums have changed to IntDef

  • Zoom controls have been added:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • CameraInfo.hasFlashUnit() is added to determine if flash/torch hardware is present.

  • CameraInfo.isFlashAvailable() has been removed. Torch overrides flash functionality. More detail is included in the reference documentation .

  • ImageCapture.Metadata fields are replaced by get/set/is accessors.

  • startFocusMetering and cancelFocusMetering now return ListenableFutures which represent the asynchronous operation of the call.

  • MeteringPoints are now functioning as handles to metering actions, and are produced by factories. Apps should use the existing factories rather than custom factories.

Исправлены проблемы

  • Fixed issue when taking a picture on resuming (after a previous pause had take pictures pending completion).
  • Known Issue: CameraControl.enableTorch() is functional but the returned ListenableFuture<Void> is always an immediate complete(success) future, even if there is no flash unit. Future versions will fix this to the final behavior: When there is no flash unit, enableTorch(true) fails immediately (won't send request to CaptureSession ), and TorchState remain Off.
  • Known Issue: startFocusAndMetering and cancelFocusAndMetering start and cancel focus metering, but return an immediately completed (success) future not representing the documented behavior. The FocusMeteringResult from ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() is a fake result which isFocusSuccessful() and is always "false," differing from intended, documented behavior.
  • Known Issue: A metering point factory for use with PreviewView touch events is being developed. For now, apps connecting custom managed surfaces can use the existing metering point factories, and otherwise no touch focus functionality is available for PreviewView .

Camera-Camera2 и Camera-Core версии 1.0.0-alpha06

9 октября 2019 г.

androidx.camera:camera-camera2:1.0.0-alpha06 and androidx.camera:camera-core:1.0.0-alpha06 are released. These are the commits included in camera-camera2:1.0.0-alpha06 and these are the commits included in camera-core:1.0.0-alpha06 .

Новые возможности

Changes to setting aspect ratios:

  • setTargetAspectRatioMode() was added and accepts an enum argument. This sets the Aspect Ratio Mode with options RATIO_4_3 or RATIO_16_9 instead of an arbitrary aspect ratio. This closer reflects the fact that only certain aspect ratios are provided from the camera, rather than any arbitrary ratio.
    • Currently, the only available ratios are 16:9 and 4:3. In the case of 1:1, only certain devices have this available from the camera, and then only at limited resolutions. Applications designing a 1:1 interface or processing should use the more flexible 16:9 or 4:3 choices and crop the display or process a subregion.
    • These aspect ratios are oriented to use the maximum sensor area.
  • getTargetAspectRatio() was added to use case config APIs, returning the aspect ratio the use case output is targeted for.
  • The method setTargetAspectRatio(Rational aspectRatio) has been changed for ImageCapture to setTargetAspectRatioCustom(Rational aspectRatio) . When set, the ImageCapture output crops accordingly.

Executor APIs

  • The following functions accept an executor parameter, which allows the app to control which executor the function runs on.
    • Preview.setOnPreviewOutputUpdateListener() API. If the executor is not present for that function, it executes on the main thread.
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

CameraInfo added with check Flash Available and Sensor Rotation APIs

  • Added CameraInfo and a getCameraInfo method, which allows apps to check if a lens facing CameraInfo is available and if a flash is available on that camera. Например:

    try {
        CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing);
        LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable();
        flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE);
    } catch (CameraInfoUnavailableException e) {
        Log.w(TAG, "Cannot get flash available information", e);
        flashToggle.setVisibility(View.VISIBLE);
    }
    
  • CameraInfo.getSensorRotationDegrees() was added. It provides the camera sensor orientation relative to the device's natural orientation, or for convenience, relative to an orientation described by a Surface rotation (which describes an orientation relative to natural orientation).

API changes and bug fixes

  • Aspect Ratios: For each use case, applications should call only one of setTargetResolution() or setTargetAspectRatio() . Calling both on the same builder returns an error.
    • In general it's recommended to use setTargetAspectRatio() based on the application's UI design. Specific resolutions are based on the use case. For example, preview is near screen resolutions and image capture provides high resolution stills. See the automatic resolutions table for more information.
    • Use setTargetResolution() for more specific cases, such as when minimum (to save computation) or maximum resolutions (for processing details) are required.
  • Executor API: Removed the setCallbackHandler() call from use case configuration APIs. Instead, applications can set the executor as a parameter in various other APIs that set a callback.
  • Updated null annotations for various functions.
  • Fixed an issue that caused java.lang.IllegalStateException at Camera$StateCallback.onError to be thrown when opening the camera.
  • Fixed issue where resolutions would be selected that were too small (less than 640x480) when app is requesting larger or default resolutions resulting in a blocky or blurry preview image. Applications that specifically need smaller resolutions can explicitly request them.
  • Fixed an issue where the camera would show black screen (failed to start the camera) after returning from an intent that launched another camera application.
  • Fixed a bug that threw the following error when apps are repeatedly started or stopped; java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • Fixed the following error that occurs when disabling ImageAnalysis: java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
  • Added additional tests for camera disconnect flow.
  • Improved test system robustness when running back-to-back camera tests.

Camera-Camera2 and Camera-Core Version 1.0.0-alpha05

5 сентября 2019 г.

androidx.camera:camera-camera2:1.0.0-alpha05 and androidx.camera:camera-core:1.0.0-alpha05 are released. These are the commits included in camera-camera2:1.0.0-alpha05 and these are the commits included camera-core:1.0.0-alpha05 .

  • API Change: Renamed use case error variables:

    • ImageCapture.UseCaseError is renamed ImageCapture.ImageCaptureError
    • VideoCapture.UseCaseError is renamed VideoCapture.VideoCaptureError
  • Added CameraControl API w/Tap-to-Focus APIs

    • Added API to get a CameraControl from CameraX for a camera, selected by lens facing:

      CameraX.getCameraControl(LensFacing lensFacing)

    • Added MeteringPointFactory , MeteringPoint , MeteringMode , and FocusMeteringAction to run Tap-to-Focus:

      MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height);
      MeteringPoint point = factory.createPoint(x, y);
      FocusMeteringAction action = FocusMeteringAction.Builder.from(point,
                                       MeteringMode.AF_ONLY)
          .addPoint(point2, MeteringMode.AE_ONLY) // could have many
          .setAutoFocusCallback(new OnAutoFocusListener(){
              public void onFocusCompleted(boolean isSuccess) {
              }
          })
          // auto calling cancelFocusAndMetering in 5 sec.
          .setAutoCancelDuration(5, TimeUnit.Second)
          .build();
      
    • Added API for CameraControl to start and cancel focus metering:

      getCameraControl(lensFacing).startFocusAndMetering(action); getCameraControl(lensFacing).cancelFocusAndMetering();

    • Added APIs for Metering Point Factories that assist translating tap coordinates to sensor coordinates, based on view classes:

      MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView); MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);

  • Enforce calling the following methods on the Main (UI) thread, throwing an IllegalStateException when they are not. Future versions will allow usage on other threads and ensure serialization.

    • CameraX.bindToLifecycle()
    • CameraX.unbind()
    • CameraX.unbindAll()
    • ImageAnalysis.setAnalyzer()
    • ImageAnalysis.getAnalyzer()
    • ImageAnalysis.removeAnalyzer()
    • Preview.removePreviewOutputListener()
    • Preview.getOnPreviewOutputUpdateListener()
    • Preview.setOnPreviewOutputUpdateListener()
  • Various config settings now accept null parameters and corresponding getters may return null.

  • Fixed issue when testing on emulators that do not support AF/AE/AWB settings.

  • Fixed crash bug on rotation while analyzing image.

  • Fixed bug where preview appears black on start (no camera data), after rotation or switching between front and back cameras.

  • Removed testing for multiple concurrent image analysis use cases. To ensure compatibility, applications should only attach a single image analysis use case.

  • Added initial robolectric tests for fake camera in camera-testing suite (WIP).

  • Camera2Inititalizer test removed, as its coverage was unclear/misleading.

Camera-Camera2 and Camera-Core Version 1.0.0-alpha04

7 августа 2019 г.

androidx.camera:camera-camera2:1.0.0-alpha04 and androidx.camera:camera-core:1.0.0-alpha04 are released. Version 1.0.0-alpha04 contains these commits .

Новые возможности

Changes to Aspect Ratio and Resolution selection

CameraX's goal is to successfully initialize a camera session. This means CameraX compromises on resolution/aspect ratios based on device capability, in order to start a capture session as its first goal, and so exact requests may not be honored. Это может быть связано с:

  • Devices not supporting the requested resolution
  • Compatibility issues such as on LEGACY devices where certain resolutions must be used to operate correctly
  • On some devices, certain formats are only available at certain aspect ratios
  • A preference for a “nearest mod16” for JPEG or video encoding. See CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP

Although CameraX creates and manages the session, you should always check the returned image sizes on the use case output in your code and adjust accordingly.

Some changes have been made for setting resolutions and aspect ratios, intended to make the API more clear:

  • Preview use case is now considered to have a default 4:3 aspect ratio when none is set.
  • When CameraX internally considers changes to requested resolutions and aspect ratios based on device capability, it first tries to maintain the same aspect ratio (as determined by any of setTargetAspectRatio or setTargetResolution calls)
  • A “Nearest mod16” version of the resolution is considered as the same aspect ratio.

ImageAnalysis Non-Blocking Mode

  • The behaviour of ImageReaderMode.ACQUIRE_LATEST_IMAGE is now non-blocking. It acquires the latest image in the queue, but discards unused images continuously to allow the camera pipeline to avoid blocking.
  • The analyzer can hold a single image indefinitely without stalling the pipeline.
  • If the application provides an executor which then blocks, the ImageAnalysis use case blocks.
  • The default executor set internally behaves as a non-blocking executor.

Исправление ошибок

  • Fixed timeout issues waiting for 3A convergence when capturing images on devices with no auto-focus, auto exposure, and auto-whitebalance
  • Fixed issue when rapidly taking pictures with ImageCapture. Fixes error: java.lang.IllegalStateException: maxImages (2) has already been acquired
  • Fixed issue when setLensFacing was not called for a use case, resulting in java.lang.IllegalArgumentException: Unable to get camera ID for use case .
  • Fixed issue where LEGACY device required specific aspect ratio as maximum JPEG resolution
  • Fixed issue when backgrounding the app while camera is opening
  • Fixed issue on API < 25, removing error checkAndUpdateEglState: invalid current EGLDisplay
  • Fixed issue when unbinding preview after enabling and starting extensions
  • Build artifacts for camera-view and camera-extensions are now published as alpha versions

Camera-Camera2 and Camera-Core Version 1.0.0-alpha03

2 июля 2019 г.

androidx.camera:camera-core:1.0.0-alpha03 and androidx.camera:camera-camera2:1.0.0-alpha03 are released. Version 1.0.0-alpha03 contains these commits .

Изменения API

  • Added javadoc clarification for “target” in setTarget configuration calls

Camera-Core

  • Fixed unconfigured Input/Output Surface crash on rapid open/close or bind/unbind
  • Move to new Futures implementations
  • Test fixes for more robust testing
  • Core integration test now shows capture time for photos
  • Developed internal compat class for Executors
  • Timing test app capture images waits for previous to complete & improved stability

Расширения

  • Added versioning checks
  • Additional test coverage - extension event callbacks
  • Improvements for internally corresponding image and meta-data
  • Fixes to mode switching in test app

Camera-Camera2 and Camera-Core Version 1.0.0-alpha02

5 июня 2019 г.

androidx.camera:camera-core:1.0.0-alpha02 and androidx.camera:camera-camera2:1.0.0-alpha02 are released. Version 1.0.0-alpha02 contains these commits .

Исправление ошибок

  • Fixed div by zero issue when using emulator
  • Fixed NullPointerException/Surface Abandoned error occurring on some devices when quickly taking photos while unbinding and rebinding use cases rapidly.
  • Fixed internal issue to ensure capture request updates affect all surfaces consistently
  • Stability improvements when restarting use cases in new app instances
  • Internal architecture changes to prepare for supporting executors in the API
  • Additional Javadoc clarifications on CameraX class and lifecycle management
  • Added instrumented testing for Antelope performance test app
  • Remove need for '-keepattributes Signature' in app Proguard config

Camera-Camera2 and Camera-Core 1.0.0-alpha01

7 мая 2019 г.

androidx.camera:camera-core:1.0.0-alpha01 and androidx.camera:camera-camera2:1.0.0-alpha01 are released. Version 1.0.0-alpha01 contains these commits .

Camera-Lifecycle Version 1.0.0-beta11

14 октября 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta11 is released. Version 1.0.0-beta11 contains these commits.

Исправление ошибок

  • <UseCase>.getTargetRotation() will return Surface.ROTATION_0 if called before being attached to a Camera instance unless a targetRotation has been set on the Builder or UseCase. ( I80fcd )

Camera-Lifecycle Version 1.0.0-beta10

23 сентября 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta10 is released. Version 1.0.0-beta10 contains these commits.

Исправление ошибок

Camera-Lifecycle Version 1.0.0-beta09

16 сентября 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta09 is released. Version 1.0.0-beta09 contains these commits.

Жизненный цикл камеры, версия 1.0.0-beta08

19 августа 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta08 is released. Version 1.0.0-beta08 contains these commits.

Исправление ошибок

  • Initialization should no longer crash when using a Context that does not return an Application object from Context.getApplicationContext() . ( I3d3c9 , b/160817073 )

Жизненный цикл камеры, версия 1.0.0-beta07

22 июля 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta07 is released. Version 1.0.0-beta07 contains these commits.

Жизненный цикл камеры, версия 1.0.0-beta06

24 июня 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta06 is released. Version 1.0.0-beta06 contains these commits.

Изменения API

  • CameraX can now be configured with ProcessCameraProvider#configureInstance() before calling ProcessCameraProvider#getInstance(). This allows for customization of the CameraXConfig without requiring implementing CameraXConfig.Provider in the app's Application class. ( Ia1a8d )

Жизненный цикл камеры, версия 1.0.0-beta05

10 июня 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta05 is released. Version 1.0.0-beta05 contains these commits.

Исправление ошибок

  • Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An InitializationException contains a CameraUnavailableException will be set to the ListenableFuture of the intialization result instead of crashing the application. ( I9909a , b/149413835 )

Camera-Lifecycle Version 1.0.0-beta04

27 мая 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta04 is released. Version 1.0.0-beta04 contains these commits.

Camera-Lifecycle Version 1.0.0-beta03

April 15, 2020

androidx.camera:camera-lifecycle:1.0.0-beta03 is released. Version 1.0.0-beta03 contains these commits.

Исправление ошибок

  • Fixed regression from beta03 where calling bindToLifecycle() with zero UseCase s would cause a thrown exception. This prevented retrieval of a Camera without binding a UseCase .
  • Fixes to support the release of camera-core

Camera-Lifecycle Version 1.0.0-beta01

26 февраля 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

Исправление ошибок

  • Fixed documentation to note that when obtaining a ProcessCameraProvider during initialization, a default configuration is used and that extending Application is optional. ( I5e395 )

Camera-Lifecycle Version 1.0.0-beta02

1 апреля 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta02 is released. Version 1.0.0-beta02 contains these commits.

Исправление ошибок

  • Updated to support the bug fixes in the camera-camera2:1.0.0-beta02 and camera-core:1.0.0-beta02 artifacts.

Camera-Lifecycle Version 1.0.0-alpha10

10 февраля 2020 г.

androidx.camera:camera-lifecycle:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits .

Изменения API

  • Added @MainThread annotation to BindToLifecycle, unbind and unbindAll methods. ( I990d2 )

Camera-Lifecycle Version 1.0.0-alpha03

22 января 2020 г.

androidx.camera:camera-lifecycle:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits .

Обновления

  • Various fixes and updates to support Camera Core & Camera2 changes.

Camera-Lifecycle Version 1.0.0-alpha02

18 декабря 2019 г.

androidx.camera:camera-lifecycle:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits .

Dependency changes

  • Updated to use androidx.camera:camera-core:1.0.0-alpha08 .

Camera-Lifecycle Version 1.0.0-alpha01

4 декабря 2019 г.

androidx.camera:camera-lifecycle:1.0.0-alpha01 is released. Version 1.0.0-alpha01 of camera-lifecycle contains these commits

API notes

  • The camera-lifecycle artifact is added, providing LifeCycleCameraProvider interface, and an implementation called ProcessCameraProvider which provides many of the functions of the previous CameraX class in core and is obtained via a getInstance() method.
  • Apps should include the camera-lifecycle library to use CameraX.
  • See notes in the camera-core section for how to perform initialization of CameraX using a ProcessCameraProvider .

Расширения камеры и Camera-View версии 1.0.0

Version 1.0.0-alpha32

15 декабря 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha32 and androidx.camera:camera-view:1.0.0-alpha32 are released. Version 1.0.0-alpha32 contains these commits.

Изменения API

  • Removed unnecessary @RequiresApi(21) annotations from the inner classes/interfaces. ( I8e286 , b/204917951 )
  • Update api files for camera-extensions artifact. ( If683a , b/161377155 )

Исправление ошибок

  • Disallow the app to enable extension modes when binding VideoCapture . CameraX Extensions only support ImageCapture and Preview . The VideoCapture can't be supported yet. If the app binds VideoCapture and enables any extension mode, an IllegalArgumentException will be thrown. ( I0d87b )
  • CameraSelector#filter no longer throws an IllegalArgumentException when the result set is empty. ( I27804 )
  • Renamed ExtensionsManager#getInstance API as getInstanceAsync because it returns ListenableFuture . The Async suffix of the function name can clearly present that it is an async function. ( I279d2 )
  • Remove resolution parameter from the ExtensionsManager#getEstimatedCaptureLatencyRange API since users can't know which sizes are supported for the ImageCapture use case and can't distinguish whether the returned latency information is for the maximum capture output size or the input resolution parameter. ( I74bb2 )
  • Move CameraProvider parameter of ExtensionsManager functions to the getInstance() API. So that the users don't need to input the CameraProvider parameter each time when calling the ExtensionsManager functions. ( Ic7e48 )

Version 1.0.0-alpha31

17 ноября 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha31 and androidx.camera:camera-view:1.0.0-alpha31 are released. Version 1.0.0-alpha31 contains these commits.

Изменения API

  • Added CameraSelector#filter to the public API to filter a list of CameraInfos based on a CameraSelector. ( I105d0 )

Исправление ошибок

  • Fixed a crash when switching extensions mode quickly on certain devices. ( Iebbef )

Версия 1.0.0-альфа30

13 октября 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha30 and androidx.camera:camera-view:1.0.0-alpha30 are released. Version 1.0.0-alpha30 contains these commits.

Изменения API

  • Added @RequiresApi(21) annotation to all CameraX classes and dropped minSdkVersion from AndroidManifest.xml. This will allow camera-core to be easily integrated into applications that have a minSdkVersion less than 21, but want to conditionally use code paths that rely on API 21 and higher. For any application with minSdkVersion 21 or higher, this change requires no action. ( Ie7f2e , b/200599470 )

Исправление ошибок

  • Fixed the AbstractMethodError issue which happens when proguard is enabled. ( Iae468 , b/201177844 )

Версия 1.0.0-альфа29

29 сентября 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha29 and androidx.camera:camera-view:1.0.0-alpha29 are released. Version 1.0.0-alpha29 contains these commits.

Изменения API

  • ExperimentalUseCaseGroup annotation is removed now that the APIs are no longer experimental. ( I01ef5 )
  • remove RotationProvider#removeAllListeners() . Please use RotationProvider#removeListener(...) instead. ( Id9d4a )
  • Updated the RotationReceiver class: changed set/clear Listener to add/remove/removeAll, remove the setListener variation that uses the main thread by default and added annotation of methods. ( Ib1669 )

Исправление ошибок

  • Renamed ExtensionMode#BEAUTY to FACE_RETOUCH to correctly present what is done by the extension mode. ( I61f54 , b/198515274 )
  • Fixed the issue that camera is closed unexpectedly when multiple CameraController and PreviewView are used in one Activity. ( Ibfd18 , b/197539358 )

Version 1.0.0-alpha28

18 августа 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha28 and androidx.camera:camera-view:1.0.0-alpha28 are released. Version 1.0.0-alpha28 contains these commits.

Изменения API

  • ExperimentalUseCaseGroupLifecycle annotation is removed now that the APIs are no longer experimental. ( I17b85 )
  • refactored RotationListener and renamed it to RotationProvider. It continues to provide the same feature with slightly different API. ( Idffc5 )
  • rename TAP_TO_FOCUS_UNSUCCESSFUL to TAP_TO_FOCUS_NOT_FOCUSED and TAP_TO_FOCUS_SUCCESSFUL to TAP_TO_FOCUS_FOCUSED. Made OutputSize final ( I099fa )

Исправление ошибок

  • Removed deprecated <EffectName><UseCase>Extender classes, ExtensionsErrorListener and related ExtensionsManager APIs. ( I3b8c3 )

Version 1.0.0-alpha27

21 июля 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha27 and androidx.camera:camera-view:1.0.0-alpha27 are released. Version 1.0.0-alpha27 contains these commits.

Изменения API

  • Promoted the viewport API out of experimental. Remove the experimental annotation of the API. ( I717ea )
  • Renamed CoordinateTransform#getTransform to CoordinateTransform#transform and update JavaDoc ( I864ae )

Исправление ошибок

  • Fixed PreviewView PERFORMANCE mode stretch issue when using it together with Compose UI. ( Ie1137 , b/183864890 )

Version 1.0.0-alpha26

30 июня 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha26 and androidx.camera:camera-view:1.0.0-alpha26 are released. Version 1.0.0-alpha26 contains these commits.

Изменения API

  • add a new method CameraController#getTapToFocusState() that exposes the latest tap-to-focus result. ( Iaccb0 )
  • adding more camera-core features to CameraController: getters/setters for target aspect ratio, target resolution, capture mode, CameraControl and custom executors. ( Iea8f2 )
  • add a RotationReceiver class that receives Surface rotation changes. This can be used to set the target rotation when the device is in fixed portrait/landscape mode. ( Ib278f )
  • Exposed new getEstimatedCaptureLatencyRange public APIs in ExtensionsManager class. ( I6a8ec )
  • Deprecated ExtensionsErrorListener. Currently, this interface is only used to monitor whether a Preview or ImageCapture is lacking when enabling extension modes. CameraX will automatically add an extra Preview or ImageCapture to make the extension functions work well. After that, no error will be reported via this interface. ( I47d9e )
  • Exposed new ExtensionsManager getInstance, isExtensionAvailable and getExtensionEnabledCameraSelector public APIs and deprecated old <EffectName><UseCase>Extender classes and related APIs. ( I329e6 )

Version 1.0.0-alpha25

2 июня 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha25 and androidx.camera:camera-view:1.0.0-alpha25 are released. Version 1.0.0-alpha25 contains these commits.

Изменения API

  • ExperimentalCameraFilter APIs are now out of experimental stage and become formal APIs. They can be used without annotated OptIn. ( I4bc94 )
  • Add a utility that transforms coordinates between use cases. Example usage: transforming the coordinates detected in ImageAnalysis use case and highlight the detected object in preview. ( I63ab1 , b/137515129 )
  • Removed CameraView . CameraView has been replaced by CameraController . Please see the migration guide for how to migrate.: ( Id5005 )

Исправление ошибок

  • Replaced ExperimentalUseCaseGroupLifecycle with ExperimentalUseCaseGroup . ( I3b2ef , b/159033688 )

Version 1.0.0-alpha24

21 апреля 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha24 and androidx.camera:camera-view:1.0.0-alpha24 are released. Version 1.0.0-alpha24 contains these commits.

Исправление ошибок

  • Replaced annotation @Experimental with @RequiresOptIn to experimental APIs. For calling experimental APIs, use androidx.annotation.OptIn instead of deprecated androidx.annotation.experimental.UseExperimental . ( Iff226 )
  • Fixed the PreviewView stretched issue on Samsung J5 Prime ( Ib10b6 )

Camera Extensions & View Version 1.0.0-alpha23

24 марта 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha23 and androidx.camera:camera-view:1.0.0-alpha23 are released. Version 1.0.0-alpha23 contains these commits.

Изменения API

  • CameraView is being deprecated. Please use LifecycleCameraController instead. See the migration guide ( Idac2c )
  • Added FloatRange annotation to setLinearZoom() ( I69971 )

Исправление ошибок

  • Pinned camera-view dependencies to rely on 1.0.0 artifacts. Depending on camera-view will not longer cause gradle's dependency resolution to automatically upgrade camera-core, camera-camera2 and camera-lifecycle to the latest 1.1.0 artifacts, though camera-view is still compatible with those artifacts if they are explicitly set to use 1.1.0. ( Ic8fa1 , b/181599852 )
  • Fixed Samsung A3 stretched preview in PreviewView. ( Iacb30 , b/180121821 )
  • Fixed the issue where if camera selector cannot be set before camera is initialized. ( Ic8bd0 )

Camera Extensions & View Version 1.0.0-alpha22

24 февраля 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha22 and androidx.camera:camera-view:1.0.0-alpha22 are released. Version 1.0.0-alpha22 contains these commits.

Изменения API

Исправление ошибок

  • Fixed ExtensionsErrorListener to report errors when only Preview or ImageCapture is bound. ( I5ae39 )

Camera Extensions & View Version 1.0.0-alpha21

27 января 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha21 and androidx.camera:camera-view:1.0.0-alpha21 are released. Version 1.0.0-alpha21 contains these commits.

Releasing to support other camera library artifacts.

Camera Extensions & View Version 1.0.0-alpha20

16 декабря 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha20 and androidx.camera:camera-view:1.0.0-alpha20 are released. Version 1.0.0-alpha20 contains these commits.

Releasing to support other camera library artifacts.

Camera-Extensions & Camera-View Version 1.0.0-alpha19

11 ноября 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha19 and androidx.camera:camera-view:1.0.0-alpha19 are released. Version 1.0.0-alpha19 contains these commits.

Исправление ошибок

  • @ExperimentalVideo annotation was introduced to camera-view. This annotation marks APIs which expose experimental video functionality which is subject to change as the features are fully developed. Any method using these APIs should use the @UseExperimental annotation with ExperimentalVideo as the markerClass . ( I6d729 )

Camera-Extensions Version 1.0.0-alpha18

14 октября 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha18 is released. Version 1.0.0-alpha18 contains these commits.

Исправление ошибок

  • Improved the latency of CameraX initialization and bindToLifecycle ( I61dc5 )
  • <UseCase>.getTargetRotation() will return Surface.ROTATION_0 if called before being attached to a Camera instance unless a targetRotation has been set on the Builder or UseCase. ( I80fcd )

Камера-Вид Версия 1.0.0-alpha18

14 октября 2020 г.

androidx.camera:camera-view:1.0.0-alpha18 is released. Version 1.0.0-alpha18 contains these commits.

Releasing to support other camera library artifacts.

Camera-Extensions Version 1.0.0-alpha17

23 сентября 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha17 is released. Version 1.0.0-alpha17 contains these commits.

Исправление ошибок

Camera-View Version 1.0.0-alpha17

23 сентября 2020 г.

androidx.camera:camera-view:1.0.0-alpha17 is released. Version 1.0.0-alpha17 contains these commits.

Исправление ошибок

Расширения камеры версии 1.0.0-alpha16

16 сентября 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha16 is released. Version 1.0.0-alpha16 contains these commits.

Исправление ошибок

  • Added method in ExtensionsManager to get an Extensions object which is used to enable and query extensions on Camera instances ( I4fb7e )

Camera-View Version 1.0.0-alpha16

16 сентября 2020 г.

androidx.camera:camera-view:1.0.0-alpha16 is released. Version 1.0.0-alpha16 contains these commits.

Изменения API

  • Removed PreviewView#setDeviceRotationForRemoteDisplayMode() and PreviewView#getDeviceRotationForRemoteDisplayMode() . The two methods are for customizing preview rotation, when desired rotation is not display rotation, eg remote display. To handle the non-display preview rotation now, set the desired rotation with Preview#setTargetRotation() and the newly added PreviewView#getViewPort(targetRotation) . ( Ib62cc )
  • Renamed createSurfaceProvider() to getSurfaceProvider() . The method will always return the same instance of Preview.SurfaceProvider. ( Iff83c )

Исправление ошибок

  • Forced PreviewView to use TextureView if extension effect is enabled and the vendor library implementation needs to do a special process on the output surface. ( I0c3cc )
  • Allow arbitrary target rotation for Preview. The transformation info is calculated and returned to user on-the-fly via a new TranformationInfoListener callback. ( I21470 )

Известные вопросы

  • In PreviewView, OnClickListener#onClick() is not invoked when the end user clicks PreviewView. The touch event is mistakenly consumed by PreviewView#onTouchEvent(). The issue will be fixed in the next release.
  • The MeteringPoint obtained from PreviewView#getMeteringPointFactory() may be wrong if ViewPort is used with PreviewView.

Camera-Extensions Version 1.0.0-alpha15

19 августа 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha15 is released. Version 1.0.0-alpha15 contains these commits.

Исправление ошибок

  • The ExtensionsManager.init() method now takes in a Context as a parameter instead of having 0 args. ( Ife754 )
  • Initialization should no longer crash when using a Context that does not return an Application object from Context.getApplicationContext() . ( I3d3c9 , b/160817073 )

    Камера-Вид Версия 1.0.0-альфа15

    19 августа 2020 г.

androidx.camera:camera-view:1.0.0-alpha15 is released. Version 1.0.0-alpha15 contains these commits.

Исправление ошибок

  • DisplayOrientedMeteringPointFactory takes in a CameraInfo instance instead of a CameraSelector so there is a direct mapping to which Camera the factory will be generating points for. All classes which use DisplayOrientedMeteringPointFactory also take in a CameraInfo instance instead of CameraSelector . ( I400c1 )
  • Removed TextureViewMeteringPointFactory . PreviewView provides a public API ( createMeteringPointFactory() ) to create a metering point factory regardless of whether it's using a TextureView or SurfaceView . ( Ide693 )
  • rename PreviewView's SURFACE_VIEW / TEXTURE_VIEW implementation modes to PERFORMANCE / COMPATIBLE . PERFORMANCE is the old SURFACE_VIEW mode, and COMPATIBLE is the old TEXTURE_VIEW mode. ( I0edc2 )
  • For image capture, overwrite the flip horizontal flag in metadata based on camera direction. ( I28499 )

Расширения камеры версии 1.0.0-alpha14

22 июля 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha14 is released. Version 1.0.0-alpha14 contains these commits.

Камера-Вид Версия 1.0.0-alpha14

22 июля 2020 г.

androidx.camera:camera-view:1.0.0-alpha14 is released. Version 1.0.0-alpha14 contains these commits.

Camera-Extensions Version 1.0.0-alpha13

24 июня 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha13 is released. Version 1.0.0-alpha13 contains these commits.

Исправление ошибок

  • Added experimental interfaces for filtering cameras by camera ID and CameraCharacteristics. ( I28f61 )

Camera-View Version 1.0.0-alpha13

24 июня 2020 г.

androidx.camera:camera-view:1.0.0-alpha13 is released. Version 1.0.0-alpha13 contains these commits.

Исправление ошибок

  • CameraView no longer crashes with an IllegalArgumentException when binding to a LifecycleOwner whose Lifecycle transitions to a DESTROYED state shortly after being bound. Binding Lifecycles in a DESTROYED state will not attempt to open the camera. ( I7c2b8 )
  • PreviewView StreamState is now available through CameraView.getPreviewStreamState() ( I21a2b )

Camera-Extensions Version 1.0.0-alpha12

10 июня 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits.

Исправление ошибок

  • Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An InitializationException contains a CameraUnavailableException will be set to the ListenableFuture of the intialization result instead of crashing the application. ( I9909a , b/149413835 )

Камера-Вид Версия 1.0.0-альфа12

10 июня 2020 г.

androidx.camera:camera-view:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits.

Исправление ошибок

  • Add PreviewView#getBitmap() API which returns a Bitmap representation of the content displayed on the preview surface. ( I9b500 , b/157659818 )

Camera-Extensions Version 1.0.0-alpha11

27 мая 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits.

Камера-Вид Версия 1.0.0-альфа12

10 июня 2020 г.

androidx.camera:camera-view:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits.

Новые возможности

Изменения API

Исправление ошибок

  • Add PreviewView#getBitmap() API which returns a Bitmap representation of the content displayed on the preview surface. ( I9b500 , b/157659818 )

Camera-View Version 1.0.0-alpha11

27 мая 2020 г.

androidx.camera:camera-view:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits.

Изменения API

  • Add PreviewView#getPreviewStreamState API which allows apps to observe if preview is streaming or not. When the PreviewView is in TEXTURE_VIEW mode, the STREAMING state also guarantees the preview image is visible. ( Ic0906 , b/154652477 )
  • Added PreviewView#setDeviceRotationForRemoteDisplayMode() API to provide device rotation for transform calculations if the application is running in remote display mode. ( I59b95 , b/153514525 )

Исправление ошибок

  • Fixed the preview distortion issue on FULL/LIMITED/LEVEL_3 cameras running android 7.0 and below. Forced use ImplementationMode#TEXTURE_VIEW mode when the android version is 7.0 or below. ( I83e30 , b/155085307 )
  • Removed the CameraInfo parameter from PreviewView#createSurfaceProvider() , PreviewView now internally retrieves it from the SurfaceRequest . ( If18f0 , b/154652477 )
  • Fixed the VideoCapture's default aspect ratio to be 16:9 in CameraView. ( Ie6a7b , b/153237864 )
  • Fix PreviewView black screen issues when swiped out Preview fragment and then swiped back in ViewPager2. Also fixed the issue when removeView(previewview) and then addView(previewView) . ( Iab555 , b/149877652 , b/147354615 )
  • Update the CameraView#takePicture() API to allow saving images to Uri and OutputStream . Update the test app to use Uri as the canonical example. ( Ia2459 , b/153607583 )
  • You can set PreviewView's scale type from a XML layout by setting the ScaleType attribute. ( I08565 , b/153015659 )
  • CameraView.ScaleType has been removed. Instead, use PreviewView.ScaleType to set/get a scale type with CameraView. ( Ia8974 , b/153014831 )
  • Give PreviewView a background color by default if it doesn't already have one. This prevents content behind it from being visible before the preview stream starts. ( I09fad )

Camera-Extensions Version 1.0.0-alpha10

April 15, 2020

androidx.camera:camera-extensions:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits.

Исправление ошибок

  • Fixes to support the release of Camera-Core

Camera-View Version 1.0.0-alpha10

April 15, 2020

androidx.camera:camera-view:1.0.0-alpha010 is released. Version 1.0.0-alpha010 contains these commits.

Исправление ошибок

  • Fixes a previous known issue where PreviewView 's surfaceView implementation wasn't working well on certain devices, and would cause the app to crash after resuming preview. ( I5ed6b )

Camera-Extensions Version 1.0.0-alpha09

1 апреля 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits.

Исправление ошибок

  • Updated to support the bug fixes in the camera-camera2:1.0.0-beta02 , camera-core:1.0.0-beta02 , and camera-lifecycle:1.0.0-beta02 artifacts

Камера-Вид Версия 1.0.0-alpha09

April 1, 2020 androidx.camera:camera-view:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits.

Известные вопросы

  • Using ImplementationMode.SURFACE_VIEW with PreviewView may not work well on certain devices, this is because the SurfaceView used for preview invalidates its surface when the lifecycle of the window it's in is stopped, when it restarts, the camera is reopened and may attempt to resume preview before the SurfaceView 's surface is valid again. For now, you should use ImplementationMode.TEXTURE_VIEW .

Изменения API

  • Renamed PreviewView.setImplementationMode() to PreviewView.setPreferredImplementationMode() .
  • Renamed PreviewView.getImplementationMode() to PreviewView.getPreferredImplementationMode() .
  • Replaced PreviewView.getSurfaceProvider() by PreviewView.createSurfaceProvider(CameraInfo) , which takes a nullable CameraInfo instance used to optimize preview by using ImplementationMode.SURFACE_VIEW whenever possible. If a null instance is passed, or if you set the preferred implementation mode to ImplementationMode.TEXTURE_VIEW , ImplementationMode.TEXTURE_VIEW is used internally.
  • The following code sample shows how a preview use case used to previously be used with PreviewView.

    preview.setSurfaceProvider(previewView.previewSurfaceProvider)
    cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    

    Right now, you can write the following:

    val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW
    preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
    
  • The @UiThread annotation has been added to PreviewView.getSurfaceProvider() , meaning it must be called from the main thread. ( I192f3 )

  • Added PreviewView.setScaleType() which allows to set the scale type of the preview. It accepts one of the values in PreviewView.ScaleType , and defaults to PreviewView.ScaleType.FILL_CENTER .

  • Added PreviewView.getScaleType() .

  • Removed support for setting the implementation mode for PreviewView in a XML layout using the implementationMode attribute.

  • Add createMeteringPointFactory() API to PreviewView to support converting (x, y) in PreviewView to MeteringPoint . ( Ib36d7 )

Исправление ошибок

  • Fixed cases where an incorrect preview is displayed after PreviewView 's size changes. ( I71101 )

Расширения камеры версии 1.0.0-alpha08

26 февраля 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits.

Camera-View Version 1.0.0-alpha08

26 февраля 2020 г.

androidx.camera:camera-view:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits.

Исправление ошибок

  • Replaced the ListenableFuture on SurfaceRequest.provideSurface() with an Executor and Callback . This simplifies the API by no longer requiring handling of exceptions on provideSurface() and enforces that the provideSurface() callback cannot be cancelled. This is to prevent crashes on older devices caused by prematurely releasing surfaces. The SurfaceRequest.Result object is now used for tracking how a SurfaceRequest uses the provided Surface . ( I7854b )
  • Renamed SurfaceRequest.setSurface(Surface) to SurfaceRequest.provideSurface(Surface) and SurfaceRequest.setWillNotComplete() to SurfaceRequest.willNotProvideSurface() . ( I224fe )
  • Fixed initialization of app variants with ProGuard enabled by preserving the flag that sets the default CameraXConfig provider. ( I2d6c1 )

Camera-Extensions Version 1.0.0-alpha07

10 февраля 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits .

Исправление ошибок

  • The arguments that were previously passed in ImageCapture.OnImageSavedCallback.onError() and ImageCapture.OnImageCapturedCallback.onError() have now been replaced by a single argument ImageCaptureException , which still contains all the information that was previously passed.
  • The file argument previously passed in ImageCapture.OnImageSavedCallback.onImageSaved() has been removed. ( I750d2 )

Camera-View Version 1.0.0-alpha07

10 февраля 2020 г.

androidx.camera:camera-view:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits .

Изменения API

  • PreviewView 's TextureView implementation now sets the TextureView 's size to the camera sensor output size before scaling it to fill its parent PreviewView . If you want the camera preview to fill an entire part of the UI (the whole screen for instance), you should not set the PreviewView 's size to a fixed value, or have it wrap its content (by using the attribute " wrap_content " for example), this may result in the camera preview only filling part of the PreviewView (if the camera sensor output size is smaller). Instead, you should set the PreviewView as big as its parent (by using the attribute " match_parent " for example). ( 1204869 )

Исправление ошибок

  • Updated ImageCapture to allow saving images to Uri and OutputStream . Combined overloaded takePicture methods into one. Updated test app to use Uri as the canonical example. ( Ia3bec )
  • Preview.PreviewSurfaceProvider has been renamed to Preview.SurfaceProvider . SurfaceProvider s no longer require developers to create their own ListenableFuture , and providing a Surface is now done through a new SurfaceRequest object. The Preview.getPreviewSurfaceProvider() method has been removed due to its potential for misuse when Preview is paired with other classes such as PreviewView . ( I20105 )
  • The arguments that were previously passed in ImageCapture.OnImageSavedCallback.onError() and ImageCapture.OnImageCapturedCallback.onError() have now been replaced by a single argument ImageCaptureException , which still contains all the information that was previously passed.
  • The file argument previously passed in ImageCapture.OnImageSavedCallback.onImageSaved() has been removed. ( I750d2 )
  • API updated, with getZoomRatio() , getMaxZoomRatio() , getMinZoomRatio() , and getLinearZoom() methods of CameraInfo merging into getZoomState() which returns a ZoomState instance. ( Ib19fe )

Camera-Extensions Version 1.0.0-alpha06

22 января 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits .

Обновления

  • Various fixes and updates to support Camera Core & Camera2 changes.

Camera-View Version 1.0.0-alpha06

22 января 2020 г.

androidx.camera:camera-view:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits .

Обновления

  • Various fixes and updates to support Camera Core & Camera2 changes.

Расширения камеры версии 1.0.0-alpha05

18 декабря 2019 г.

androidx.camera:camera-extensions:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits .

Исправление ошибок

  • Updated to match the internal Camera Core APIs.

Camera-View Version 1.0.0-alpha05

18 декабря 2019 г.

androidx.camera:camera-view:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits .

Известные вопросы

  • The aspect ratio may be incorrect when using PreviewView ( b/146215202 ).

Новые возможности

  • Implemented a new class called PreviewView.TextureViewImplementation that syncs the SurfaceTexture's lifecycle with the camera's usage of the TextureView's surface.

Camera-Extensions Version 1.0.0-alpha04

4 декабря 2019 г.

androidx.camera:camera-extensions:1.0.0-alpha04 is released. Version 1.0.0-alpha04 of camera-extensions contains these commits

Изменения API

  • Checking for the availability and enabling of an extension now takes in a CameraSelector as an input parameter. This needs to be the same CameraSelector that is used for binding the use case.

    val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
    val builder = ImageCapture.Builder()
    val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder)
    if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) {
        bokehImageCaptureExtender.enableExtension(cameraSelector)
    }
    val imageCapture = builder.build()
    mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
    
  • You must initialize extensions before using the extension library.

    val availability = ExtensionsManager.init()
    Futures.addCallback<ExtensionsManager.ExtensionsAvailability>(
       availability,
       object : FutureCallback<ExtensionsManager.ExtensionsAvailability> {
           override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) {
               // Ready to make extensions calls
           }
           override fun onFailure(throwable: Throwable) {
               // Extensions could not be initialized
           }
       },
       Executors.newSingleThreadExecutor()
    )
    

Camera-View Version 1.0.0-alpha04

4 декабря 2019 г.

androidx.camera:camera-view:1.0.0-alpha04 is released. Version 1.0.0-alpha04 of camera-view contains these commits

Изменения API

  • A PreviewView class is provided for easily displaying the output from the Preview use case in an application.
  • PreviewView can be included in the layout:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
      … />
    
  • PreviewView provides a PreviewSurfaceProvider to easily connect a Preview use case

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • ZoomLevel ” is now “ ZoomRatio ” in API-naming

  • Some method parameters have changed nullability

Camera-Extensions and Camera-View Version 1.0.0-alpha03

9 октября 2019 г.

androidx.camera:camera-extensions:1.0.0-alpha03 and androidx.camera:camera-view:1.0.0-alpha03 are released. These are the commits included in camera-extensions:1.0.0-alpha03 and these are the commits included in camera-view:1.0.0-alpha03 .

Новые возможности

  • Added Context initializer for extensions. Extensions version incremented to 1.1.0

Расширения камеры и Camera-View версии 1.0.0-alpha02

5 сентября 2019 г.

androidx.camera:camera-extensions:1.0.0-alpha02 and androidx.camera:camera-view:1.0.0-alpha02 are released. These are the commits included in camera-extensions:1.0.0-alpha02 and these are the commits included camera-view:1.0.0-alpha02 .

  • Added tests to verify PreviewImageProcessorImpl has correctly implemented timestamps.
  • Fix ExtensionTest test failure on Nexus 5 (API level 21) and ensure preview is available.

Camera-Extensions and Camera-View Version 1.0.0-alpha01

7 августа 2019 г.

androidx.camera:camera-extensions:1.0.0-alpha01 and androidx.camera:camera-view:1.0.0-alpha01 are released. These are the commits included in camera-extensions:1.0.0-alpha01 and these are the commits included camera-view:1.0.0-alpha01

  • New library for future Camera Extensions for accessing effects on supported devices. This library is a work in progress.
  • New Camera View class. This library is a work in progress.