КамераX

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

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

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

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

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

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

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

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

классный

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.5.0-alpha01"
  // 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.5.0-alpha01"
    // 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.5

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

4 сентября 2024 г.

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

Изменения API

  • Предоставьте API для установки настроек композиции для одновременной захвата видео с двух камер. Настройки включают в себя значение альфа для смешивания, смещение по координатам x, y, масштаб ширины и высоты окна отображения кадра камеры. Смещение, ширина и высота указаны в нормализованных координатах устройства. ( Ia2b8a )
  • Представлен CameraProvider.getCameraInfo как формальный API. ( I901cd )
  • Добавлен API PendingRecording.withAudioEnabled(boolean initialMuted) для управления начальным состоянием отключения звука. ( I635c3 , б/354829267 )

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

  • Исправлен сбой при bindToLifecycle с уничтоженным LifecycleOwner . ( I6e6d8 )
  • Исправлен предварительный просмотр — черный экран на передней камере при привязке к VideoCapture на Motorola Edge 20 Fusion. ( I1fe88 )
  • Оптимизирована конфигурация обнаружения жестов масштабирования в PreviewView для повышения плавности. ( I04ffc )

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

Версия 1.4.0-rc02

18 сентября 2024 г.

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

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

  • Исправлен сбой при bindToLifecycle с уничтоженным LifecycleOwner . ( I6e6d8 )
  • Добавлена ​​анимация видимости в ScreenFlashView для ScreenFlash#apply , которая также исправляет ошибки, связанные с асинхронным изменением яркости через некоторое время. ( I37cdb )
  • Улучшена плавность масштабирования за счет переопределения настроек масштабирования в платформе на поддерживаемых устройствах.

Версия 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-beta02

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 , б/194634656 )
  • Добавьте API setTargetFrameRate() в VideoCapture.Builder и API getTargetFramerate() в VideoCapture ( I109d4 ).
  • Сделайте расширение SurfaceOutput Closable и скройте открытый конструктор S urfaceOutput.Event . ( I60ea8 )
  • Добавлен Recording.mute для динамического отключения или включения звука обрабатываемой записи. RecordingStats будет содержать AudioStats.AUDIO_STATE_MUTED если звук обрабатываемой записи явно отключен. ( Ie17fc )
  • Параметр #setEffects() стал ненулевым. Добавьте API #clearEffects() для очистки эффектов. Приложение должно вызвать #clearEffects() для удаления эффектов. ( I4b4d9 )
  • Добавьте второй конструктор для ViewfinderSurfaceRequest.Builder , чтобы взять построитель для конструктора копирования ( I621a7 ).

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

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

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

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 , б/205242781 )
  • Разрешите VIDEO_CAPTURE и PREVIEW|VIDEO_CAPTURE в качестве цели эффектов. Эффекты, нацеленные на VIDEO_CAPTURE будут применены к варианту использования VideoCapture ; Эффекты, предназначенные для PREVIEW|VIDEO_CAPTURE будут применены к общему потоку перед копированием в поток предварительного просмотра и VideoCapture . ( Iee6f3 )

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

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

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

22 февраля 2023 г.

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

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

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

  • Ранее при привязке «Preview, VideoCapture, ImageAnalysis» на аппаратном уровне камеры FULL и ниже или привязке «Preview, VideoCapture, ImageCapture» на аппаратном уровне LEGACY CameraX выдавало IllegalArgumentException .
  • Новое поведение заключается в том, что привязки будут работать без возникновения исключений. Вместо этого CameraX использует OpenGL для копирования общего потока как в Preview, так и в VideoCapture.
  • Из-за стоимости копии буфера приложение может столкнуться с увеличением задержки и энергопотребления.

Изменения API

  • Добавьте API для преобразования ImageProxy в Bitmap . Поддерживаемый формат ImageProxyImageFormat.YUV_420_888 и PixelFormat.RGBA_8888 . Если формат недействителен, будет выброшено IllegalArgumentException . ( Ic7110 )
  • Добавьте CoroutineCameraViewfinder для поддержки настройки видоискателя с использованием функций приостановки в 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 , б / 263391112 )
  • Исправлена ​​проблема с повреждением изображения JPEG при записи данных о местоположении Exif на некоторых устройствах Samsung Android 12. ( Ib7086 , б / 263747161 , б / 263289024 )
  • при установке фонарика/масштабирования до завершения инициализации камеры, например, при вызове CameraController#enableTorch , ожидающее действие кэшируется и отправляется после завершения инициализации. ( I11e92 , б/264157663 )

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

7 декабря 2022 г.

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

Изменения API

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

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

  • Удалите устаревший API core.VideoCapture . ( I531e0 )
  • Исправлена ​​проблема, из-за которой обратный вызов onError не вызывался при съемке изображений без разрешения на хранение. ( I936db , b/244807669 )
  • Улучшите качество и надежность расширений камер. Расширения камеры отключены на устройствах Motorola, использующих Camera Extensions версии 1.1.0 и более ранних версий, из-за проблем с поддержкой Bokeh, захватом изображений и предварительным просмотром, которые не возобновляются. ( Id3ce3 )
  • Исправлен собственный сбой при включении обрезки видео через ViewPort на устаревших устройствах. ( I16b8a , б/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 )

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

  • Добавьте особенность, позволяющую некоторым проблемным устройствам повторить попытку захвата один раз при возникновении сбоев захвата. ( Ид4795 )
  • Исправлена ​​проблема с черным экраном в реализации PreviewView SurfaceView на ViewPager2 . В рамках исправления PreviewView будет повторно использовать SurfaceView , если запрошенное разрешение не будет изменено. ( Ib3f27 )
  • Поддержка обрезки видео (функция WYSIWYG) при использовании API ViewPort или CameraController . ( Ifbba8 , b/201085351 )
  • Исправлена ​​ошибка, из-за которой видео, снятое передней камерой, не записывалось на Huawei P40 lite. ( I87c57 , б/250807400 )

Версия 1.2

Версия 1.2.3

24 мая 2023 г.

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

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

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

Версия 1.2.2

22 марта 2023 г.

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

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

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

Версия 1.2.1

25 января 2023 г.

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

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

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

Версия 1.2.0

7 декабря 2022 г.

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

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

  • Новая библиотека camera-mlkit-vision. Легко интегрируйте CameraX со многими функциями 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 и Preview с соотношением сторон 16:9.
  • Исправлена ​​проблема с предварительным просмотром черного цвета, возникающая, когда расширение BOKEH включено на некоторых устройствах Samsung и пользователь переключает камеры.
  • Исправлена ​​проблема с растягиванием Preview/VideoCapture Samsung J7 Prime (SM-G610M) и J7 (SM-J710MN) на устройствах уровня API 27.
  • Отключен обходной путь для горизонтального переворота области автофокусировки передних камер на 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 и Preview с соотношением сторон 16:9 на некоторых устройствах Huawei. ( If8c88 , б/223643510 )
  • Исправлена ​​ошибка открытия камеры, когда SurfaceProvider в Preview не установлен. В рамках исправления предварительный просмотр без установленного SurfaceProvider теперь не будет настроен в сеансе захвата камеры. ( I99681 )

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

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

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

Изменения API

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

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

  • Отключен обходной путь для горизонтального переворота области автофокусировки передних камер на Samsung Android T, поскольку проблема устранена. ( I05f69 )
  • Исправлена ​​проблема с предварительным просмотром черного цвета, возникающая, когда расширение BOKEH включено на некоторых устройствах Samsung и пользователь переключает камеры. ( Если6168 )

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

24 августа 2022 г.

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

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

  • Новая библиотека camera-mlkit-vision . Легко интегрируйте CameraX со многими функциями 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() .

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

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

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

27 июля 2022 г.

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

Изменения API

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

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

  • Исправлена ​​проблема с фотографированием при отмене предварительного просмотра ( Ie70b6 , b/235119898 ).
  • Исправлен сбой в Recorder при попытке записи, когда источник звука недоступен. ( I9f652 )

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

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 )
  • Исправлена ​​проблема с фотографированием при отмене предварительного просмотра ( I1d3a2 , b/235119898 ).
  • Включена расширенная реализация расширителя и обновлена ​​версия интерфейса расширений поддержки CameraX до 1.2 ( I92256 ).

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

1 июня 2022 г.

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

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

  • Выставьте API-интерфейс CameraX Zero-Shutter Lag как экспериментальный.

Изменения API

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

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

  • Исправлен метод TakePicture ImageCapture , отключающий фонарик на сообщенных устройствах. ( Ib5eb5 , б/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 содержит эти коммиты.

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

  • Запущена новая библиотека camera-mlkit-vision

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

  • Исправлена ​​ошибка, из-за которой QualitySelector не мог записать видео UHD, если включена резервная стратегия. Проблема возникает, когда VideoCapture связана с ImageCapture и Preview на устройстве камеры ПОЛНОГО или более высокого аппаратного уровня. Альтернативная стратегия QualitySelector приводит к тому, что VideoCapture неправильно получает разрешение FHD. Разрешение UHD фактически поддерживается для этой комбинации вариантов использования и должно быть принято. ( I0e788 , б/230651237 )
  • Исправлено исключение NullPointerException в ImageCapture.takePicture() . ( I92366 , б/230454568 , б/229766155 )
  • Исправлено поведение асинхронной паузы в androidx.camera.video.Recorder ( Ia8ce8 ).

Камера-Камера2, Камера-Ядро, Жизненный цикл камеры и Камера-Видео Версия 1.1.0

Версия 1.1.0

29 июня 2022 г.

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

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

  • Библиотеки Landed View, Extension и Video Capture в качестве первой RC-версии. Начиная с версии 1.1.0-beta01, все библиотеки CameraX будут иметь один и тот же номер версии. Это поможет разработчикам гораздо проще отслеживать версии и уменьшит сложность больших матриц совместимости версий.
  • Представлены новые общедоступные API и функции, в том числе:
  • Добавьте официальную библиотеку видеокамер для поддержки сценариев использования видеозахвата.
  • Возможность преобразования и вращения YUV в RGB ( ImageAnalysis.Builder.setOutputImageRotationEnabled и setOutputImageFormat )
  • Поддерживайте многооконный режим, позволяя приложениям CameraX возобновлять работу камеры, когда работа камеры прерывается другим приложением и фокус возвращается.
  • Обеспечивает правильную работу CameraX на складных устройствах, исправляя некоторые проблемы с предварительным просмотром.
  • Добавлен API CameraState , который будет доступен через CameraInfo.
  • Добавлен API ProcessCameraProvider.getAvailableCameraInfos() для прямого получения информации о доступных камерах.
  • Выходной формат JPEG для ImageCapture#OnImageCapturedCallback когда расширения включены.
  • Добавлен API isFocusMeteringSupported в CameraInfo , который позволяет приложениям проверять, поддерживается ли данное FocusMeteringAction на текущей камере или нет.
  • Доступен API getResolutionInfo для предоставления информации о разрешении для Preview, ImageCapture и ImageAnalysis .
  • Добавлен новый API ImageCapture.Builder#setJpegQuality , позволяющий изменять качество сжатия выходного изображения JPEG при съемке изображений.
  • В общедоступный API добавлен CameraSelector#filter для фильтрации списка CameraInfos на основе CameraSelector .
  • Добавлен Camera2CameraControl.clearCaptureRequestOptions для очистки существующих параметров запроса захвата.
  • Добавлен экспериментальный API для использования CameraController с внешними библиотеками обработки изображений. например MLKit
  • Добавлен экспериментальный API CameraInfo#getCameraSelector() , который возвращает CameraSelector уникальный для своей камеры.
  • Превёл несколько экспериментальных API в официальные общедоступные API.
  • Аннотация @Experimental заменена на @RequiresOptIn для экспериментальных API. Для вызова экспериментальных API используйте androidx.annotation.OptIn вместо устаревшего androidx.annotation.experimental.UseExperimental.
  • Продвижение следующих экспериментальных API -интерфейсов к официальным API: CameraXConfig.Builder#setAvailableCamerasLimiter() , CameraXConfig.Builder#setMinimumLoggingLevel() , CameraXconfig.Builder#setSchedulerHandler() , CameraXConfig#getAvailableCamerasLimiter() CameraXConfig#getMinimumLoggingLevel() , CameraXConfig#getCameraExecutor() , CameraXConfig#getSchedulerHandler() ,
  • @ExperimentalCameraFilter API
  • экспериментальные API компенсации экспозиции.
  • Продвинут экспериментальный API UseCaseGroup для ядра камеры, жизненного цикла камеры и видео камеры. Добавлены ViewPort#getLayoutDirection , ViewPort.Builder#setLayoutDirection и ViewPort.Builder#setScaleType для настройки области просмотра.
  • Продвинутый жизненный ExperimentalUseCaseGroupLifecycle в формальные общедоступные API.
  • Изменения в существующих API
  • Renamed MediaStoreOutputOptions.getCollection в MediaStoreOutputOptions.getCollectionUri .
  • ActiveRecording был переименован в «Recording», чтобы уменьшить многословие.
  • API создателя QualitySelector изменен на API на основе списков.

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

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

Версия 1.1.0-rc02

1 июня 2022 г.

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

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

  • Исправлено исключение NullPointerException в ImageCapture.takePicture() . ( I92366 , б/230454568 , б/229766155 )
  • Исправлена ​​ошибка, из-за которой AssertionError не обрабатывалась при получении характеристики CONTROL_ZOOM_RATIO_RANGE . ( Я248а , б/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 смещался вбок, если действие не перезапускалось после поворота устройств в многооконном режиме. ( I1ea36 , б/223488673 )
  • Исправлена ​​проблема с несколькими окнами, из-за которой при переключении фокуса обратно на приложение не удается возобновить работу камеры, когда (1) другое приложение с высоким приоритетом открывает другую камеру (2) устройство является устройством Samsung Android 12. ( I7e9f2 )
  • Включено обходное решение для устройств, которые дают сбой при проверке доступности флэш-памяти. Эти устройства не будут иметь фонарик. ( If26a3 , b/216667482 )
  • Исправлена ​​проблема AbstractMethodError возникавшая, когда приложения использовали расширения и включали proguard. ( I7cbaf , б/222726805 )
  • Принудительно отключите режим расширения боке на устройстве Motorola razr 5G, что приведет к проблеме с черным экраном предварительного просмотра. ( I35d49 )
  • Исправлена ​​рассинхронизация аудио/видео после паузы и возобновления на некоторых устройствах Samsung до API 29. ( I64622 , b/202798609 , b/202798572 )
  • Исправлена ​​рассинхронизация аудио/видео после паузы и возобновления на Sony G3125. ( I2a1a5 , б/202799148 )
  • Исправлен сбой, когда устройство записи обнаруживало исключение InvalidConfigException . Однако это исправление только предотвращает сбой приложения, но не устраняет причину InvalidConfigException . Если Recorder по-прежнему не удается настроить, приложения получат обратный вызов об ошибке, когда он начнет запись. ( I89c29 , б/213617227 )

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

  • обновлено :compose:ui:ui-test api (updateApi) из-за миграции test-coroutines-lib ( I3366d )

Версия 1.1.0-beta02

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, все библиотеки CameraX будут иметь один и тот же номер версии. Это поможет разработчикам намного проще отслеживать версии и уменьшит сложность большой матрицы совместимости версий.

Изменения API

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

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

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

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

15 декабря 2021 г.

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

Изменения API

  • Удалены ненужные аннотации @RequiresApi(21) из внутренних классов/интерфейсов. ( I8e286 , б / 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 )
  • Теперь для выбора настроек кодировщика на основе профилей, указанных OEM, используется более интеллектуальная эвристика. ( Iaeef0 )
  • Исправлено: при предварительном просмотре цветные линии будут чересстрочными после начала записи видео UHD на Pixel1. ( I833c6 , б / 205340278 )

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

17 ноября 2021 г.

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

Изменения API

  • В общедоступный API добавлен CameraSelector#filter для фильтрации списка CameraInfo на основе CameraSelector. ( I105d0 )
  • Добавьте API setOutputImageRotationEnabled для конфигурации ImageAnaанализа. Пользователь может включить вращение буфера изображения YUV/RGB. Степень вращения — это относительный поворот, рассчитываемый на основе вращения датчика и вращения цели, чтобы изображение оставалось спереди.

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

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

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

  • MediaStoreOutputOptions.getCollection переименован в MediaStoreOutputOptions.getCollectionUri. ( я16639 )

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

  • Исправлена ​​проблема, из-за которой вспышка срабатывала во время фокусировки касанием (startFocusAndMetering), когда режим вспышки автоматический или всегда включен в условиях низкой освещенности. ( Id4c11 )
  • Отключен HDR+ на Pixel 2 XL/Pixel 3 XL в режиме MINIMIZE_LATENCY, чтобы уменьшить задержку. ( Ib6270 , б/203505523 )

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

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

13 октября 2021 г.

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

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

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

Изменения API

  • Добавлена ​​аннотация @RequiresApi(21) ко всем классам CameraX и удалена minSdkVersion из AndroidManifest.xml. Это позволит легко интегрировать ядро ​​камеры в приложения, у которых minSdkVersion меньше 21, но которые хотят условно использовать пути кода, основанные на API 21 и выше. Для любого приложения с minSdkVersion 21 или выше это изменение не требует никаких действий. ( Ie7f2e , б/200599470 )

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

  • Создайте исключение InitializationException, чтобы приложение могло корректно обрабатывать ошибку AssertionError, возникшую при создании CameraCharacteristics. ( Ибек79 )

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

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

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

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

  • Исправлена ​​проблема, из-за которой снятые фотографии были размыты в режиме MAXIMIZE_QUALITY . ( I173a9 , р/193823892 )
  • Исправлена ​​проблема с Samsung Galaxy J5, из-за которой камера зависала после съемки с включенной/автоматической вспышкой в ​​темноте ( I3aab9 ).
  • Если для ImageCapture требуется обрезка, выходное обрезанное изображение сжимается с указанным уровнем качества JPEG в соответствии с установленным режимом захвата. Если режим захвата CAPTURE_MODE_MINIMIZE_LATENCY , качество сжатия JPEG будет 95. Если режим захвата CAPTURE_MODE_MAXIMIZE_QUALITY , качество сжатия JPEG будет 100. ( Ieb37c , b/142856426 )

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

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 для конфигурации анализа изображений. Пользователь может выбрать ImageAnaанализ.OUTPUT_IMAGE_FORMAT_YUV_420_888 или ImageAnaанализ.OUTPUT_IMAGE_FORMAT_RGBA_8888. По умолчанию будет выбран ImageAnaанализ.OUTPUT_IMAGE_FORMAT_YUV_420_888. ( I7902d )

Изменения API

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

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

  • Исправлен экран предварительного просмотра на Huawei P20 Lite слишком яркий. Эта проблема возникает только при использовании определенных специальных разрешений предварительного просмотра вместе с большим значением масштабирования. ( Идефце , р/192129158 )
  • Исправлена ​​проблема, из-за которой вспышка не работала на некоторых устройствах при установке режима вспышки на FLASH_MODE_ON вскоре после начала съемки. ( Ieb49b )
  • Исправлена ​​проблема, из-за которой предварительный просмотр на некоторое время останавливался при съемке изображений, если VideoCapture, ImageCapture и Preview связаны. ( I56197 , р/193864120 )
  • Позволяет ImageAnaанализу выбирать разрешение выше 1080p. Устройство уровня LIMITED, указанное выше, может поддерживать разрешение размера RECORD для ImageAnaанализа, когда оно связано с функциями предварительного просмотра и ImageCapture. Компромисс заключается в том, что выбранное разрешение для ImageCapture также должно быть разрешением размера RECORD. Чтобы успешно выбрать разрешение размера ЗАПИСИ для ImageAnaанализа, целевое разрешение размера ЗАПИСИ должно быть установлено как в ImageCapture, так и в ImageAnaанализе. Это указывает на то, что приложение четко понимает компромисс и предпочитает, чтобы ImageAnaанализ имел большее разрешение, а не ImageCapture имел МАКСИМАЛЬНОЕ разрешение. Определения ЗАПИСИ, МАКСИМАЛЬНЫХ размеров и более подробную информацию см. на странице https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Размер ЗАПИСИ относится к максимальному поддерживаемому разрешению записи камеры, определенному CamcorderProfile. МАКСИМАЛЬНЫЙ размер относится к максимальному выходному разрешению устройства камеры для этого формата или целевого объекта из StreamConfigurationMap.getOutputSizes(int). ( I1ee97 , р/192911449 )
  • Добавьте информацию Exif к захваченному изображению. ( I01ff0 , б/193342619 )
  • В ImageCapture верните URI сохраненного изображения, если местом сохранения является файл. ( Ib5b49 , b/149241379 )
  • Исправлена ​​проблема, из-за которой изображения, снятые со вспышкой, на многих устройствах были темными. ( I4e510 )

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

21 июля 2021 г.

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

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

  • Исправлена ​​проблема в Samsung Galaxy Note 5, из-за которой камера зависала после съемки с включенной/автоматической вспышкой в ​​темноте ( If6871 ).
  • Исправлена ​​проблема YuvToJpegProcessor EOFException, когда включен режим расширения и установлен режим ImageCapture#CAPTURE_MODE_MAX_QUALITY . ( I538бд , б/192017012 )

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

30 июня 2021 г.

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

Изменения API

  • Продвижение экспериментальных API компенсации экспозиции для ядра камеры ( I08ee8 ).
  • Добавлен API isFocusMeteringSupported в CameraInfo, который позволяет приложениям проверять, поддерживается ли данное действие FocusMeteringAction на текущей камере или нет. ( Ib45ae , р/188606490 )
  • Доступен API getResolutionInfo для предоставления информации о разрешении для предварительного просмотра, ImageCapture и ImageAnaанализа. ( I2b613 , б/188600718 )
  • Следующие экспериментальные API стали официальными API: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor() , CameraXConfig#getSchedulerHandler(). ( I2ade2 )
  • Предоставлен интерфейс CameraProvider для предоставления доступа к набору камер. ( I1a7b1 )
  • Продвигайте экспериментальный API UseCaseGroup для ядра камеры, жизненного цикла камеры и видео камеры. Добавлены ViewPort#getLayoutDirection , ViewPort.Builder#setLayoutDirection и ViewPort.Builder#setScaleType для настройки области просмотра. ( I7cee8 )

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

2 июня 2021 г.

Выпущены androidx.camera:camera-camera2:1.1.0-alpha05 , androidx.camera:camera-core:1.1.0-alpha05 и androidx.camera:camera-lifecycle:1.1.0-alpha05 . Версия 1.1.0-alpha05 содержит эти коммиты.

Изменения API

  • Удален класс Camera2CameraFilter . Предложите выбрать камеру с помощью CameraFilter и получить характеристики CameraCharacteristics или другую информацию, связанную с Camera2, через Camera2CameraInfo, если это необходимо. ( Ib887c )
  • API ExperimentalCameraFilter уже вышли из экспериментальной стадии и стали формальными API. Их можно использовать без аннотированного согласия. ( I4bc94 )
  • Добавлен API состояния камеры, доступный через CameraInfo#getCameraState() . ( Я86б4 )
  • Добавлен экспериментальный API CameraInfo#getCameraSelector() , который возвращает CameraSelector, уникальный для своей камеры ( I77f9f ).

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

  • Исправлена ​​проблема, из-за которой ListenableFuture возвращал setZoomRatio, а setLinearZoom не мог завершиться на некоторых устройствах Android 11 ( I716d7 ).
  • Ускорьте переключение камеры и уменьшите частоту возникновения ошибок устройства камеры ( I34c99 ).
  • Жизненный цикл ExperimentalUseCaseGroup заменен на ExperimentalUseCaseGroup. ( I3b2ef , б/159033688 )

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

21 апреля 2021 г.

Выпущены androidx.camera:camera-camera2:1.1.0-alpha04 , androidx.camera:camera-core:1.1.0-alpha04 и androidx.camera:camera-lifecycle:1.1.0-alpha04 . Версия 1.1.0-alpha04 содержит эти коммиты.

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

  • Исправлена ​​утечка памяти, вызванная одновременным доступом нескольких потоков к одной и той же коллекции. Утечка памяти может привести к сохранению действия или фрагмента экземпляром предварительного просмотра. ( I7b4b8 )
  • Аннотация @Experimental заменена на @RequiresOptIn для экспериментальных API. Для вызова экспериментальных API, используйте androidx.annotation.OptIn вместо устаревшего androidx.annotation.experimental.UseExperimental . ( IFF226 )
  • Фиксированная ImageCapture с Flash On/Auto принимает вымытые изображения на Samsung Galaxy S7. ( I30001 )
  • Добавлена ​​камера, который будет выставлен через Camerainfo. ( I75392 )

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

24 марта 2021 г.

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

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

  • Выходной формат JPEG для ImageCapture#OnImageCapturedCallback , когда режимы расширений включены. ( I0d7b1 )
  • Фиксированная сбой инициализации на устройствах бизонов Umidigi ( i57d9e , b/180818665 )
  • Исправлено предварительный просмотр Samsung A3 в 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 и androidx.camera:camera-lifecycle:1.1.0-alpha02 . Версия 1.1.0-alpha02 содержит эти коммиты.

Изменения API

  • Добавлен API ProcessCameraProvider.getAvailableCameraInfos() для непосредственного извлечения информации о доступных камерах, которые представляют собой либо все камеры устройства, либо выбранные CameraSelector предоставленными в CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector) . ( IEAC08 )

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

  • Camerax теперь пытается заставить открыть камеру при первоначальной попытке, это может привести к тому, что Camerax крадет камеру у других клиентов камеры, когда его приложение имеет более высокий приоритет. ( IAB069 , B/175820568 )
  • Исправлена ​​сбой роболктрического испытания, когда в CameraxConfig используется SetAlableCameraslimiter. ( ICE307 )
  • Это изменение улавливает исключение, когда очередь изображений максимально выведена в воображении. Таким образом, вместо того, чтобы сбой, вы можете заметить, что другие случаи использования заморожены или вялые. Например, замороженный/вялый предварительный просмотр. ( IC12DA , B/175851631 )
  • Fixed ExtensionErrorListener сообщать об ошибках, когда связаны только предварительный просмотр или ImageCapture. ( I5ae39 )
  • Исправлена ​​регрессия производительности ImageCapture, удалив проверку сохраненного изображения, прежде чем сделать снимок. После внесения этого изменения, если пункт сохранения недействителен, потребуется больше времени, чтобы получить ответ отказа, потому что оно попытается сохранить изображение после того, как фотография будет сделана. ( I1fd4e , b/177061560 )
  • Исправлена ​​регрессия производительности ImageCapture с помощью вывода «Файл». ( I5164a , b/177061560 )
  • Документация, обновленная, чтобы рекомендовать против использования ProcessCameraProvider.configureInstance(...) из кода библиотеки. ( Ib8a9f )

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

27 января 2021 года

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

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

  • Обходной путь включен для прерывистых коррумпированных данных изображения в JPEGS на камере SM-G930T. ( I52001 , B/159831206 )
  • Исправлена ​​проблема IllegalArgumentException , которая произошла, когда все поддержанные размеры предварительного просмотра меньше 640x480, а размер дисплея больше, чем 640x480. ( I2a63c , b/150506192 )
  • Ресурсы в библиотеках без явно объявленных государственных ресурсов (например, через public.xml) в настоящее время являются частными по умолчанию. ( IA1DCC , B/170882230 )

Camera-Camera2, Camera-Core и Camera-Lifecycle Версия 1.0.2

Версия 1.0.2

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

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

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

  • Исправьте проблему, в которой снятые фотографии размыты в режиме MAXIMIZE_QUALITY . ( I173A9 , B/193823892 )
  • Исправлена ​​проблема, которая сняла изображение с помощью Flash, темная на многих устройствах. ( I4e510 )

Camera-Camera2, Camera-Core и Camera-Lifecycle Версия 1.0.1

Версия 1.0.1

21 июля 2021 года

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

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

  • Исправлена ​​проблема, которую ListenableFuture возвращенная в setZoomRatio и setLinearZoom не могут завершить на некоторых устройствах Android 11 ( i716d7 )

  • Исправлена ​​проблема, которую камера застряла в закрытии состояния камеры на некоторых устройствах и вызывает черный предварительный просмотр. ( I34c99 )

Camera-Camera2, Camera-Core и Camera-Lifecycle Версия 1.0.0

Версия 1.0.0

5 мая 2021 г.

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

Основные особенности версии 1.0.0

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

Версия 1.0.0-RC05

21 апреля 2021 г.

androidx.camera:camera-camera2:1.0.0-rc05 , androidx.camera:camera-core:1.0.0-rc05 и androidx.camera:camera-lifecycle:1.0.0-rc05 . Версия 1.0.0-RC05 содержит эти коммиты.

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

  • Фиксированная ImageCapture с Flash On/Auto принимает вымытые изображения на 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 и androidx.camera:camera-lifecycle:1.0.0-rc04 . Версия 1.0.0-RC04 содержит эти коммиты.

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

  • Фиксированная сбой инициализации на устройствах бизонов Umidigi ( i57d9e , b/180818665 )

Версия 1.0.0-RC03

24 февраля 2021 г.

androidx.camera:camera-camera2:1.0.0-rc03 , androidx.camera:camera-core:1.0.0-rc03 и androidx.camera:camera-lifecycle:1.0.0-rc03 . Версия 1.0.0-RC03 содержит эти коммиты.

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

  • Ошибка исправления формата в документе ProcessCameraProvider#getInstance
  • Исправлена ​​сбой роболктрического испытания, когда в CameraxConfig используется SetAlableCameraslimiter.
  • Исправлена ​​регрессия производительности ImageCapture, удалив проверку сохраненного изображения, прежде чем сделать снимок. После того, как это изменение, если пункт сохранения недействителен, потребуется больше времени, чтобы получить ответ на отказ, потому что оно попытается сохранить изображение после сделанной фотографии
  • Это изменение улавливает исключение, когда очередь изображений максимально выведена в воображении. Таким образом, вместо сбоя вы можете заметить, что другие случаи использования заморожены или вялые. Например, замороженный/вялый предварительный просмотр.
  • Обходной путь включен для прерывистых коррумпированных данных изображения в JPEGS на камере SM-G930T. ( I52001 , B/159831206 )
  • Это изменение улавливает исключение, когда очередь изображений максимально выведена в воображении. Таким образом, вместо того, чтобы сбой, вы можете заметить, что другие случаи использования заморожены или вялые. Например, замороженный/вялый предварительный просмотр. ( IC12DA , B/175851631 )
  • Исправлена ​​сбой роболктрического испытания, когда в CameraxConfig используется SetAlableCameraslimiter. ( ICE307 )
  • Исправлена ​​регрессия производительности ImageCapture, удалив проверку сохраненного изображения, прежде чем сделать снимок. После внесения этого изменения, если пункт сохранения недействителен, потребуется больше времени, чтобы получить ответ отказа, потому что оно попытается сохранить изображение после того, как фотография будет сделана. ( I1fd4e , b/177061560 )
  • Исправлена ​​регрессия производительности ImageCapture с помощью вывода «Файл». ( I5164a , b/177061560 )

Версия 1.0.0-rc02

27 января 2021 года

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

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

  • Исправлена ​​проблема нелегаларгументации, когда все размеры поддержанных предварительного просмотра меньше 640x480, а размер дисплея больше 640x480. ( B/150506192 )
  • Ограничное количество попыток повторного открытия камеры. Пытаясь восстановиться после некоторых проблем при открытии камеры, камеракс больше не будет пытаться вновь открыть камеру на неопределенный срок, вместо этого она остановится после повторения в течение 10 секунд. I435d2

  • Исправлена ​​проблема IllegalArgumentException , которая произошла, когда все поддержанные размеры предварительного просмотра меньше 640x480, а размер дисплея больше, чем 640x480. ( I2a63c , b/150506192 )

Версия 1.0.0-rc01

16 декабря 2020 г.

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

Изменения API

  • Изменил Camerafilter и Camera2filter, чтобы принять Camerainfo. ( I6883d )
  • Добавлен экспериментальный класс Camera2CamerAcontrol, чтобы динамически позволить динамическому взаимодействию с API Camera2. ( I45cf3 )
  • Переименованная Camera2camerainfo #fromcamerainfo до #from. ( Ia2bd6 )
  • Добавлено экспериментальное API SetAvailAbleCamerAslimiter в CameraxConfig, чтобы позволить приложениям оптимизировать задержку инициализации, избегая инициализации неиспользованных камер. ( I6cf88 )
  • Добавлено экспериментальный метод CameraXConfig.Builder#setMinimumLoggingLevel() чтобы позволить установить минимальный уровень журнала для журналов камеры. Когда не установлено, по умолчанию по умолчанию Log#DEBUG . ( IC3245 )

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

  • Обходной путь включен для прерывистых коррумпированных данных изображения в JPEGS на камере SM-G930V. ( I5aca5 , b/159831206 )
  • Исправлена ​​проблема, которую снимки не получает результатов, когда Flash всегда/включена, а среда темная на устройствах Samsung SM-A716. ( If98b2 , b/172036589 )
  • Исправлена ​​вопрос о том, что предварительный просмотр не может быть остановлен, позвонив в Preview.setSurfaceProvider(null) . ( I3ac18 )
  • Исправлена ​​проблема ориентации при захвате изображений 4: 3 на некоторых устройствах. ( I0e3fb , b/171492111 )

Camera Camera2, Core, & Lifecycle версии 1.0.0-бета12

11 ноября 2020 г.

androidx.camera:camera-camera2:1.0.0-beta12 , androidx.camera:camera-core:1.0.0-beta12 и androidx.camera:camera-lifecycle:1.0.0-beta12 . Версия 1.0.0-бета12 содержит эти коммиты.

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

  • Отключена Auto Flash на устройствах Samsung A3, чтобы исправить сбой при снимке с режимом Auto Flash AE на устройствах Samsung A3. ( IA5FE3 , B/157535165 )
  • Исправлена ​​проблема, в которой предварительный просмотр был растянут на устройствах Nexus 4 под управлением Android L (уровни API 21 и 22). ( I4d407 , b/158749159 )
  • OnImageCapturedCallback#onCaptureSuccess Base Class Реализация больше не закрывает изображение. Это для предотвращения неожиданного поведения для разработчиков. Разработчики не должны полагаться на Super.oncapturescesse, чтобы закрыть изображение. ( IFBF9C )
  • Вариант Androidx экспериментальной аннотации был устарел для обеспечения паритета с котлином. Он был заменен аннотацией Trenyoptin, а Linter, обращенный к Java, был обновлен, чтобы поддержать как новую аннотацию Kotlin, так и новый вариант Androidx. ( I52495 , B/151331381 )

Camera-Camera2 версия 1.0.0-бета11

14 октября 2020 г.

androidx.camera:camera-camera2:1.0.0-beta11 выходит. Версия 1.0.0-бета11 содержит эти коммиты.

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

  • Поддерживает Android 11 CONTROL_ZOOM_RATIO API для увеличения устройств Android 11 или более позднего дня, которые содержит действительный CONTROL_ZOOM_RATIO_RANGE . ( I62cc6 )

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

  • Исправлена ​​проблема с номером формирования, когда идентификатор камеры является идентификатором камеры. ( IB2228 )
  • Улучшение задержки инициализации и Bindtolifecyclecyclecyclecyclecyclecyclecyclecycycle ( i61dc5 )
  • Создание USECASS не требует инициализации камеры для завершения. Все специфические конфигурации реализации устанавливаются на USECASE после того, как она прикреплена к экземпляру камеры, который для публичного API - ProcessCameraProvider.bindToLifecycle() . ( IA5411 )
  • <UseCase>.getTargetRotation() вернет Surface.ROTATION_0 , если вы называете, чтобы быть прикрепленным к экземпляру камеры, если только на целевой ротации не было установлено строитель или USECASE. ( I80fcd )

Камера версия 1.0.0-бета11

14 октября 2020 г.

androidx.camera:camera-core:1.0.0-beta11 выпускается. Версия 1.0.0-бета11 содержит эти коммиты.

Новые функции - поддерживает Android 11 CONTROL_ZOOM_RATIO API для Zoom на устройствах Android 11 или более поздних устройств, которые содержит действительный CONTROL_ZOOM_RATIO_RANGE . ( I62cc6 )

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

  • Исправлена ​​проблема с номером формирования, когда идентификатор камеры является идентификатором камеры. ( IB2228 )
  • Создание USECASS не требует инициализации камеры для завершения. Все специфические конфигурации реализации устанавливаются на USECASE после того, как она прикреплена к экземпляру камеры, который для публичного API - ProcessCameraProvider.bindToLifecycle() . ( IA5411 )
  • <UseCase>.getTargetRotation() вернет Surface.ROTATION_0 , если вы называете, чтобы быть прикрепленным к экземпляру камеры, если только на целевой ротации не было установлено строитель или USECASE. ( I80fcd )

Camera Core Version 1.0.0-Beta10

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

androidx.camera:camera-core:1.0.0-beta10 выпускается. Версия 1.0.0-бета10 содержит эти коммиты.

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

  • Исправьте ошибку в проверке файла Сохранить место для захвата изображения ( i8c565 , b/167697553 )

Camera-Camera2 Версия 1.0.0-BETA10

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

androidx.camera:camera-camera2:1.0.0-beta10 выпускается. Версия 1.0.0-бета10 содержит эти коммиты.

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

Camera-Camera2 Версия 1.0.0-BETA09

16 сентября 2020 года

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

Изменения API

  • Вместо того, чтобы предоставлять статические методы, Camera2camerainfo принимает экземпляр Camerainfo при создании для получения информации Camera2. ( I5b844 )

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

  • Фиксированная проблема с целевым соотношением сторон на планшетных устройствах. Размер 16: 9 должен быть выбран, когда целевое соотношение сторон установлено как AspectRatio.RATIO_16_9 . ( IB7FCF , B/151969438 )
  • Бросьте InitializationException , чтобы приложение могло изящно обрабатывать AssertionError, произошедший при создании камерахарактеристики. ( I89c8c , b/160524721 )
  • Добавлены экспериментальные интерфейсы для эксплуатации ( IF96C7 )

Camera Core Version 1.0.0-BETA09

16 сентября 2020 года

androidx.camera:camera-core:1.0.0-beta09 выходит. Версия 1.0.0-beta09 содержит эти коммиты.

Изменения API

  • Исправлена ​​ошибка, в которой ViewPort помечен как не нулевая на usecasegroup. Разработчики должны иметь возможность создавать порт View, не настраивая просмотр. ( IE3D2E )
  • Добавлены экспериментальные интерфейсы для ExposureCompensation ( IF96C7 )
  • Разрешить произвольное вращение целевого целевого предварительного просмотра. Информация о преобразовании рассчитывается и возвращается пользователю на лету через новый обратный вызов TranformationInfoListener . ( I21470 )

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

  • Исправлена ​​проблема, которая вспыхивает на некоторых устройствах, не выключалась бы. Это происходит, когда режим Flash устанавливается на FLASH_MODE_ON , чтобы сфотографироваться, и изменяется на FLASH_MODE_OFF при запуске вспышки. Симптом похож на режим горелки. ( IB4451 , B/162568128 )
  • Принудительный предварительный просмотр для использования TextureView, если включен эффект расширения, и реализация библиотеки поставщиков должна выполнить специальный процесс на выходной поверхности. ( I0c3cc )
  • Исправлена ​​утечка активности/фрагмента, когда контекст активности/фрагмента передается в ProcessCameraProvider.getInstance(Context) .

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

  • При установке Viewport, настройки Crop of ImageCapture могут быть неверным на устройствах, которые вращают буфер изображения в HAL. Это будет исправлено в следующем выпуске.

Camera-Camera2 Версия 1.0.0-BETA08

19 августа 2020 г.

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

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

  • Оптимизированный Bindtolifecycle быстро запускается по основной потоке. ( I1d57e )
  • DisplayerientEdeReeringPointFactory принимает экземпляр CameraInfo вместо камераселектора, поэтому существует прямое отображение, для которой камера будет генерировать точки. Все классы, которые используют DisplayerientEdereeringPointFactory, также принимают экземпляр CAMERAINFO вместо камеры. ( I400c1 )
  • Исправлено фиксированное значение достопримечательностей с разрешением. Проблема группировки по размеру размера 16: 9 MOD16 (864x480) выбирается, когда настройка целевого разрешения составляет 2016x1080, а также поддерживается еще один размер 1920x1080 16: 9. ( I53167 , B/159363774 )
  • Исправьте проблему CamerAcontrol, где он не может работать в условиях гонки ( I2279F , B/152333890 , B/160714166 )

Camera Core Version 1.0.0-BETA08

19 августа 2020 г.

androidx.camera:camera-core:1.0.0-beta08 выходит. Версия 1.0.0-beta08 содержит эти коммиты.

Изменения API

  • DisplayOrientedMeteringPointFactory принимает экземпляр CameraInfo вместо CameraSelector , поэтому существует прямое отображение, для которой камера будет генерировать точки. Все классы, которые используют DisplayOrientedMeteringPointFactory также принимают экземпляр CameraInfo вместо CameraSelector . ( I400c1 )

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

  • Для захвата изображения перезаписывайте флаг флип -горизонтального плана в метаданных в зависимости от направления камеры. ( I28499 )
  • Инициализация больше не должна сбое при использовании контекста, который не возвращает объект приложения из Context.getApplicationContext() . ( I3d3c9 , b/160817073 )

Camera-Camera2 Версия 1.0.0-BETA07

22 июля 2020 г.

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

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

  • Исправлена ​​проблема, что предварительный просмотр растянулся на устаревшем устройстве Android 5.0. ( I0c03a )
  • Исключил некоторые поддержанные размеры JPEG, которые приведут к выпуску Wysiwyg на некоторых устройствах. ( IB5128 )

Camera Core версия 1.0.0-beta07

22 июля 2020 г.

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

Изменения API

  • Merge FIT_CENTER , FIT_START и FIT_END Стиль FIT с FIT . FIT означает, что возвращенным настройка будет максимально возможным прямым датчиком. ( IA73C3 )
  • Preview Crop Rect настроен ViewPort. Только область, покрытая прямоугольником, должна быть видна конечным пользователям. ( I142A4 )

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

  • Исправлена ​​проблема, что предварительный просмотр растянулся на устаревшем устройстве Android 5.0. ( I0c03a )
  • Исправлена ​​проблема исключения ConcurrentModificationException Exception при рассеянии вариантов использования. ( I371c0 )

Camera-Camera2 Версия 1.0.0-BETA06

24 июня 2020 г.

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

Изменения API

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

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

  • Исправлена ​​проблема, в которой StartFocusandemering не может успешно сосредоточиться на Samsung Galaxy S7. ( If3be7 , b/159039233 )
  • Исправить камеру не может быть закрыта после того, как уйти с приложения. ( I7a7b3 )
  • Исправить повторные переключения камеры Предварительный просмотр при использовании реализации SurfaceView PreviewView ( i920CE )
  • CameraControl#startFocusAndMetering не удастся, если ни один из указанных пунктов метки не может генерировать допустимые прямоугольники измерения. ( Id53ce )

Camera Core Version 1.0.0-BETA06

24 июня 2020 г.

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

Изменения API

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

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

  • Камеракс теперь можно настроить с помощью ProcessCameraProvider#configureInstance() перед вызовом ProcessCameraProvider#getInstance() . Это позволяет настраивать CameraXConfig , не требуя реализации CameraXConfig.Provider в классе приложения приложения. ( IA1A8D )
  • CameraControl#startFocusAndMetering не удастся, если ни один из указанных пунктов метки не может генерировать допустимые прямоугольники измерения. ( Id53ce )

Camera-Camera2 Версия 1.0.0-BETA05

10 июня 2020 года

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

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

  • Исправьте сбой при запуске приложения при инициализации Camerax, в то время как телефон не нарушает режим. InitializationException содержит CameraUnavailableException , которое будет установлено для ListenableFuture результата интиализации вместо сбоя приложения. ( I9909A , B/149413835 )
  • Исправлена ​​аварий при вызове startFocusAndMetering на устройствах, которые CONTROL_AF_STATE - NULL. ( IFE55E , B/157084254 )

Camera Core Version 1.0.0-BETA05

10 июня 2020 года

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

Изменения API

  • Исправьте сбой при запуске приложения при инициализации Camerax, в то время как телефон не нарушает режим. InitializationException содержит CameraUnavailableException будет установлена ​​для ListenableFuture результата интиализации вместо сбоя приложения. ( I9909A , B/149413835 )

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

  • Обновленные Javadocs of setTargetResolution и setTargetRotation . ( IAE16F )

Camera-Camera2 Версия 1.0.0-BETA04

27 мая 2020 г.

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

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

  • Разрешено приложения для установки любых параметров запроса Camera2 с помощью Camera2Interop не вызывая сбой. Обратите внимание, что если возникают проблемы, возникающие в результате переоценки параметров. Стабильность и поведение не гарантируются при переоценке параметров с использованием Camera2interop. ( IBE5A1 , B/149103700 )
  • Авто-инициализация фиксируется при использовании приложения на устройстве, которое использует псевдо-локальный. ( I3bef3 , b/154767663 )
  • Преобразованный журнал ошибок, связанный с отдельным вариантом использования, с журналом отладки в Camera2cameraimpl. ( I1A565 , B/154422490 )
  • Исправлена ​​проблема, когда снятое изображение иногда слишком темное, хотя Flash запускается. ( I5d9fa , b/149729613 )
  • Исправить ошибку, где буфер в ImageProxy из ImageCapture не был повторно ( I0C455 , B/153249512 )
  • Исправлена ​​проблемы, где только обязательная обработка ImageCapture: (1) не удалось сделать фотографии с Max_Quality; (2) Сгенерировало плохое качество изображения, потому что автоматическая экспозиция не работает. ( I17782 , B/145326998 )
  • Улучшенная надежность повторного открытия камеры при отключении камеры с помощью другого процесса или Codepath крадет камеру ( i1fbc3 , b/153714651 )

Camera Core версия 1.0.0-beta04

27 мая 2020 г.

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

Изменения API

  • Добавляет экспериментальный API, CameraXConfig.Builder#setSchedulerHandler() для установки обработчика, используемого внутри, стеком камер камеры. Этот новый API вместе с CameraXConfig.Builder#setCameraExecutor() должен разрешать полное управление потоками, используемыми стеком камер камеры. ( I7bf32 , b/121160431 )

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

  • Исправляет сбой в ImageAnalysis , где доступ ImageProxy доступна после того, как ImageReaderProxy был закрыт. Это также делает так, что все ImageProxy полученные Analyzer должны быть закрыты до того, как ImageReaderProxy будет закрыт. ( I4b299 , b/145956416 , b/154155377 , b/156357269 )
  • Удал параметр CameraInfo из PreviewView#createSurfaceProvider() , PreviewView теперь внутренне извлекает его из SurfaceRequest . ( If18f0 , b/154652477 )
  • Авто-инициализация фиксируется при использовании приложения на устройстве, которое использует псевдо-локальный. ( I3bef3 , b/154767663 )
  • Исправлена ​​проблема, когда снятое изображение иногда слишком темное, хотя Flash запускается. ( I5d9fa , b/149729613 )
  • Исправлена ​​проблема с использованием ImageAnalysis , где несколько вызовов Setanalyzer/Clearanalyzer привели к тому, что анализатор не получил изображения для анализа. ( I6169f , b/151605317 , b/153514544 )
  • Исправить ошибку, где буфер в ImageProxy из ImageCapture не был повторно ( I0C455 , B/153249512 )
  • Исправлена ​​проблема, которую первая камера в поддерживаемом списке от CameraManager не всегда выбрана для использования. ( I4c624 , b/153418028 )
  • Исправлено прерывистый сбой, вызванный настройкой Preview.SurfaceProvider не выпускает ранее запрашиваемую поверхность. “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation” ( i8e4e7 , b/155936225 )

Camera-Camera2 Версия 1.0.0-BETA03

15 апреля 2020 года

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

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

  • Исправления, чтобы поддержать выпуск camera-core

Camera Core версия 1.0.0-beta03

15 апреля 2020 года

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

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

  • Фиксированная регрессия от Beta03, где вызов bindToLifecycle() с нулевым UseCase S вызовет исключение. Это предотвратило поиск Camera без привязки UseCase .

Camera-Camera2 Версия 1.0.0-BETA02

1 апреля 2020 года

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

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

  • Исправлена ImageInfo.getRotationDegrees() из ImageProxy создаваемого ImageCapture чтобы соответствовать значению вращания ESIF. ( ID4281 , B/150802561 )
  • Явное упорядочение зависимостей камеры в build.gradle больше не требуется для использования реализации Camerax/Camera2 по умолчанию. В случаях, когда требуется объявление строгие зависимости, все зависимости камерных камер теперь могут быть включены в файл сборки. ( I46e88 )
  • Исправлена ​​проблема IllegalArgumentException происходящая на устройствах, где размер дисплея меньше 640x480. ( IFE3F2 , B/150506192 )
  • Фиксированный bindToLifecycle , так что он изменяет USECASE только в том случае, если он успешно связывает. Ранее при вызове bindToLifecycle для выполнения расчетов разрешения обновляется USECASE. Теперь ему больше не нужно обновлять USECASE для выполнения расчетов ( i78d9e )

Camera Core версия 1.0.0-beta02

1 апреля 2020 года

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

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

  • Исправлена ImageInfo.getRotationDegrees() из ImageProxy создаваемого ImageCapture чтобы соответствовать значению вращания ESIF. ( ID4281 , B/150802561 )
  • Фиксированный bindToLifecycle , так что он изменяет USECASE только в том случае, если он успешно связывает. Ранее при вызове bindToLifecycle для выполнения расчетов разрешения обновляется USECASE. Теперь ему больше не нужно обновлять USECASE для выполнения расчетов ( i78d9e )
  • Исправлена ​​проблема, в которой сеанс захвата Preview использования не был обновлен, когда поверхность предварительного просмотра изменялась после вызова Preview.setSurfaceProvider() более одного раза.

Camera-Camera2 Версия 1.0.0-BETA01

26 февраля 2020 г.

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

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

  • Переименован в SurfaceRequest.setSurface(Surface) к SurfaceRequest.provideSurface(Surface) и SurfaceRequest.setWillNotComplete() к SurfaceRequest.willNotProvideSurface() . ( I224fe )
  • Исправлена ​​проблема с соотношением сторон сохраненного изображения, которое не было правильным после изменения целевого значения вращения с использованием ImageCapture.setTargetRotation() . ( I474ea , b/148763432 )
  • Исправлена ​​инициализация вариантов приложения с прогикой, включенной путем сохранения флага, который устанавливает поставщик CameraXConfig . ( I2d6c1 )

Camera Core версия 1.0.0-beta01

26 февраля 2020 г.

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

Изменения API

  • Заменил ListenableFuture на SurfaceRequest.provideSurface() с помощью Executor и Callback . Это упрощает API, больше не требуя обработки исключений на provideSurface() и обеспечивает соблюдение того, что вызов provideSurface() не может быть отменен. Это должно предотвратить аварии на более старых устройствах, вызванных преждевременным выпуском поверхностей. Объект SurfaceRequest.Result теперь используется для отслеживания того, как SurfaceRequest использует предоставленную Surface . ( I7854b )
  • Переименован SurfaceRequest.setSurface(Surface) к SurfaceRequest.provideSurface(Surface) и SurfaceRequest.setWillNotComplete() в SurfaceRequest.willNotProvideSurface() . ( I224fe )

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

  • Исправлена ​​проблема с соотношением сторон сохраненного изображения, которое не было правильным после изменения целевого значения вращения с использованием ImageCapture.setTargetRotation() . ( I474ea , b/148763432 )
  • Исправлена ​​инициализация вариантов приложения с прогикой, включенной путем сохранения флага, который устанавливает поставщик CameraXConfig . ( I2d6c1 )
  • Обновленная документация для API режима Flash, чтобы включить возможные значения. ( I4a3ec )

Camera-Camera2 Версия 1.0.0-Alpha10

10 февраля 2020 года

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

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

  • Улучшенная стабильность на устройствах INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY , обеспечивая, чтобы Surface S сохранялась только для продолжительности использования Camera2. ( I9dac2 )
  • Исправлена ​​неэкспенсированная проблема предварительного просмотра на устаревших устройствах путем настройки CONTROL_AE_TARGET_FPS_RANGE правильно. ( 1224638 )

Camera Core версия 1.0.0-Alpha10

10 февраля 2020 года

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

Изменения API

  • Обновленная ImageCapture , чтобы позволить сохранение изображений в Uri и OutputStream . Комбинированные перегруженные методы takePicture в одну. Обновленное тестовое приложение для использования Uri в качестве канонического примера. ( IA3BEC )
  • Preview.PreviewSurfaceProvider был переименован в Preview.SurfaceProvider . SurfaceProvider S больше не требует, чтобы разработчики создавали свою собственную ListenableFuture , а предоставление Surface теперь выполняется с помощью нового объекта SurfaceRequest . Метод Preview.getPreviewSurfaceProvider() был удален из -за его потенциала для неправильного использования, когда Preview сочетается с другими классами, такими как PreviewView . ( I20105 )
  • Добавлен getTargetRotation() и getTargetName() для Preview . ( Iceee7 )
  • Добавлен getTargetRotation() , getBackpressureStrategy() и getImageQueueDepth() в ImageAnalysis . ( I9d6d9 )
  • Добавлен getTargetRotation() и getCaptureMode() в ImageCapture() ( i5bc17 )
  • Аргументы, которые ранее были переданы в ImageCapture.OnImageSavedCallback.onError() и ImageCapture.OnImageCapturedCallback.onError() теперь были заменены одним аргументом ImageCaptureException , который все еще содержит всю информацию, которая была ранее передана.
  • Аргумент файла, ранее принятый в ImageCapture.OnImageSavedCallback.onImageSaved() был удален. ( I750d2 )
  • Preview и классы ImageCapture теперь отмечены окончательными. ( I2500b )
  • API обновил, с getZoomRatio() , getMaxZoomRatio() , getMinZoomRatio() и getLinearZoom() методы CameraInfo объединяющегося в getZoomState() , который возвращает экземпляр ZoomState . ( IB19FE )
  • Снято поля API OPTION_TARGET_CLASS и OPTION_TARGET_NAME из CameraXConfig , поскольку они предназначены только для внутренней библиотеки. Удаленный конструктор для CameraXConfig.Builder . ( I96912 )
  • Удалено требование, чтобы приложение должно расширить Application для инициализации CAMERAX. Теперь Camerax будет инициализирован с помощью конфигурации Camera2 по умолчанию, если артефакт camera-camera2 включен в build.gradle . ( I58ff5 ) ( B/146923574 )

Camera-Camera2 Версия 1.0.0-Alpha09

22 января 2020 г.

androidx.camera:camera-camera2:1.0.0-alpha09 выпускается. Версия 1.0.0-Alpha09 содержит эти коммиты .

API меняется

  • Добавьте путь между камерой2 для извлечения идентификатора камеры Camera2. Вы можете извлечь идентификатор камеры из CameraInfo используя Camera2CameraInfo.extractCameraId() . Следующий образец кода показывает, как использовать это:

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

    Класс Camera2CameraInfo требует ExperimentalCamera2Interop маркетинга.

Camera Core версия 1.0.0-Alpha09

22 января 2020 г.

androidx.camera:camera-core:1.0.0-alpha09 выпускается. Версия 1.0.0-Alpha09 содержит эти коммиты .

API меняется

  • SurfaceOrientedMeteringPointFactory PARAMATERY useCaseForSurface был переименован в useCaseForAspectRatio , и эталонная документация была расширена.
  • FocusMeteringAction.Builder.from() Методы заменяются конструкторами FocusMeteringAction.Builder() .
  • Удаленный DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float) . Приложения должны использовать конструктор, который принимает параметр Display , и передавать текущий дисплей.
  • Улучшения Javadoc для фокусировки и измерения API, касающихся MeteringMode и 3A -флагов, и использование параметра Display .
  • Расширил справочную документацию для setZoomRatio и setLinearZoom .

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

  • Исправлены проблемы при закрытии, затем открывают камеры, что приводит к сбою «предварительного кондиционирования».
  • Исправлена ConcurrentModificationException , которое могло возникнуть при использовании API -файлов Torch и Zoom.
  • Исправлена ​​проблема, чтобы теперь выбрать разрешения ближе к запрошенному разрешению, когда доступен размер размеров MOD16.
  • startFocusMetering и cancelFocusMetering API теперь ведут себя как задокументированные, с правильным временем и потенциально возвращающими ошибки, когда они возникают.
  • Фиксированная проблема, когда была запрошена конкретная целевая разрешение с соотношением урожая на устройстве, которое не поддерживает такие размеры. Теперь непредученный размер достаточного разрешения, чтобы связать исходный запрос, будет выбран, когда будет доступен.

Camera-Camera2 Версия 1.0.0-Alpha08

18 декабря 2019 г.

androidx.camera:camera-camera2:1.0.0-alpha08 выпускается. Версия 1.0.0-Alpha08 содержит эти коммиты .

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

  • Не все параметры запроса захвата Camera2 работают при использовании Interop Camera2. Если запрошенная опция не поддерживается, сеанс не может запустить, и может возникнуть такая ошибка: 09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination

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

  • Исправлена ​​проблема, в которой просмотр черного экрана произошел после вращения или переключения камеры для уровней API 21 и 22.

Изменения API

  • Экспериментальный : добавил путь между камерой 2 для извлечения идентификатора камеры.

Camera Core версия 1.0.0-Alpha08

18 декабря 2019 г.

androidx.camera:camera-core:1.0.0-alpha08 выпускается. Версия 1.0.0-Alpha08 содержит эти коммиты .

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

  • Приложения с использованием PreviewView или CameraView могут иметь неверный предварительный просмотр соотношения сторон. Это происходит после паузы или возобновления на некоторых полных устройствах, таких как Pixel2.

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

  • Обновлено документацию для FocusMeteringAction и CameraControl .
  • Реализовано TorchControl для enableTorch() и getTorchState() .

Изменения API

  • Hid Intdefs и перемещали константы Intdef за пределами определения Intdef.
  • Перенос rotationDegrees от класса OnImageCaptureCallback в ImageInfo .
  • Перенос rotationDegrees от класса Analyzer в ImageInfo .

Camera-Camera2 Версия 1.0.0-Alpha07

4 декабря 2019 года

androidx.camera:camera-camera2:1.0.0-alpha07 выпускается. Версия 1.0.0-Alpha07 Camera-Camera2 содержит эти коммиты

  • Camera2Config теперь доступна для использования с инициализацией и настройкой реализации на основе Camera2 для Camerax. Более подробная информация о том, как использовать это в инициализации, находится в разделе Camera Core примечания релиза.
  • Международный интерфейс Camera2 теперь отмечается как экспериментальный и перемещенный в отдельный пакет, androidx.camera.camera2.interop.

Camera Core версия 1.0.0-Alpha07

4 декабря 2019 года

androidx.camera:camera-core:1.0.0-alpha07 выпускается. Версия 1.0.0-Alpha07 Camera Core содержит эти коммиты

Обратите внимание, что в этом альфа -выпуске существуют некоторые существенные изменения, когда мы готовимся к бета -версии. Мы рекомендуем вам просмотреть изменения и поделиться любыми отзывами, которые вы можете иметь в группе Google Camerax . Для тех разработчиков, использующих камеру, в приложениях, которые находятся в магазине Play Store, мы рекомендуем ждать официального бета -выпуска перед обновлением библиотеки в ваших приложениях.

API меняется

  • Важно : инициализация камеры изменилась. Приложения должны реализовать CameraXConfig.Provider и использовать Camera2Config по умолчанию, предоставленную androidx.camera.camera2 . Типичное использование:

    import androidx.camera.camera2.Camera2Config
    import androidx.camera.core.CameraXConfig
    
    public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
        override fun getCameraXConfig(): CameraXConfig {
                return Camera2Config.defaultConfig(this)
        }
    }
    
  • Класс камер был удален. bindToLifecycle() , unbind() , unbindAll() , isBound() и hasCamera() ранее предоставленная при вызове класса CAMERAX, теперь доступны через ProcessCameraProvider .

  • Примечание Percocess ProcessCameraProvider получается асинхронно с использованием статического метода ProcessCameraProvider.getInstance() , который возвращает слушаемое будущее, которое обеспечивает ProcessCameraProvider для завершения. Здесь он показан в onCreate() для типичного использования. Вы можете разместить вызовы в getInstance() позже в жизненном цикле деятельности, чтобы отложить задержку инициализации на более позднее время (например, когда пользовательский действие открывает пользовательский интерфейс камеры).

    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);
      }
    
  • Слушатель может быть добавлен в ListenableFuture , возвращенной getInstance() . Это гарантирует, что поставщик камеры может быть извлечен из Future не блокируя Future.get()

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • Выбор камеры теперь выполняется селектором камеры, а не для каждого использования

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • CameraProvider.bindToLifecycle дается владельцу жизненного цикла, селектор камеры и варианты использования, которые затем связаны с данным владельцем жизненного цикла и работают для выбранной камеры.

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • Классы использования «конфигурация» удаляются. Вместо этого создайте сценарии непосредственно, настраивая параметры на каждом построителе варианта использования. Например:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • Предварительный обзор был обновлен, чтобы принять поверхность, созданную и управляемой приложением, чтобы обеспечить лучшие практики Android. Настоятельно рекомендуется использовать класс PreviewView View, представленное в пакете камеры.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • См. Документация для прикрепления поверхности, управляемой приложением. В этих случаях приложение управляет жизненным циклом поверхности.

  • ВАЖНО : Реализация метода анализатора ImageAnalysis должна вызовать image.close() на полученных изображениях, когда они закончены, используя их. В противном случае, новые изображения не могут быть получены, или камера может задержать, в зависимости от настройки обратного давления. См . Подробнее.

  • ImageAnalysis ImageReaderMode теперь изменяется на стратегию обратного давления intdef .

  • ImageProxy.getImage() отмечается как экспериментальный. Приложения должны аннотировать использование, например, через @androidx.camera.core.ExperimentalGetImage

  • Требование аннотации UIThread для Analyzer было удалено.

  • Функция ImageAnalysis.clearAnalyzer() добавляется для удаления анализатора.

  • Слушатели с более чем 1 методом были переименованы в обратный вызов:

    • ImageCapture.OnImageCapturedListener теперь ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener теперь ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener теперь VideoCapture.OnVideoSavedCallback
  • Enums изменились на Intdef

  • Были добавлены элементы управления масштабированием:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • CameraInfo.hasFlashUnit() добавляется, чтобы определить, присутствует ли оборудование флэш -факела.

  • CameraInfo.isFlashAvailable() был удален. Факел переопределяет функциональность вспышки. Более подробная информация включена в справочную документацию .

  • ImageCapture.Metadata Поля заменяются на get/set/is Accessors.

  • startFocusMetering и cancelFocusMetering теперь возвращают ListenableFutures , которые представляют асинхронную работу вызова.

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

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

  • Исправлена ​​проблема при снимке возобновления (после предыдущей паузы была сфотографирована в ожидании завершения).
  • Известная проблема: CameraControl.enableTorch() функциональна, но возвращаемая ListenableFuture<Void> всегда является непосредственным complete(success) будущим, даже если нет флэш -единицы. Будущие версии исправят это до окончательного поведения: когда нет флэш -единицы, enableTorch(true) сразу же не удается (не отправляет запрос на CaptureSession ), а TorchState остается отключенным.
  • Известная проблема: startFocusAndMetering и cancelFocusAndMetering Start и отмените измерение фокуса, но верните немедленно completed (success) будущее, не представляющее документированное поведение. FocusMeteringResult от ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() является поддельным результатом, который isFocusSuccessful() и всегда «ложным», отличающимся от предполагаемого, задокументированного поведения.
  • Известная проблема: разрабатывается заводская фабрика точек измерения для использования с событиями Touch PreviewView . На данный момент приложения, подключающие пользовательские поверхности, могут использовать существующие заводы точек измерения, и в противном случае для PreviewView не доступна функциональности с фокусом.

Camera-Camera2 и Camera Core версия 1.0.0-Alpha06

9 октября 2019 года

androidx.camera:camera-camera2:1.0.0-alpha06 и androidx.camera:camera-core:1.0.0-alpha06 выпускаются. Это коммиты, включенные в camera-camera2:1.0.0-alpha06 , и это коммиты, включенные в camera-core:1.0.0-alpha06 .

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

Изменения в установке соотношений сторон:

  • setTargetAspectRatioMode() был добавлен и принимает аргумент перечисления. Это устанавливает режим соотношения сторон с соотношением RATIO_4_3 или RATIO_16_9 вместо произвольного соотношения сторон. Это ближе отражает тот факт, что из камеры предоставляются только определенные соотношения сторон, а не какое -либо произвольное соотношение.
    • В настоящее время единственные доступные коэффициенты - 16: 9 и 4: 3. В случае 1: 1 только определенные устройства имеют это доступно от камеры, а затем только с ограниченными разрешениями. Приложения, проектирующие интерфейс 1: 1 или обработка, должны использовать более гибкий выбор 16: 9 или 4: 3 и обрезать дисплей или обрабатывать субрегион.
    • Эти соотношения сторон ориентированы на использование максимальной области датчика.
  • getTargetAspectRatio() был добавлен в APIS config API -интерфейсы варианта, возвращая соотношение сторон.
  • 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

August 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

June 5, 2019

androidx.camera:camera-core:1.0.0-alpha02 and androidx.camera:camera-camera2:1.0.0-alpha02 are released. Версия 1.0.0-alpha02 содержит эти коммиты .

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

  • 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

May 7, 2019

androidx.camera:camera-core:1.0.0-alpha01 and androidx.camera:camera-camera2:1.0.0-alpha01 are released. Версия 1.0.0-alpha01 содержит эти коммиты .

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() вернет Surface.ROTATION_0 , если вы называете, чтобы быть прикрепленным к экземпляру камеры, если только на целевой ротации не было установлено строитель или 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

September 16, 2020

androidx.camera:camera-lifecycle:1.0.0-beta09 is released. Версия 1.0.0-beta09 содержит эти коммиты.

Camera-Lifecycle Version 1.0.0-beta08

19 августа 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta08 is released. Версия 1.0.0-beta08 содержит эти коммиты.

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

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

Camera-Lifecycle Version 1.0.0-beta07

22 июля 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta07 is released. Версия 1.0.0-beta07 содержит эти коммиты.

Camera-Lifecycle Version 1.0.0-beta06

24 июня 2020 г.

androidx.camera:camera-lifecycle:1.0.0-beta06 is released. Версия 1.0.0-beta06 содержит эти коммиты.

Изменения API

  • CameraX can now be configured with ProcessCameraProvider#configureInstance() before calling ProcessCameraProvider#getInstance(). Это позволяет настраивать CameraxConfig, не требуя реализации cameraxconfig.provider в классе приложения приложения. ( Ia1a8d )

Camera-Lifecycle Version 1.0.0-beta05

June 10, 2020

androidx.camera:camera-lifecycle:1.0.0-beta05 is released. Версия 1.0.0-beta05 содержит эти коммиты.

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

  • 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. Версия 1.0.0-beta04 содержит эти коммиты.

Camera-Lifecycle Version 1.0.0-beta03

April 15, 2020

androidx.camera:camera-lifecycle:1.0.0-beta03 is released. Версия 1.0.0-beta03 содержит эти коммиты.

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

  • Фиксированная регрессия от Beta03, где вызов bindToLifecycle() с нулевым UseCase S вызовет исключение. 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. Версия 1.0.0-beta01 содержит эти коммиты.

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

  • 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

April 1, 2020

androidx.camera:camera-lifecycle:1.0.0-beta02 is released. Версия 1.0.0-beta02 содержит эти коммиты.

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

  • 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

February 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

December 18, 2019

androidx.camera:camera-lifecycle:1.0.0-alpha02 is released. Версия 1.0.0-alpha02 содержит эти коммиты .

Изменения зависимостей

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

Camera-Lifecycle Version 1.0.0-alpha01

December 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-Extensions and Camera-View Version 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

  • Удалили ненужные аннотации @RequiresApi(21) из внутренних классов/интерфейсов. ( 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 больше не бросает IllegalArgumentException , когда набор результатов пуст. ( 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

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

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

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

Version 1.0.0-alpha30

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

  • Добавлено @RequiresApi (21) аннотация ко всем классам камер и MinsDkversion от Androidmanifest.xml. Это позволит легко интегрировать Camera-Core в приложения, которые имеют minsdkversion менее 21, но хотят условного использования путей кода, которые полагаются на API 21 и выше. 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 )

Version 1.0.0-alpha29

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

  • Экспериментальная аннотация в экспериментации теперь удаляется, когда API больше не экспериментальны. ( 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

July 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

June 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 )

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

21 апреля 2021 г.

androidx.camera:camera-extensions:1.0.0-alpha24 and androidx.camera:camera-view:1.0.0-alpha24 are released. Версия 1.0.0-alpha24 содержит эти коммиты.

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

  • Заменила аннотация @Experimental с @RequiresOptIn на экспериментальные API. Для вызова экспериментальных API, используйте androidx.annotation.OptIn вместо устаревшего 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. Версия 1.0.0-alpha23 содержит эти коммиты.

Изменения 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 )
  • Исправлено предварительный просмотр Samsung A3 в 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

January 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() вернет Surface.ROTATION_0 , если вы называете, чтобы быть прикрепленным к экземпляру камеры, если только на целевой ротации не было установлено строитель или USECASE. ( I80fcd )

Camera-View Version 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.

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

Camera-Extensions Version 1.0.0-alpha16

September 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

September 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 )

    Camera-View Version 1.0.0-alpha15

    19 августа 2020 г.

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

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

  • DisplayOrientedMeteringPointFactory принимает экземпляр CameraInfo вместо CameraSelector , поэтому существует прямое отображение, для которой камера будет генерировать точки. 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 )

Camera-Extensions Version 1.0.0-alpha14

22 июля 2020 г.

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

Camera-View Version 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

June 10, 2020

androidx.camera:camera-extensions:1.0.0-alpha12 is released. Версия 1.0.0-alpha12 содержит эти коммиты.

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

  • 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-View Version 1.0.0-alpha12

June 10, 2020

androidx.camera:camera-view:1.0.0-alpha12 is released. Версия 1.0.0-alpha12 содержит эти коммиты.

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

  • 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. Версия 1.0.0-alpha11 содержит эти коммиты.

Camera-View Version 1.0.0-alpha12

June 10, 2020

androidx.camera:camera-view:1.0.0-alpha12 is released. Версия 1.0.0-alpha12 содержит эти коммиты.

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

Изменения 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. Версия 1.0.0-alpha11 содержит эти коммиты.

Изменения 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. Версия 1.0.0-alpha10 содержит эти коммиты.

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

  • 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

April 1, 2020

androidx.camera:camera-extensions:1.0.0-alpha09 is released. Версия 1.0.0-alpha09 содержит эти коммиты.

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

  • 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

Camera-View Version 1.0.0-alpha09

April 1, 2020 androidx.camera:camera-view:1.0.0-alpha09 is released. Версия 1.0.0-alpha09 содержит эти коммиты.

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

  • 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 )

Camera-Extensions Version 1.0.0-alpha08

26 февраля 2020 г.

androidx.camera:camera-extensions:1.0.0-alpha08 is released. Версия 1.0.0-alpha08 содержит эти коммиты.

Camera-View Version 1.0.0-alpha08

26 февраля 2020 г.

androidx.camera:camera-view:1.0.0-alpha08 is released. Версия 1.0.0-alpha08 содержит эти коммиты.

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

  • 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

February 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

February 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.

Camera-Extensions Version 1.0.0-alpha05

December 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

December 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

December 4, 2019

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

API changes

  • 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

December 4, 2019

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

API changes

  • 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

October 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-Extensions and Camera-View Version 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

August 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.