КамераX
В этой таблице перечислены все артефакты в группе androidx.camera
.
Артефакт | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
камера-камера2 | 1.4.0 | - | - | 1.5.0-альфа03 |
ядро камеры | 1.4.0 | - | - | 1.5.0-альфа03 |
камера-создание | - | - | - | 1.5.0-альфа03 |
эффекты камеры | 1.4.0 | - | - | 1.5.0-альфа03 |
расширения камеры | 1.4.0 | - | - | 1.5.0-альфа03 |
запрос-комбинации-функций камеры | - | - | - | 1.5.0-альфа03 |
сервисы-запрос-воспроизведение-комбинации функций камеры | - | - | - | 1.5.0-альфа03 |
жизненный цикл камеры | 1.4.0 | - | - | 1.5.0-альфа03 |
камера-mlkit-vision | 1.4.0 | - | - | 1.5.0-альфа03 |
вид с камеры | 1.4.0 | - | - | 1.5.0-альфа03 |
камера-видоискатель | - | - | 1.3.0-бета02 | 1.4.0-альфа07 |
камера-видео | 1.4.0 | - | - | 1.5.0-альфа03 |
Тестирование устройства
CameraX протестирован на многих устройствах в нашей лаборатории. Чтобы просмотреть список устройств, находящихся в настоящее время в лаборатории, см. раздел Устройства, протестированные в лаборатории CameraX .
Объявление зависимостей
Чтобы добавить зависимость от CameraX, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .
Добавьте зависимости для нужных вам артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-alpha03" // 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-alpha03" // 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 def camerax_version = "1.5.0-alpha03" // 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-alpha03" // 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-альфа03
30 октября 2024 г.
Выпущен androidx.camera:camera-*:1.5.0-alpha03
. Версия 1.5.0-alpha03 содержит эти коммиты .
Изменения API
- Добавьте API формата вывода для RAW и RAW + JPEG
ImageCapture
, проверка возможностей устройства представлена вImageCaptureCapabilities#getSupportedOutputFormats
.OUTPUT_FORMAT_RAW
предназначен для захвата изображения RAW в формате Adobe DNG, аOUTPUT_FORMAT_RAW_JPEG
предназначен для одновременного захвата изображений RAW и JPEG. Новый APIImageCapture#takePicture
используется для одновременного захвата изображений. Ему необходимо предоставить дваOutputFileOptions
: первый — для изображения RAW, а второй — для изображения JPEG. ( Ib0f3d )
Исправления ошибок
- Исправлены проблемы с предварительным просмотром и недоэкспозицией видео на устройствах TCL, когда включен
VideoCapture
. ( Id7a64 ) - Исправлена проблема, из-за которой вызов
startFocusMetering
с помощьюPreviewView.getMeteringPointFactory
не получал правильные координаты датчика, когда эффект включен или когда связаны 4 варианта использования (совместное использование потока). ( I916c5 , б/345993685 ) - Исправлено событие
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
, которое не запускается при записи видео и недостаточно места для хранения. ( I35779 , б / 356399842 )
Версия 1.5.0-альфа02
2 октября 2024 г.
Выпущен androidx.camera:camera-*:1.5.0-alpha02
. Версия 1.5.0-alpha02 содержит эти коммиты .
Новые возможности
- Новые API для запроса функций камеры, поддерживаемых устройством. Например, проверка возможности одновременного включения HDR и 60FPS. Он включает в себя 2 артефакта: запрос комбинации функций камеры и сервисы воспроизведения комбинации функций камеры. Это совместимая версия
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
API камеры2 с дополнительными данными, предоставленными службой Google Play.
Исправления ошибок
- Исправлена проблема с целевой частотой кадров
Preview/VideoCapture
на устройствах уровня LEGACY. Целевая частота кадров, установленная через APIsetTargetFrameRate
илиCamera2Interop
всегда перезаписывалась на значение, предоставленноеAeFpsRangeLegacyQuirk
. Благодаря этому исправлению библиотека CameraX будет учитывать значение, установленное через APIsetTargetFrameRate
илиCamera2Interop
. ( Ie2d32 ) - Добавлены функции вспышки/фонарика/3A для захвата изображений с помощью
CameraEffect
. Изображения, снятые с помощьюCameraEffect
теперь должны иметь ту же обработку до и после захвата (например, срабатывание вспышки, сведение 3A и т. д., когда это применимо), что и захват изображений без использованияCameraEffect
. ( I5ff30 ) - Исключены проблемные выходные размеры для
ImageAnalysis
на устройстве Samsung SM-A057G. КогдаImageAnalysis
использует разрешение больше или равное 1920x1440, это приведет к проблеме предварительного просмотра черного цвета. Чтобы избежать этой проблемы, к устройству SM-A057G применилиExcludedSupportedSizesQuirk
. ( I63dfe , б/365877975 ) - Исправлена проблема с целевой частотой кадров
Preview/VideoCapture
, когда механизм совместного использования потока включен внутри для совместного использования потока дляPreview
иVideoCapture
. ( I4fdac ) - Включен обходной путь для устранения проблемы с неправильными метаданными изображения JPEG на устройствах Samsung S10e и S10+. Благодаря исправлению CameraX может успешно сохранять изображение JPEG или возвращать правильные растровые объекты при вызове функции
ImageProxy.toBitmap()
на этих устройствах, если возникает проблема с неправильными метаданными изображения JPEG. ( Iae493 , б/356428987 ) - Отключены расширения для задней камеры Samsung A52s с идентификатором 0, поскольку при захвате изображений HDR могут возникать собственные сбои, а настройка сеансов захвата может привести к сбою для режимов BOKEH или FACE_RETOUCH. ( I03ec9 , б/364152642 )
- Исправлено событие
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
, которое не запускается при записи видео и недостаточно места для хранения. ( Ia5b4f , б/356399842 ) - Исправлена проблема, из-за которой вторая попытка записи видео не удалась на Oppo A5 (CPH1931). ( I181d6 )
Версия 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
30 октября 2024 г.
Выпущен androidx.camera:camera-*:1.4.0
. Версия 1.4.0 содержит эти коммиты .
Важные изменения с версии 1.3.0
CameraX 1.4.0 содержит множество интересных обновлений! Вот краткое изложение:
Заголовок: 10-битный HDR:
- С легкостью снимайте потрясающие фотографии и видео в формате HDR.
- Поддерживает кодирование HLG и 10-битное HEVC.
- Наслаждайтесь 10-битным предварительным просмотром HDR и возможностями устройства.
- Работает с изображениями
UltraHDR
и видео HDR на растущем спектре устройств.
Другие интересные функции:
- Расширения Kotlin: добавлены функции приостановки
takePicture
иawaitInstance
. - Эффекты в реальном времени: применяйте такие эффекты, как водяные знаки и подсветка объектов.
- CameraController API: новые элементы управления для настройки захвата видео.
- Предварительный просмотр стабилизации: запрос возможностей устройства и включение стабилизации.
- Улучшения VideoCapture: более точный контроль качества и доступ к более высоким разрешениям.
- Интеграция расширений CameraX: бесшовная интеграция с
VideoCapture
и новыми функциямиImageCapture
. - API звука затвора: легко проверить региональные требования к звуку затвора.
- Screen Flash: улучшены фотографии при слабом освещении для фронтальных камер.
- API-интерфейсы метаданных расширений камеры: поддержка API-интерфейсов для настройки мощности расширений и получения уведомлений о текущем режиме расширений в
ExtensionMode#AUTO
. Дополнительные исправления ошибок можно найти в наших объявлениях о бета-тестировании и RC-версии .
Версия 1.4.0-rc04
16 октября 2024 г.
Выпущен androidx.camera:camera-*:1.4.0-rc04
. Версия 1.4.0-rc04 содержит эти коммиты .
Исправления ошибок
- Исправлена проблема, из-за которой вызов
startFocusMetering
с помощьюPreviewView.getMeteringPointFactory
не получал правильные координаты датчика, когда эффект включен или когда связаны 4 варианта использования (совместное использование потока). ( I916c5 , б/345993685 )
Версия 1.4.0-rc03
2 октября 2024 г.
Выпущен androidx.camera:camera-*:1.4.0-rc03
. Версия 1.4.0-rc03 содержит эти коммиты .
Исправления ошибок
- Добавлены функции вспышки/фонарика/3A для захвата изображений с помощью
CameraEffect
. Изображения, снятые с помощьюCameraEffect
теперь должны иметь ту же обработку до и после захвата (например, срабатывание вспышки, сведение 3A и т. д., когда это применимо), что и захват изображений без использованияCameraEffect
. ( I5ff30 ) - Оптимизирована плавность масштабирования в
PreviewView
( I04ffc ). - Отделите Ultra HDR от 10-битного вывода, поскольку поддержка Ultra HDR больше не требует, чтобы устройства имели 10-битный вывод. ( I96ff2 , I0c3b3 )
Версия 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 APICameraEffect
, которые эффективно управляют выводом камеры. -
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
в PreviewUseCase
. ( 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, когда расширения Bokeh или Face-Retouch включены с помощью
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
- Функции видео, включая 10-битный HDR , обрезку , зеркальное/незеркальное отображение , отключение/включение звука , установку частоты кадров и многое другое.
- Двойная одновременная камера
- Библиотека эффектов
- Выбор разрешения
- Выбор сверхширокоугольных и телескопических камер
- Переключение камеры во время записи видео (экспериментальная функция)
Версия 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
так и с предварительным просмотром. Также исправлено черный экран на устаревших устройствах при включении обмена потоком. - Исправлена большая захваченная проблема с изображением JPEG на устройствах серии Samsung S7 (SM-G930T, SM-G930V). Захваченные изображения JPEG содержат избыточные данные о накладке 0 в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют большой размер файла. Эти избыточные данные о наборе 0 будут удалены, чтобы у картинных изображений были обычные размеры файлов изображения. ( I407b0 , b/288828159 )
- Исправлена большая захваченная проблема с изображением JPEG на устройствах Samsung S22 (SM-S901B, SM-S901B/DS) и S22+ (SM-S906B). Захваченные изображения JPEG содержат избыточные данные о накладке 0 в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют большой размер файла около 13 МБ на устройстве S22 SM-S901B/DS. Эти избыточные данные о наборе 0 будут удалены, чтобы у картинных изображений были обычные размеры файлов изображения. ( I73be9 , b/288828159 )
- Исправлена большая захваченная проблема изображения JPEG на устройствах серии Samsung A5, A52, A70 и A72. Захваченные изображения JPEG содержат избыточные данные о накладке 0 в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют экстремальный размер файла (Ex около 32 МБ или даже 96 МБ). Эти избыточные данные о наборе 0 будут удалены, чтобы у картинных изображений были обычные размеры файлов изображения. ( I97C4D , B/288828159 )
- Исправлена нативный сбой при снимке с включенными расширениями ( i698f5 )
Версия 1.3.0-бета02
26 июля 2023 г.
androidx.camera:camera-*:1.3.0-beta02
выпускается. Версия 1.3.0-бета02 содержит эти коммиты.
Исправления ошибок
- Используйте факел в качестве вспышки для вариантов Pixel 4 и 5, чтобы улучшить качество захвата при низком освещении ( i56ff5 , b/280221967 )
- Исправлена большая захваченная проблема с изображением JPEG на устройствах серии Samsung A5 (2017). Захваченные изображения JPEG содержат избыточные данные о накладке 0 в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют размер файла около 32 МБ. Эти избыточные данные о наборе 0 будут удалены, чтобы у картинных изображений были обычные размеры файлов изображения. ( I29837 , B/288828159 )
- Исправлена повторная попытка, не запуская должным образом в случае сбоя захвата в проблемных устройствах, упомянутых в
CaptureFailedRetryQuirk
. ( I7b589 )
Версия 1.3.0-бета01
21 июня 2023 года
androidx.camera:camera-*:1.3.0-beta01
выпускается. Версия 1.3.0-бета01 содержит эти коммиты.
API меняется
- Renamed the
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
function name tosetAllowedResolutionMode
and renamed theResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
constants toPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
. ( If84e8 ) - Устранено устаревшее API
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
иVideoCapture.setTargetRotationDegrees(int)
. ( Id8e77 ) -
DynamicRange
класс повлияет на динамический диапазон изображений. Это может использоваться для выбора форматов высокого динамического диапазона в качестве выводаVideoCapture
черезVideoCapture.Builder#setDynamicRange()
. ( IB0377 ) - Добавлен API
isImageAnalysisSupported
кExtensionsManager
, который приложения могут определить, может ли вариант использованияImageAnalysis
, а также предварительный просмотр иImageCapture
при включении расширений. ( I1bc63 ) - Новый класс
VideoCapabilities
, полученный изRecorder
можно использовать для запроса поддержанных динамических диапазонов и качеств для записи видео на устройстве.QualitySelector
'sgetSupportedQualities()
иisQualitySupported()
методы устаревают. Пожалуйста, используйте методыVideoCapabilities
getSupportedQualities()
иisQualitySupported()
. ( I04014 ) -
CameraController#setVideoCaptureTargetQuality()
переименован вsetVideoCaptureQualitySelector
и принимаетQualitySelector
, который обеспечивает большую гибкость для настройки качества видео.CameraController#getVideoCaptureTargetQuality()
изменяется наgetVideoCaptureQualitySelector
. ( I520ed ) - Удалил экспериментальную аннотацию для видео функций. Функции видео теперь стабильны. ( I1A113 )
Исправления ошибок
- Используйте Torch в качестве вспышки на моделях Samsung SM-A320, чтобы улучшить скорость и качество захваченного изображения при слабом освещении. ( I6A022 , B/286190938 )
- Добавить поддержку формата
ImageFormat.JPEG
дляImageProxy.toBitmap()
. Если массив JPEG Byte не может быть декодирован,UnsupportedOperationException
будет брошено. ( 181958 , B/282057603 )
Версия 1.3.0-Alpha07
24 мая 2023 года
androidx.camera:camera-*:1.3.0-alpha07
выпускается. Версия 1.3.0-Alpha07 содержит эти коммиты.
Новые возможности
- Новая API
VideoCapture.Builder# setTargetFrameRate(Range)
позволяет записать видеозаписи с другими частотами кадров, помимо устройства по умолчанию. Доступные частоты кадров для записей могут быть запрошены через новый APICameraInfo#getSupportedFrameRates()
.
API меняется
- Переименованные
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
CONSTANTS TOALLOWED_RESOLUTIONS_NORMAL
/SLOW
и переименован в имени функцииsetHighResolutionEnabledFlag
дляsetAllowedResolutionMode
. ( IAE817 ) -
CameraInfo#getSupportedFrameRateRanges()
теперь возвращаетSet
а неList
, чтобы лучше представлять, что диапазоны неупорядочены. ( I02F43 ) - Добавьте прослушитель ошибок в
CameraEffect
для обработки невзрачных ошибок ( ICE471 ) - Добавьте общественный конструктор в
ResolutionInfo
для лучшей тестируемости ( IF6D1C ) -
ImageCapture.setTargetRotationDegrees(int)
ImageAnalysis.setTargetRotationDegrees(int)
setTargetRotationDegrees
что APIUseCase.snapToSurfaceRotation(int)
VideoCapture.setTargetRotationDegrees(int)
( IA9010 ) - Добавлен новый API
Preview#getTargetFrameRate
иPreview.Builder#setTargetFrameRate
чтобы иметь возможность устанавливать и извлекать частоту целевых кадров для предварительного просмотра ( IF4F22 ) -
VideoRecordEvent.Finalize
теперь будет завершена с кодом ошибкиERROR_RECORDING_GARBAGE_COLLECTED
, когда объектRecording
будет остановлен из -за сбора мусора. ( IBA974 )
Исправления ошибок
- Фиксированное
NullPointerException
, когда кэшированные выходные размеры вStreamConfigurationMapCompat
являются нулевыми. ( IDF124 , B/282025204 ) - Исправлена проблема, которая
Preview.setSurfaceProvider(null)
не останавливается на предварительном просмотре в расширениях ( IA903E ) - Исправлена проблема, в которой
ConcurrentModificationException
бросается во время открытия камеры, когда связанаVideoCapture
. ( IC8AC4 )
Версия 1.3.0-Alpha06
19 апреля 2023 г.
androidx.camera:camera-*:1.3.0-alpha06
выпускается. Версия 1.3.0-Alpha06 содержит эти коммиты.
Новые возможности
- Одновременная камера - это новая функция, представленная из Android 11, которая поддерживает одновременную потоковую передачу устройств камеры, например, она позволяет устройству использовать как передние, так и задние камеры одновременно. Камера в настоящее время поддерживает только двойные параллельные камеры, которые позволяют работать две камеры одновременно, причем не более двух {@link usecase} s связаны для каждого. Максимальное разрешение составляет 720p или 1440p, подробнее в следующей ссылке, см. Cameramanager#getConcurrentCameraIds ()
- Представляем новый API
ResolutionSelector
, который охватывает следующие функции:- Приложения могут указывать стратегии соотношения и разрешения для выбора наилучшего разрешения для их потребностей.
- Все размеры и параметры соотношения сторон выражаются в координатах датчика устройства камеры.
- Приложения могут реализовать фильтр пользовательского разрешения для распоряжения поддерживаемых размеров в желаемом порядке.
- Приложения также могут позволить получить высокое захват разрешения для получения изображений с более высоким разрешением. Тем не менее, обратите внимание, что использование высокого разрешения может привести к более медленному времени захвата.
- Добавлено
VideoCapture
, отражающее API. Видео, записанныеVideoCapture
не отражаются по умолчанию. Тем не менее, предварительный просмотр камеры по умолчанию отражено на фронтальной камере. API -интерфейсыVideoCapture
позволяет выровнять предварительный просмотр камеры при использовании фронтальной камеры. Существует триMirrorMode
,OFF
,ON
иON_FRONT_ONLY
. Чтобы соответствовать предварительному просмотру камеры, рекомендуется использоватьON_FRONT_ONLY
, что означает, что зеркальное зеркальное оборудование не включено для задней камеры, но включено для фронтальной камеры.
API меняется
- Открыл новые
ResolutionSelector
API. Приложения могут указывать стратегии соотношения и разрешения с правилами отступления или фильтру по пользовательскому разрешению, чтобы получить желаемые результаты. Приложения могут указать флаг, чтобы обеспечить захват высокого разрешения. Это позволит Camerax выбирать более высокие разрешения при фотографировании или видео. Тем не менее, обратите внимание, что использование высокого разрешения может привести к более медленному времени захвата. ( Ibed95 ) - Диапазоны FPS, поддерживаемые алгоритмом AE, теперь могут быть запрошены через
CameraInfo#getSupportedFrameRateRanges()
. ( IAA67F ) - Консолидируйте названия всех методов частоты кадров в использование «кадров». Исправьте ошибку Javadoc в
VideoCapture#getTargetFrameRate()
( i83304 ) - Установил устаревшую
setTargetAspectRatio
и APIsetTargetResolution
. Пожалуйста, используйте новый APIResolutionSelector
. ( I542c3 ) - Добавлены публичные API для одновременной двойной камеры, включая
-
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
-
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
-
boolean isConcurrentCameraModeOn()
иConcurrentCameraConfig
,SingleCameraConfig
иConcurrentCamera
( IAB1C1 )
-
- Сделать
ImageProcessor.Response#getOutputImage
nonnull ( IB9C60 ) - Добавлено API -интерфейсы
VideoCapture
, в том числеVideoCapture.Builder.setMirrorMode(int)
иVideoCapture.getMirrorMode()
. API полезны для приложений, требующих, чтобы запись видео соответствовала обыкновенному поведению предварительного просмотра камеры, то есть предварительный просмотр задней камеры не зеркально, но предварительный просмотр фронта. ( I713b6 , b/194634656 ) - Добавить
setTargetFrameRate()
API вVideoCapture.Builder
Стоимость API VideoCapture иgetTargetFramerate()
вVideoCapture
( i109D4 ) - Сделайте
SurfaceOutput
, расширяющуюся и скрыть общественный конструкторurfaceOutput.Event
. ( I60ea8 ) - Добавлено
Recording.mute
Отключить для динамического отключения или упоминания записи в обработке.RecordingStats
будет содержатьAudioStats.AUDIO_STATE_MUTED
когда запись в обработке явно приглушена. ( IE17FC ) - Made
#setEffects()
параметр не нулевой. Добавьте API#clearEffects()
для очистки эффектов. Приложение должно позвонить#clearEffects()
для удаления эффектов. ( I4b4d9 ) - Добавьте второй конструктор для
ViewfinderSurfaceRequest.Builder
, чтобы взять строитель для конструктора копирования ( I621A7 )
Исправления ошибок
- Исправлена проблема, в которой приложения, вызывая API расширения, могли сбой при закрытии камеры ( IB27E5 )
- Исправлена проблема, где
VideoCapture
не может работать с фронтальной камерой на некоторых устройствах. Например, на Samsung Galaxy S23 и Xiaomi 2107113SG. ( IBEC7E , B/270656244 ) - Исправлена проблема, в которой снимки с использованием файла в общедоступной папке внешней хранилища всегда выйдут из строя в Android 10 или выше. Обратите внимание, что в Android 10 снимки с использованием файла во внешней общедоступной папке также требуют установки
requestLegacyExternalStorage
в True в теге приложения. ( I11b2c ) - Исправлена авария
RejectedExecutionException
вDefaultSurfaceProcessor
. Сбой может произойти, когдаVideoCapture
связана, а деятельность приостановлена. ( IDB46A , B/273713906 )
Версия 1.3.0-Alpha05
22 марта 2023 г.
androidx.camera:camera-*:1.3.0-alpha05
выпускается. Версия 1.3.0-Alpha05 содержит эти коммиты.
API меняется
- Добавлены API -интерфейсы ротации
VideoCapture
, включаяVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
иVideoCapture.getTargetRotation()
. API полезны для приложений, которые блокируют ориентацию устройства.ImageCapture.setTargetRotationDegrees(int)
иImageAnalysis.setTargetRotationDegrees(int)
также добавлены. ( Id3ffe , b/205242781 ) - Разрешить
VIDEO_CAPTURE
иPREVIEW|VIDEO_CAPTURE
как цель эффектов. Эффекты, которые нацелены наVIDEO_CAPTURE
будут применены к использованиюVideoCapture
; Эффекты, нацеленные наPREVIEW|VIDEO_CAPTURE
будут применены к общему потоку перед копированием для предварительного просмотра и потокаVideoCapture
. ( IEE6F3 )
Исправления ошибок
- Из камеры
1.2.2
: Исправлена проблема, в которой расширения камеры не работают должным образом, когда прогиар включен на некоторых устройствах, таких как Pixel ( i90aa2 ) - Исправлена ошибка
PreviewView
, которая, если приложение обрабатывает саму ориентацию экрана. Предварительный просмотр может искажаться при вращении. Это происходит только на определенных устройствах. Его можно воспроизвести на Pixel A4, Pixel 5 и Pixel 6a. ( I14340 , B/223488673 )
Версия 1.3.0-Alpha04
22 февраля 2023 года
androidx.camera:camera-*:1.3.0-alpha04
выпускается. Версия 1.3.0-Alpha04 содержит эти коммиты.
Новые возможности
Новая функция, поддерживающая ранее неподдерживаемые комбинации поверхности, делясь одним потоком на несколько пользователей.
- Ранее, при привязке «Предварительный просмотр, видеозапьер, Imageanalysis» на уровне аппаратного обеспечения камеры заполнен и ниже, или привязка «Предварительный просмотр, видеозапью, ImageCapture» на устаревшем уровне аппаратного уровня, камера бросает
IllegalArgumentException
. - Новое поведение состоит в том, что привязки будут работать, не бросая исключения. Вместо этого Camerax использует OpenGL для копирования общего потока как для предварительного просмотра, так и для видеозапьеры.
- В качестве стоимости копии буфера приложение может увидеть увеличение задержки и энергопотребления.
API меняется
- Добавьте API, чтобы преобразовать
ImageProxy
вBitmap
. Поддерживаемый форматImageProxy
-ImageFormat.YUV_420_888
иPixelFormat.RGBA_8888
. Если формат недействителен, будет брошеноIllegalArgumentException
. ( IC7110 ) - Добавьте
CoroutineCameraViewfinder
, чтобы поддержать настройку ViewFinder, используя подвесные функции в Kotlin. ( I657bc ) - Добавьте новый общественный конструктор для
ViewfinderSurfaceRequest
. Это обеспечивает гибкость, когда пользователь не может предоставитьCameraCharacteristics
. ( IE6549 )
Исправления ошибок
- Исправлена сбой расширений, который происходит на некоторых устройствах Samsung при слишком быстрое приложение/возобновление приложения ( IACA26 )
Версия 1.3.0-Alpha03
25 января 2023 года
androidx.camera:camera-*:1.3.0-alpha03
выпускается. Версия 1.3.0-Alpha03 содержит эти коммиты.
API меняется
- Добавлена
CameraInfo.getIntrinsicZoomRatio
, чтобы предоставить информацию о угле просмотра относительно камеры по умолчанию. ( IB300C ) - Добавлена
CameraInfo.getLensFacing
, чтобы предоставить информацию, обращенную к объективу. ДобавленаCameraSelector#LENS_FACING_EXTERNAL
в качестве экспериментальной функции для выбора внешних камер. ( ICAF3E ) - Добавьте
#setEffect()
вCameraController
, который позволяет добавлять эффекты к выходу камеры. ( I1d21f ) - Добавить метод
invalidate()
вSurfaceRequest
. Поставщик поверхности может уведомить, что ранее предоставленная поверхность больше не является действительной. ( IDC649 ) - Добавить API
ImageProcessor
. Этот интерфейс предназначен для инъекции последующих эффектов в трубопроводImageCapture
. ( I575c6 ) - Добавлен API
Recorder.Builder.setAspectRatio()
который может быть объединен сQualitySelector
для поддержки большего количества резолюций видео. ( I8a082 ) - Добавлен
Recorder.Builder#setTargetVideoEncodingBitRate
, чтобы установить целевое видео, кодирующееBitRate
иRecorder#getTargetVideoEncodingBitRate
чтобы получить целевое видео, кодирующее битрейт. ( I5984d )
Исправления ошибок
- Фиксированная
ImageCapture
не удалась, когда нет флэш -единицы, а режим вспышки включен. ( I9e8b4 , b/263391112 ) - Исправлена проблема развращения изображения JPEG, если написание данных о местоположении EXIF на некоторых устройствах Samsung Android 12. ( IB7086 , B/263747161 , B/263289024 )
- При настройке Forch/Zoom перед инициализацией камеры, например, вызов
CameraController#enableTorch
, ожидающее действие кэшируется и отправляется после того, как инициализация собирается. ( I11e92 , b/264157663 )
Версия 1.3.0-Alpha02
7 декабря 2022 года
androidx.camera:camera-*:1.3.0-alpha02
выпускается. Версия 1.3.0-Alpha02 содержит эти коммиты.
API меняется
- Добавьте новый API для применения эффекта после обработки для предварительного просмотра вывода. ( IC17D5 )
- Переименованное
OutputOptions.getDurationLimit
toOutputOptions.getDurationLimitMillis
иOutputOptions.setDurationLimit
toOutputOptions.setDurationLimitMillis
. ( I91f0c ) - Добавьте класс
AudioConfig
для обработки настройки, связанной с аудио при записи видео. Аннотация@RequiresPermission
перемещается от функцийstartRecording
вAudioConfig
чтобы избежать ненужных запросов разрешений на случаи, когда звук не требуется. ( I28755 ) - Снимите метаданные,
OnVideoSavedCallback
,OutputFileOptions
иOutputFileResults
, которые больше не используются после применения нового API захвата видео. ( I38cd8 ) - Примените новый API с захватом видео. Методы
getVideoCaptureTargetSize
иsetVideoCaptureTargetSize
заменяются на методыgetVideoCaptureTargetQuality
иsetVideoCaptureTargetQuality
соответственно, посколькуsetTargetResolution
больше не поддерживается. ( I2a1d5 )
Исправления ошибок
- Удалить устаревшего
core.VideoCapture
. VideoCapture API. ( I531e0 ) - Исправлена вопрос о том, что обратный вызов
onError
не вызывается при фотографировании без разрешения на хранение ( I936DB , B/244807669 ) - Улучшить качество и надежность расширения камеры. Расширения камеры отключены на устройствах Motorola, используя расширения камеры v1.1.0 и старше из -за проблем с поддержкой Боке, захватом изображений и предварительным просмотром. ( Id3ce3 )
- Исправлена нативная сбоем, когда видео обрезка через
ViewPort
включен на устаревших устройствах. ( I16B8A , B/251357665 )
Версия 1.3.0-Alpha01
9 ноября 2022 года
androidx.camera:camera-*:1.3.0-alpha01
выпускается. Версия 1.3.0-Alpha01 содержит эти коммиты.
Новые возможности
-
Camera-viewfinder
была официально опубликована.Camera-viewfinder
предоставляет виджет базового видоискателя, который может отображать подачу камеры для Camera2. Пожалуйста, проверьте пример кода .
API меняется
- Добавлено
OutputOptions.setDurationLimit
, чтобы разрешить настройку ограничения продолжительности видео. Запись будет автоматически завершена при превышении указанного ограничения продолжительности. ( I902a0 ) - Добавить видеозаписи аудиоу ошибки
AudioStats.AUDIO_STATE_SOURCE_ERROR
. Отправлено, когда настройка источника аудио, настройка исходной сбой или возникает какая -то ошибка. ( I37410 )
Исправления ошибок
- Добавьте причуд, чтобы позволить некоторым проблематичным устройствам повторно захватить захват один раз при столкновении с перерывами захвата. ( ID4795 )
- Исправлена
PreviewView
реализацияSurfaceView
Проблема черного экрана наViewPager2
. В рамках исправленияPreviewView
повторно использует свойSurfaceView
, если запрошенное разрешение не будет изменено. ( IB3F27 ) - Поддержка видеопольза (функция Wysiwyg) при использовании
ViewPort
илиCameraController
API. ( IFBBA8 , B/201085351 ) - Исправленное видео, снятое с фронтальной камерой, не работает на Huawei P40 Lite. ( I87c57 , b/250807400 )
Версия 1.2
Версия 1.2.3
24 мая 2023 года
androidx.camera:camera-*:1.2.3
выпускается. Версия 1.2.3 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема, где
VideoCapture
не может работать с фронтальной камерой на некоторых устройствах. Например, на Samsung Galaxy S23 и Xiaomi 2107113SG. ( IBEC7E , B/270656244 )
Версия 1.2.2
22 марта 2023 г.
androidx.camera:camera-*:1.2.2
выпускается. Версия 1.2.2 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема, в которой расширения камеры не работают должным образом, когда прогиар включен на некоторых устройствах, таких как Pixel ( i90AA2 )
Версия 1.2.1
25 января 2023 года
androidx.camera:camera-*:1.2.1
выпускается. Версия 1.2.1 содержит эти коммиты.
Исправления ошибок
- Исправьте проблему развращения изображения JPEG, если написание данных о местоположении EXIF на некоторых устройствах Samsung Android 12. ( B/263289024 )
Версия 1.2.0
7 декабря 2022 года
androidx.camera:camera-*:1.2.0
выпускается. Версия 1.2.0 содержит эти коммиты.
Важные изменения с 1.1.0
- Новая библиотека-камера-млкит-вид. Легко интегрировать камеру с множеством функций MLKIT, включая сканирование штрих -кода, обнаружение лица, обнаружение текста и т. Д. Добавлено
MLKitAnalyzer
в качестве новых API. - Новый экспериментальный API с нулевым баллом. Оптимизирует конвейер захвата, чтобы иметь лучшую задержку, сохраняя при этом хорошее качество изображения. Когда режим захвата устанавливается на
CAPTURE_MODE_ZERO_SHUTTER_LAG
, задержка между кнопкой затвора нажимается, и ожидается, что изображение будет минимизирована по сравнению с другими режимами захвата. На устройствах, которые не поддерживаютZERO_SHUTTER_LAG
, это будет отступить, чтобыCAPTURE_MODE_MINIMIZE_LATENCY
. - Установите
android.camera.core.VideoCapture
. - Добавлен
setStreamUseCase()
в качестве публичного APICamera2Interop
. - Добавлены требования уровня API для
setOutputImageRotationEnabled
. - Переименованное
ImageAnalysis.Analyzer#getTargetResolutionOverride()
ImageAnalysis.Analyzer#getDefaultTargetResolution()
- Добавлен API для установки метаданных местоположения в сохраненное видео.
- Фиксированная
VideoCapture
кадриза - Исправлена проблема с предварительным просмотром Black, которая происходит, когда расширение Bokeh включено на некоторых устройствах Samsung, а пользователь переключает камеры.
- Исправлено
Preview/VideoCapture
Samsung J7 Prime (SM-G610M) и J7 (SM-J710MN)) на устройствах API уровня 27. - Отключил обходной путь, чтобы перевернуть область AF горизонтально от передних камер на Samsung Android T, так как проблема была решена
Версия 1.2.0-RC01
24 октября 2022 г.
androidx.camera:camera-*:1.2.0-rc01
выпускается. Версия 1.2.0-RC01 содержит эти коммиты.
API меняется
- Добавьте API
setStreamUseCase
дляOutputConfiguration
. Пользователь может указать вариант использования потока для сеанса потока, перекрывая внутреннюю логику Camerax, чтобы выбрать вариант использования потока, чтобы оптимизировать в соответствии с их потребностями. ( IB1A95 )
Исправления ошибок
- Исправлено
Preview/VideoCapture
Samsung J7 Prime (SM-G610M) и J7 (SM-J710MN)) на устройствах API уровня 27. Разрешение 1920x1080 вызывает растяжение изображенийPreview/VideoCapture
. Добавлен обходной путь, чтобы не выбрать разрешение 1920x1080 для предварительного просмотра илиVideoCapture
чтобы избежать проблемы с растянутым изображением. ( I0e04e ) - Исправлена низкая кадров при использовании вариантов использования
VideoCapture
и предварительного просмотра с соотношением сторон 16: 9 на некоторых устройствах Huawei. ( If8c88 , b/223643510 ) - Исправленная сбой камеры, когда
SurfaceProvider
не установлен. В рамках исправления предварительный просмотр без набораSurfaceProvider
теперь не будет настроен на сеанс захвата камеры. ( I99681 )
Версия 1.2.0-бета02
21 сентября 2022 года
androidx.camera:camera-*:1.2.0-beta02
выпускается. Версия 1.2.0-бета02 содержит эти коммиты.
API меняется
- Добавить требование уровня API для
setOutputImageRotationEnabled
( i26e3e , b/240993561 )
Исправления ошибок
- Отключил обходной путь, чтобы перевернуть область AF горизонтально передних камер на Samsung Android T, так как проблема была исправлена. ( I05F69 )
- Исправлена проблема с предварительным просмотром Black, которая происходит, когда расширение
BOKEH
включено на некоторых устройствах Samsung, а пользовательские переключают камеры. ( IF6168 )
Версия 1.2.0-бета01
24 августа 2022 г.
androidx.camera:camera-*:1.2.0-beta01
выпускается. Версия 1.2.0-бета01 содержит эти коммиты.
Новые возможности
- Новая библиотека
camera-mlkit-vision
. Легко интегрируйте камеру с множеством функций MLKIT, включая сканирование штрих -кода, обнаружение лица, обнаружение текста и т. Д., Пожалуйста, найдите пример кода здесь . - Новый экспериментальный API с нулевым баллом . Оптимизирует конвейер захвата, чтобы иметь лучшую задержку, сохраняя при этом хорошее качество изображения. Когда режим захвата устанавливается на Capture_Mode_zero_Shutter_LAG, задержка между кнопкой затвора нажимается, и ожидается, что изображение будет минимизирована по сравнению с другими режимами захвата. На устройствах, которые не поддерживают Zero_shutter_lag, это будет отступить, чтобы Capture_mode_minimize_latency.
- Сделано
ImageAnalysis.Analyzer
иMLKitAnalyzer
как официальные API. - Выставлен API для установки метаданных местоположения в сохраненное видео.
- Переименовать
ImageAnalysis.Analyzer#getTargetResolutionOverride()
вImageAnalysis.Analyzer#getDefaultTargetResolution()
.
Исправления ошибок
- Исправлена Альпа K61V1_BASIC_REF. Проблема захвата изображения. Захваченные изображения JPEG из HAL имеют неверные метаданные Esif. Метаданные ESIF не имеют тега 0xffd9 или 0xffda, чтобы сделать
ExifInterface
правильно проанализировать атрибуты. Захватывание изображений в формате YUV, а затем сжимает их к выводам JPEG для обходного пути этой проблемы. ( I45abb )
Версия 1.2.0-Alpha04
27 июля 2022 г.
androidx.camera:camera-*:1.2.0-alpha04
выпускается. Версия 1.2.0-Alpha04 содержит эти коммиты.
API меняется
- Переименовать
ImageAnalysis.Analyzer#getTargetResolutionOverride()
вImageAnalysis.Analyzer#getDefaultTargetResolution()
. Поведение также изменяется таким образом, чтобы значение, возвращаемое этим методом, может быть переопределено значениемImageAnalysis#setTargetResolution()
. ( If1d36 ) - Выставлен API для установки метаданных местоположения в сохраненное видео. Объект
android.location.Location
может быть установлен через новый APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
. ( I313A0 , B/204197544 )
Исправления ошибок
- Исправьте проблему, чтобы сделать картинку с предварительным просмотром Ubind ( IE70B6 , B/235119898 )
- Фиксированный сбой в
Recorder
при попытке записаться, пока источник звука недоступен. ( I9f652 )
Версия 1.2.0-Alpha03
29 июня 2022 г.
androidx.camera:camera-*:1.2.0-alpha03
выпускается. Версия 1.2.0-Alpha03 содержит эти коммиты.
API меняется
- Удалили экспериментальное аннотацию для
ImageAnalysis.Analyzer
Анализер иMLKitAnalyzer
. ( I0ff22 )
Исправления ошибок
- Добавлена автофокусировка времени по умолчанию 5000 мс, который завершит часть AF с помощью
isFocusSuccessful
False, еслиFocusMeteringAction
не будет отменена, а часть AF не сходится в продолжительность. ( IBC2E3 ) - Исправьте проблему, чтобы сделать картинку с предварительным просмотром Unbind ( I1D3A2 , B/235119898 )
- Включенная реализация расширенного расширения и обновление версии расширений поддержки CAMERAX до 1.2 ( I92256 )
Версия 1.2.0-Alpha02
1 июня 2022 года
androidx.camera:camera-*:1.2.0-alpha02
выпускается. Версия 1.2.0-Alpha02 содержит эти коммиты.
Новые возможности
- Выставьте камерукс с нулевым задержкой API как экспериментальный.
API меняется
- Добавьте новый режим захвата
CAPTURE_MODE_ZERO_SHUTTER_LAG
вImageCapture
и добавьтеisZslSupported
вCameraInfo
чтобы запросить возможность устройства. РежимCAPTURE_MODE_ZERO_SHUTTER_LAG
стремится обеспечить минимальную задержку для мгновенного захвата. Он реализован на основе кольцевого буфера, который кэширует результаты промежуточного захвата для последующей переработки, когда пользователь нажимает кнопки для снимков. Если {@link VideoCapture} связан или режим Flash не выключен, или расширение OEM включено, этот режим будет отключен автоматически. ( I9ae74 ) - Добавить метод
ImageAnalysis.getBackgroundExecutor()
( ICC945 )
Исправления ошибок
- Фиксированный метод обработки
ImageCapture
отключает факел на зарегистрированных устройствах. ( IB5EB5 , B/228272227 ) - Исправлена ошибка, в которой
AssertionError
не обрабатывается при получении характеристикиCONTROL_ZOOM_RATIO_RANGE
. ( /Ia248a , b /231701345 )
Версия 1.2.0-Alpha01
18 мая 2022 года
androidx.camera:camera-*:1.2.0-alpha01
выпускается. Версия 1.2.0-Alpha01 содержит эти коммиты.
Новые возможности
- Запускается новая библиотека-камера-млкит-вид
Исправления ошибок
- Фиксированный
QualitySelector
не может записать видео UHD, когда включена стратегия резервной защиты. Проблема возникает, когдаVideoCapture
связана сImageCapture
и предварительным просмотром на полном или более высоком устройстве камеры оборудования. Стратегия запасной стратегииQualitySelector
VideoCapture
вызывает резолюцию FHD. Резолюция UHD фактически поддерживается для этой комбинации вариантов использования и должно быть принято. ( I0e788 , b/230651237 ) - Исправлено
NullPointerException
наImageCapture.takePicture()
. ( I92366 , b/230454568 , b/229766155 ) - Исправлена асинхронная поведение
androidx.camera.video.Recorder
( IA8CE8 )
Camera-Camera2, Camera-Core, Camera-Lifecycle, и камера Video Version 1.1.0
Версия 1.1.0
29 июня 2022 г.
androidx.camera:camera-*:1.1.0
выпускается. Версия 1.1.0 содержит эти коммиты.
Важные изменения с 1.0.0
- Приземленное представление, расширение и библиотеки захвата видео в качестве первой версии RC. Из 1.1.0-beta01 все библиотеки камерных камер будут выравнивать один и тот же номер версии. Это поможет разработчикам гораздо проще отслеживать версии и уменьшить сложность матриц совместимости с большими версиями.
- Представил новые публичные API и функции, в том числе:
- Добавьте официальную библиотеку камеры-видео, чтобы поддержать варианты использования видео.
- Возможность преобразования и вращения YUV в RGB (
ImageAnalysis.Builder.setOutputImageRotationEnabled
иsetOutputImageFormat
) - Поддержите режим многогранного режима, позволяя приложениям для камеры возобновить камеру, когда камера прерывается другим приложением, и фокус возвращается.
- Гарантирует, что Camerax хорошо работает на складных устройствах, исправляя некоторые проблемы предварительного просмотра.
- Добавлена
CameraState
, который будет выставлен через Camerainfo. - Добавлен API
ProcessCameraProvider.getAvailableCameraInfos()
чтобы напрямую извлечь информацию о доступных камерах - Выходной формат JPEG для
ImageCapture#OnImageCapturedCallback
при включении расширений. - Добавлен API
isFocusMeteringSupported
вCameraInfo
, который позволяет приложениям проверять, поддерживается ли данноеFocusMeteringAction
на текущей камере или нет. - Появление
getResolutionInfo
API для предоставления информации о разрешении для предварительного просмотра,ImageCapture
иImageAnalysis
. - Добавлен новый API
ImageCapture.Builder#setJpegQuality
, чтобы позволить изменять качество сжатия изображения JPEG при снимке. - Добавлена
CameraSelector#filter
в публичный API для фильтрации спискаCameraInfos
на основеCameraSelector
. - Добавлена
Camera2CameraControl.clearCaptureRequestOptions
для очистки существующих параметров запроса захвата. - Добавлен экспериментальный API для использования
CameraController
с внешними библиотеками обработки изображений. например, Mlkit - Добавлен экспериментальный API
CameraInfo#getCameraSelector()
, который возвращаетCameraSelector
уникальный для своей камеры - Продвигал несколько экспериментальных API до официальных публичных API
- Заменила аннотация
@Experimental
с@RequiresOptIn
на экспериментальные API. Для вызова экспериментальных API, используйте Androidx.annotation.optin вместо устаревшего Androidx.annotation.experimatal.useexperimental. - Способствует следующему экспериментальному APIS для официальных 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
для настройки ViewPort. - Продвигал
ExperimentalUseCaseGroupLifecycle
до официальных публичных API. - Изменения в существующих API
-
Renamed MediaStoreOutputOptions.getCollection
вMediaStoreOutputOptions.getCollectionUri
. -
ActiveRecording
была переименована в «запись», чтобы уменьшить условно. - Изменено API создателя
QualitySelector
API на основанный на списке API
Исправления ошибок
- Исправлена проблема
YuvToJpegProcessor
EOFException
, когда режим расширения включен и установлен режимImageCapture#CAPTURE_MODE_MAX_QUALITY
Режим. - Фиксированная конфигурация кодека не удалась из -за записи видео
- Исправлено растянутое растянутое соотношение аспектов видео при записи в FHD
- Исправлена аудио/видео из синхронизации после паузы и возобновления на некоторых устройствах
- Исправлена проблема, в которой запускается вспышка во время tap-to-focus (
startFocusAndMetering
), когда режим вспышки является автоматическим или всегда_он в условиях низкого освещения.
Версия 1.1.0-RC02
1 июня 2022 года
androidx.camera:camera-*:1.1.0-rc02
выпускается. Версия 1.1.0-RC02 содержит эти коммиты.
Исправления ошибок
- Исправлено
NullPointerException
наImageCapture.takePicture()
. ( I92366 , b/230454568 , b/229766155 ) - Исправлена ошибка, в которой
AssertionError
не обрабатывается при получении характеристикиCONTROL_ZOOM_RATIO_RANGE
. ( IA248A , B/231701345 )
Версия 1.1.0-RC01
11 мая 2022 года
androidx.camera:camera-*:1.1.0-rc01
выпускается. Версия 1.1.0-RC01 содержит эти коммиты.
Новые возможности
- Отпустите первую версию RC для камеры-видео, вида камеры и камеры.
Исправления ошибок
- Исправлена проблема, в которой видеокодек не был выпущен, когда
VideoCapture<Recorder>
была несвязанной, что привело к последующему использованиюVideoCapture<Recorder>
для сбоя при записи с помощьюMediaCodec.CodecException
, особенно на устройствах API 21-22. ( IE7F68 ) - Исправить захваченные изображения
CameraExtensionsActivity
не удаляются вImageCaptureTest
Версия 1.1.0-BETA03
6 апреля 2022 года
androidx.camera:camera-*:1.1.0-beta03
выпускается. Версия 1.1.0-beta03 содержит эти коммиты.
API меняется
- Сделано ограниченным конструктором
CaptureRequestOptions
. ( I261b6 ) - Добавлен экспериментальный API для использования
CameraController
с внешними библиотеками обработки изображений. например, mlkit ( i4ea71 )
Исправления ошибок
- Fixed the issue that preview becomes sideway in
PreviewView
when activity is not restarted after rotating devices in multi-window. ( I1ea36 , b/223488673 ) - Fix a multi-window issue that when focus changes back to the app it fails to resume the camera when (1) other high priority app opens a different camera (2) the device is Samsung Android 12 devices. ( I7e9f2 )
- Workaround included for devices that crash when checking availability of flash. These devices will not have torch available. ( If26a3 , b/216667482 )
- Fix
AbstractMethodError
issue happened when apps use extensions and enable proguard. ( I7cbaf , b/222726805 ) - Force disable bokeh extension mode on Motorola razr 5G device which will cause black preview screen issue. ( I35d49 )
- Fixed audio/video out of sync after pause and resume on some Samsung devices pre-API 29. ( I64622 , b/202798609 , b/202798572 )
- Fixed audio/video out of sync after pause and resume on Sony G3125. ( I2a1a5 , b/202799148 )
- Fixed a crash when the Recorder encountered an
InvalidConfigException
. However, this fix only prevents app from crashing, but doesn't resolve the cause of theInvalidConfigException
. If theRecorder
still cannot be configured, applications will receive error callback when it starts recording. ( I89c29 , b/213617227 )
External Contribution
- updated :compose:ui:ui-test api (updateApi) due to test-coroutines-lib migration ( I3366d )
Version 1.1.0-beta02
February 23, 2022
androidx.camera:camera-*:1.1.0-beta02
is released. Version 1.1.0-beta02 contains these commits.
API Changes
- Add the ability to specify physical camera ID through Camera2Interop. ( I5aed8 )
Исправления ошибок
- Fixed the stretched preview issue on Oppo Find N ( I7d004 )
- Fixed a Galaxy J7 Prime issue that the preview is distorted. ( I4c500 )
- Use compatible bitrate to find video encoder. ( d969052 )
Version 1.1.0-beta01
26 января 2022 г.
androidx.camera:camera-*:1.1.0-beta01
is released. Version 1.1.0-beta01 contains these commits.
Новые возможности
- From 1.1.0-beta01, all CameraX libraries will align the same version number. This will help developers track versions much easier and reduce the complexity of large version compatibility matrix.
API Changes
- Added
Camera2CameraControl.clearCaptureRequestOptions
for clearing the existing capture request options. ( Ifa07d )
Исправления ошибок
- Fixed the crash when recording the video on some pre-Android O(API 26) devices. ( I88fdf , b/212328261 )
- Fixed the incorrect AF region issue when using
cameraControl#startFocusAndMetering()
on front lens-facing camera in Samsung devices ( Ifbf59 , b/210548792 ) - Use torch as flash on Pixel 3a/Pixel 3a XL to improve the speed and the captured image quality in dark ( Ib12b6 , b/211474332 )
- Enabled applications to resume the camera when camera is interrupted by other higher priority application in the multi-window mode and the focus changes back to the application. Please note that there could be some latency(1 second to 10 seconds or more) between focus changes and camera reopened due to some framework issue. ( I4d092 )
Version 1.1.0-alpha12
15 декабря 2021 г.
androidx.camera:camera-*:1.1.0-alpha12
is released. Version 1.1.0-alpha12 contains these commits.
API Changes
- Removed unnecessary
@RequiresApi(21)
annotations from the inner classes/interfaces. ( I8e286 , b/204917951 ) - The quality constants and fallback strategy constants of
QualitySelector
have been changed to be represented by class objects. For example,QualitySelector.QUALITY_HD
is changed toQuality.HD
, andQualitySelector.FALLBACK_STRATEGY_LOWER
is changed to the instance returned byFallbackStrategy.lowerQualityOrHigherThan(Quality)
. The API used to createQualitySelector
has been changed to a list-based API. The new APIQualitySelector.fromOrderedList(List<Quality>)
will refer to the order of the input quality list instead of the order created byQualitySelector.Procedure
.QualitySelector.Procedure
class has been removed. ( I43343 ) -
PendingRecording.withEventListener()
was removed and the event listener must now be passed toPendingRecording.start()
. This event listener requirement is meant to encourage handling of asynchronous errors that are reported in theVideoRecordEvent.Finalize
event. ( I1e71d ) -
ActiveRecording
has been renamed toRecording
to reduce verbosity. ( I77ceb )
Исправления ошибок
- Fixed the issue that captured photos in
FLASH_AUTO
mode is underexposed in dark conditions on Pixel 3a and Pixel 3a XL ( I13f19 , b/205373142 ) - Always use latest display size to determine the preview
Resolution
. ( I4a694 ) - Filtered out cameras which do not have
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
. Cameras withREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
have the minimal set of capabilities that every camera device supports. Camera withoutREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
might be a camera to support special functionality and does not support standard color output.CameraX
can't support thePreview
,ImageCapture
,ImageAnalysis
orVideoCapture
use cases for those cameras. Therefore, those cameras should be filtered out to prevent incorrect usage. ( Ib8cda ) -
CameraSelector#filter
no longer throws anIllegalArgumentException
when the result set is empty. ( I27804 ) - Smarter heuristics are now used to select encoder settings based on OEM specified profiles. ( Iaeef0 )
- Fixed Preview will have interlaced color lines after start UHD video recording on Pixel1. ( I833c6 , b/205340278 )
Version 1.1.0-alpha11
17 ноября 2021 г.
androidx.camera:camera-*:1.1.0-alpha11
is released. Version 1.1.0-alpha11 contains these commits.
API Changes
- Added CameraSelector#filter to the public API to filter a list of CameraInfos based on a CameraSelector. ( I105d0 )
Add setOutputImageRotationEnabled API for ImageAnalysis config. User can enable rotation for YUV/RGB image buffer. The rotation degree is a relative rotation calculated based on sensor rotation and target rotation to keep image upfront.
Add setOutputImageRotationEnabled API for ImageAnalysis config. User can enable rotation for YUV/RGB image buffer. The rotation degree is a relative rotation calculated based on sensor rotation and target rotation to keep image upfront.
Add
getSensorToBufferTransformMatrix
API in ImageInfo. The returned matrix is a mapping from sensor coordinates to buffer coordinates, which is, from the value ofCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
to(0, 0, image.getWidth, image.getHeight)
. The matrix can be used to map the coordinates from one {UseCase} to another. For example, mapping coordinates of the face detected with ImageAnalysis to Preview. ( I9ff1e )Added a new API ImageCapture.Builder#setJpegQuality to allow changing the output JPEG image compression quality when taking picture. ( I8dcf4 )
Renamed MediaStoreOutputOptions.getCollection to MediaStoreOutputOptions.getCollectionUri. ( I16639 )
Исправления ошибок
- Fixed the issue where flash being triggered during tap-to-focus (startFocusAndMetering) when flash mode is auto or always_on in low-light environment. ( Id4c11 )
- Disabled HDR+ on Pixel 2 XL / Pixel 3 XL in MINIMIZE_LATENCY mode to reduce latency. ( Ib6270 , b/203505523 )
External Contribution
Version 1.1.0-alpha10
October 13, 2021
androidx.camera:camera-*:1.1.0-alpha10
is released. Version 1.1.0-alpha10 contains these commits.
Новые возможности
- Released
androidx.camera:camera-video:1.1.0-alpha10
as the first alpha version for Video officially. There are several known issues to be fixed in the later releases.
API Changes
- Added
@RequiresApi(21)
annotation to all CameraX classes and dropped minSdkVersion from AndroidManifest.xml. This will allow camera-core to be easily integrated into applications that have a minSdkVersion less than 21, but want to conditionally use code paths that rely on API 21 and higher. For any application with minSdkVersion 21 or higher, this change requires no action. ( Ie7f2e , b/200599470 )
Исправления ошибок
- Throw an InitializationException to make the app be able to gracefully handle the AssertionError happened when creating CameraCharacteristics. ( Ibec79 )
Version 1.1.0-alpha09
29 сентября 2021 г.
androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
, and androidx.camera:camera-lifecycle:1.1.0-alpha09
are released. Version 1.1.0-alpha09 contains these commits.
API Changes
- ExperimentalUseCaseGroup annotation is removed now that the APIs are no longer experimental. ( I01ef5 )
Исправления ошибок
- Fix the issue where the captured photos are blurred in
MAXIMIZE_QUALITY
mode. ( I173a9 , b/193823892 ) - Fixed a Samsung Galaxy J5 issue that camera gets stuck after taking pictures with flash on/auto in dark environment ( I3aab9 )
- When cropping is needed for ImageCapture, compressing the output cropped image with the specified JPEG quality level according to the set capture mode. If the capture mode is
CAPTURE_MODE_MINIMIZE_LATENCY
, the JPEG compression quality will be 95. If the capture mode isCAPTURE_MODE_MAXIMIZE_QUALITY
, the JPEG compression quality will be 100. ( Ieb37c , b/142856426 )
Version 1.1.0-alpha08
August 18, 2021
androidx.camera:camera-camera2:1.1.0-alpha08
, androidx.camera:camera-core:1.1.0-alpha08
, and androidx.camera:camera-lifecycle:1.1.0-alpha08
are released. Version 1.1.0-alpha08 contains these commits.
Новые возможности
- Add setOutputImageFormat API for image analysis config. User can select ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 or ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. By default, ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 will be selected. ( I7902d )
API Changes
- ExperimentalUseCaseGroupLifecycle annotation is removed now that the APIs are no longer experimental. ( I17b85 )
Исправления ошибок
- Fixed Preview screen is too bright on the Huawei P20 Lite. This problem only occurs when certain special Preview resolutions are used together with a large zoom in value. ( Idefce , b/192129158 )
- Fixed an issue that flash is not working on some devices when setting flash mode to FLASH_MODE_ON shortly followed by taking pictures. ( Ieb49b )
- Fixed the issue where Preview will halt for a while when taking pictures if VideoCapture, ImageCapture and Preview are bound. ( I56197 , b/193864120 )
- Allows ImageAnalysis to select a resolution larger than 1080p. A LIMITED-level above device can support a RECORD size resolution for ImageAnalysis when it is bound together with Preview and ImageCapture. The trade-off is the selected resolution for the ImageCapture will also need to be a RECORD size resolution. To successfully select a RECORD size resolution for ImageAnalysis, a RECORD size target resolution should be set on both ImageCapture and ImageAnalysis. This indicates that the application clearly understands the trade-off and prefers the ImageAnalysis to have a larger resolution rather than the ImageCapture to have a MAXIMUM resolution. For the definitions of RECORD, MAXIMUM sizes and more details see https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. The RECORD size refers to the camera device's maximum supported recording resolution, as determined by CamcorderProfile. The MAXIMUM size refers to the camera device's maximum output resolution for that format or target from StreamConfigurationMap.getOutputSizes(int). ( I1ee97 , b/192911449 )
- Add the Exif info to the captured image. ( I01ff0 , b/193342619 )
- In ImageCapture, return the URI of the saved image if the saving location is File. ( Ib5b49 , b/149241379 )
- Fixed an issue that captured images with flash is dark on many devices. ( I4e510 )
Version 1.1.0-alpha07
July 21, 2021
androidx.camera:camera-camera2:1.1.0-alpha07
, androidx.camera:camera-core:1.1.0-alpha07
, and androidx.camera:camera-lifecycle:1.1.0-alpha07
are released. Version 1.1.0-alpha07 contains these commits.
Исправления ошибок
- Fixed a Samsung Galaxy Note 5 issue that camera gets stuck after taking pictures with flash on/auto in dark environment ( If6871 )
- Fixed
YuvToJpegProcessor
EOFException issue when extension mode is enabled andImageCapture#CAPTURE_MODE_MAX_QUALITY
mode is set. ( I538bd , b/192017012 )
Version 1.1.0-alpha06
June 30, 2021
androidx.camera:camera-camera2:1.1.0-alpha06
, androidx.camera:camera-core:1.1.0-alpha06
, and androidx.camera:camera-lifecycle:1.1.0-alpha06
are released. Version 1.1.0-alpha06 contains these commits.
API Changes
- Promote the experimental exposure compensation APIs for camera-core ( I08ee8 )
- Added a API isFocusMeteringSupported in CameraInfo which allows applications to check if the given FocusMeteringAction is supported on current camera or not. ( Ib45ae , b/188606490 )
- Exposed getResolutionInfo API to provide the resolution information for Preview, ImageCapture and ImageAnalysis. ( I2b613 , b/188600718 )
- Promoted the following experimental APIs to official APIs: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). ( I2ade2 )
- Exposed the CameraProvider interface to provide access to a set of cameras. ( I1a7b1 )
- Promote the experimental UseCaseGroup API for camera-core, camera-lifecycle and camera-video. Added
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
andViewPort.Builder#setScaleType
for customizing viewport. ( I7cee8 )
Version 1.1.0-alpha05
June 2, 2021
androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
, and androidx.camera:camera-lifecycle:1.1.0-alpha05
are released. Version 1.1.0-alpha05 contains these commits.
API Changes
- Removed
Camera2CameraFilter
class. Suggest to select camera by CameraFilter and retrieve CameraCharacteristics or other Camera2 related information through Camera2CameraInfo if needed. ( Ib887c ) -
ExperimentalCameraFilter
APIs are now out of experimental stage and become formal APIs. They can be used without annotated OptIn. ( I4bc94 ) - Added camera state API that's exposed through
CameraInfo#getCameraState()
. ( Ia86b4 ) - Added experimental API
CameraInfo#getCameraSelector()
which returns a CameraSelector unique to its camera ( I77f9f )
Исправления ошибок
- Fixed the issue that ListenableFuture returned in setZoomRatio and setLinearZoom cannot complete on some android 11 devices ( I716d7 )
- Speed up Camera switching and reduce the error happen rate of the camera device ( I34c99 )
- Replaced ExperimentalUseCaseGroupLifecycle with ExperimentalUseCaseGroup. ( I3b2ef , b/159033688 )
Version 1.1.0-alpha04
April 21, 2021
androidx.camera:camera-camera2:1.1.0-alpha04
, androidx.camera:camera-core:1.1.0-alpha04
, and androidx.camera:camera-lifecycle:1.1.0-alpha04
are released. Version 1.1.0-alpha04 contains these commits.
Исправления ошибок
- Fixed a memory leak caused by multiple threads concurrently accessing the same collection. The memory leak may cause the Activity or Fragment to be retained by a Preview instance. ( I7b4b8 )
- Replaced annotation
@Experimental
with@RequiresOptIn
to experimental APIs. For calling experimental APIs, useandroidx.annotation.OptIn
instead of deprecatedandroidx.annotation.experimental.UseExperimental
. ( Iff226 ) - Fixed ImageCapture with flash On/Auto takes washed out images on Samsung Galaxy S7. ( I30001 )
- Added a CameraState API that will be exposed through CameraInfo. ( I75392 )
Version 1.1.0-alpha03
March 24, 2021
androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
, and androidx.camera:camera-lifecycle:1.1.0-alpha03
are released. Version 1.1.0-alpha03 contains these commits.
Исправления ошибок
- Output JPEG format for
ImageCapture#OnImageCapturedCallback
when Extensions modes is enabled. ( I0d7b1 ) - Fixed initialization failure on UMIDIGI BISON devices ( I57d9e , b/180818665 )
- Fixed Samsung A3 stretched preview in PreviewView. ( Iacb30 , b/180121821 )
Version 1.1.0-alpha02
24 февраля 2021 г.
androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
, and androidx.camera:camera-lifecycle:1.1.0-alpha02
are released. Version 1.1.0-alpha02 contains these commits.
API Changes
- Added an API
ProcessCameraProvider.getAvailableCameraInfos()
to directly retrieve information about the available cameras, which are either all of the device's cameras, or those selected by theCameraSelector
provided inCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
. ( Ieac08 )
Исправления ошибок
- CameraX now tries to force open a camera on the initial attempt, this may result in CameraX stealing the camera away from other camera clients when its app has a higher priority. ( Iab069 , b/175820568 )
- Fixed the Robolectric test failure when setAvailableCamerasLimiter is used in CameraXConfig. ( Ice307 )
- This change catches the exception when the image queue is maxed out in ImageAnalysis. So instead of crashing, you may notice other use cases being frozen or sluggish. eg frozen/sluggish preview. ( Ic12da , b/175851631 )
- Fixed ExtensionsErrorListener to report errors when only Preview or ImageCapture is bound. ( I5ae39 )
- Fixed ImageCapture performance regression by removing the validation of image saved location before taking a picture. After making this change, if the save destination is invalid, it will take longer to get the failure response because it will try to save the image after the photo is taken. ( I1fd4e , b/177061560 )
- Fixed ImageCapture performance regression with "File" type OutputFileOptions. ( I5164a , b/177061560 )
- Documentation updated to recommend against using
ProcessCameraProvider.configureInstance(...)
from library code. ( Ib8a9f )
Version 1.1.0-alpha01
27 января 2021 г.
androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
, and androidx.camera:camera-lifecycle:1.1.0-alpha01
are released. Version 1.1.0-alpha01 contains these commits.
Исправления ошибок
- Workaround included for intermittent corrupt image data in JPEGs on SM-G930T back-facing camera. ( I52001 , b/159831206 )
- Fixed
IllegalArgumentException
issue that happened when all preview supported sizes are smaller than 640x480 and display size is larger than 640x480. ( I2a63c , b/150506192 ) - Resources in libraries with no explicitly declared public resources (ex. via public.xml) are now private by default. ( Ia1dcc , b/170882230 )
Camera-Camera2, Camera-Core, & Camera-Lifecycle Version 1.0.2
Version 1.0.2
29 сентября 2021 г.
androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
, and androidx.camera:camera-lifecycle:1.0.2
are released. Version 1.0.2 contains these commits.
Исправления ошибок
- Fix the issue where the captured photos are blurred in
MAXIMIZE_QUALITY
mode. ( I173a9 , b/193823892 ) - Fixed a issue that captured image with flash is dark on many devices. ( I4e510 )
Camera-Camera2, Camera-Core, & Camera-Lifecycle Version 1.0.1
Version 1.0.1
July 21, 2021
androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
, and androidx.camera:camera-lifecycle:1.0.1
are released. Version 1.0.1 contains these commits.
Исправления ошибок
Fixed the issue that the
ListenableFuture
returned insetZoomRatio
andsetLinearZoom
cannot complete on some android 11 devices ( I716d7 )Fixed the issue that the camera gets stuck at closing camera state on some devices and causes black preview. ( I34c99 )
Camera-Camera2, Camera-Core, & Camera-Lifecycle Version 1.0.0
Версия 1.0.0
May 5, 2021
androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
, and androidx.camera:camera-lifecycle:1.0.0
are released. Version 1.0.0 contains these commits.
Major features of 1.0.0
- CameraX supports Preview , ImageCapture , and Analysis
- CameraX manages the camera lifecycle within an easy to use API
- CameraX aims to provide a compatibility layer that fixes many issues in the Android Camera Ecosystem
Known Issues
- See Known Issue list
Version 1.0.0-rc05
April 21, 2021
androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
, and androidx.camera:camera-lifecycle:1.0.0-rc05
are released. Version 1.0.0-rc05 contains these commits.
Исправления ошибок
- Fixed ImageCapture with flash On/Auto takes washed out images on Samsung Galaxy S7. ( I30001 )
Version 1.0.0-rc04
March 24, 2021
androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
, and androidx.camera:camera-lifecycle:1.0.0-rc04
are released. Version 1.0.0-rc04 contains these commits.
Исправления ошибок
- Fixed initialization failure on UMIDIGI BISON devices ( I57d9e , b/180818665 )
Version 1.0.0-rc03
24 февраля 2021 г.
androidx.camera:camera-camera2:1.0.0-rc03
, androidx.camera:camera-core:1.0.0-rc03
, and androidx.camera:camera-lifecycle:1.0.0-rc03
are released. Version 1.0.0-rc03 contains these commits.
Исправления ошибок
- Fix format error in the document of
ProcessCameraProvider#getInstance
- Fixed the Robolectric test failure when setAvailableCamerasLimiter is used in CameraXConfig.
- Fixed ImageCapture performance regression by removing the validation of image saved location before taking a picture. After making this change, if the save destination is invalid, it will take longer to get the failure response because it will try to save the image after the photo is taken
- This change catches the exception when the image queue is maxed out in ImageAnalysis. So instead of crash, you may notice other use cases being frozen or sluggish. eg frozen/sluggish preview.
- Workaround included for intermittent corrupt image data in JPEGs on SM-G930T back-facing camera. ( I52001 , b/159831206 )
- This change catches the exception when the image queue is maxed out in ImageAnalysis. So instead of crashing, you may notice other use cases being frozen or sluggish. eg frozen/sluggish preview. ( Ic12da , b/175851631 )
- Fixed the Robolectric test failure when setAvailableCamerasLimiter is used in CameraXConfig. ( Ice307 )
- Fixed ImageCapture performance regression by removing the validation of image saved location before taking a picture. After making this change, if the save destination is invalid, it will take longer to get the failure response because it will try to save the image after the photo is taken. ( I1fd4e , b/177061560 )
- Fixed ImageCapture performance regression with "File" type OutputFileOptions. ( I5164a , b/177061560 )
Version 1.0.0-rc02
27 января 2021 г.
androidx.camera:camera-camera2:1.0.0-rc02
, androidx.camera:camera-core:1.0.0-rc02
, and androidx.camera:camera-lifecycle:1.0.0-rc02
are released. Version 1.0.0-rc02 contains these commits.
Исправления ошибок
- Fixed IllegalArgumentException issue happened when all preview supported sizes are smaller than 640x480 and display size is larger than 640x480. ( b/150506192 )
Limit number of camera reopen attempts. While attempting to recover from certains issues when opening the camera, CameraX will no longer attempt to reopen the camera indefinitely, instead it will stop after retrying for 10 seconds. I435d2
Fixed
IllegalArgumentException
issue that happened when all preview supported sizes are smaller than 640x480 and display size is larger than 640x480. ( I2a63c , b/150506192 )
Version 1.0.0-rc01
December 16, 2020
androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
, and androidx.camera:camera-lifecycle:1.0.0-rc01
are released. Version 1.0.0-rc01 contains these commits.
API Changes
- Changed CameraFilter and Camera2Filter to take in CameraInfo. ( I6883d )
- Added experimental class Camera2CameraControl to allow interoperating with Camera2 APIs dynamically. ( I45cf3 )
- Renamed Camera2CameraInfo#fromCameraInfo to #from. ( Ia2bd6 )
- Added an experimental setAvailableCamerasLimiter API to CameraXConfig to allow apps to optimize the initialization latency by avoiding initializing unused cameras. ( I6cf88 )
- Added experimental method
CameraXConfig.Builder#setMinimumLoggingLevel()
to allow setting a minimum logging level for CameraX logs. When not set, it defaults toLog#DEBUG
. ( Ic3245 )
Исправления ошибок
- Workaround included for intermittent corrupt image data in JPEGs on SM-G930V back-facing camera. ( I5aca5 , b/159831206 )
- Fixed the issue that taking pictures doesn't receive results when flash is always/on and the environment is dark on Samsung SM-A716 devices. ( If98b2 , b/172036589 )
- Fixed the issue that the Preview cannot be stopped by calling
Preview.setSurfaceProvider(null)
. ( I3ac18 ) - Fixed orientation issue when capturing 4:3 images on some devices. ( I0e3fb , b/171492111 )
Camera Camera2, Core, & Lifecycle Version 1.0.0-beta12
November 11, 2020
androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
, and androidx.camera:camera-lifecycle:1.0.0-beta12
are released. Version 1.0.0-beta12 contains these commits.
Исправления ошибок
- Disabled auto flash on Samsung A3 devices to fix the crash when taking a photo with auto flash AE mode on Samsung A3 devices. ( Ia5fe3 , b/157535165 )
- Fixed an issue where the preview was stretched on Nexus 4 devices running Android L (API levels 21 and 22). ( I4d407 , b/158749159 )
-
OnImageCapturedCallback#onCaptureSuccess
base class implementation no longer closes the image. This is for preventing unexpected behavior to developers. Developers should not rely on super.onCaptureSuccess to close the image. ( Ifbf9c ) - The androidx variant of the Experimental annotation has been deprecated to provide parity with Kotlin. It has been replaced by the RequiresOptIn annotation, and the Java-facing linter has been updated to support both the new Kotlin annotation and the new androidx variant. ( I52495 , b/151331381 )
Camera-Camera2 Version 1.0.0-beta11
October 14, 2020
androidx.camera:camera-camera2:1.0.0-beta11
is released. Version 1.0.0-beta11 contains these commits.
Новые возможности
- Supports android 11
CONTROL_ZOOM_RATIO
API for zoom on android 11 or later devices which contains validCONTROL_ZOOM_RATIO_RANGE
. ( I62cc6 )
Исправления ошибок
- Fixed the NumberFormatException issue happened when the camera Id is a non-integer camera Id. ( Ib2228 )
- Improved the latency of CameraX initialization and bindToLifecycle ( I61dc5 )
- Creation of UseCases do not require initialization of CameraX to complete. All implementation specific configurations are set on UseCase once it is attached to a Camera instance which for the public API is
ProcessCameraProvider.bindToLifecycle()
. ( Ia5411 ) -
<UseCase>.getTargetRotation()
will returnSurface.ROTATION_0
if called before being attached to a Camera instance unless a targetRotation has been set on the Builder or UseCase. ( I80fcd )
Camera-Core Version 1.0.0-beta11
October 14, 2020
androidx.camera:camera-core:1.0.0-beta11
is released. Version 1.0.0-beta11 contains these commits.
New Features - Supports android 11 CONTROL_ZOOM_RATIO
API for zoom on android 11 or later devices which contains valid CONTROL_ZOOM_RATIO_RANGE
. ( I62cc6 )
Исправления ошибок
- Fixed the NumberFormatException issue happened when the camera Id is a non-integer camera Id. ( Ib2228 )
- Creation of UseCases do not require initialization of CameraX to complete. All implementation specific configurations are set on UseCase once it is attached to a Camera instance which for the public API is
ProcessCameraProvider.bindToLifecycle()
. ( Ia5411 ) -
<UseCase>.getTargetRotation()
will returnSurface.ROTATION_0
if called before being attached to a Camera instance unless a targetRotation has been set on the Builder or UseCase. ( I80fcd )
Camera-Core Version 1.0.0-beta10
September 23, 2020
androidx.camera:camera-core:1.0.0-beta10
is released. Version 1.0.0-beta10 contains these commits.
Исправления ошибок
- Fix bug in validating file save destination for image capture ( I8c565 , b/167697553 )
Camera-Camera2 Version 1.0.0-beta10
September 23, 2020
androidx.camera:camera-camera2:1.0.0-beta10
is released. Version 1.0.0-beta10 contains these commits.
Исправления ошибок
- Release to support Camera-Core 1.0.0-beta10
Camera-Camera2 Version 1.0.0-beta09
September 16, 2020
androidx.camera:camera-camera2:1.0.0-beta09
is released. Version 1.0.0-beta09 contains these commits.
API Changes
- Instead of providing static methods, Camera2CameraInfo takes in a CameraInfo instance when created to retrieve Camera2 related information from. ( I5b844 )
Исправления ошибок
- Fixed target aspect ratio issue on tablet devices. A 16:9 size should be selected when the target aspect ratio is set as
AspectRatio.RATIO_16_9
. ( Ib7fcf , b/151969438 ) - Throw an
InitializationException
to make the app be able to gracefully handle the AssertionError happened when creating CameraCharacteristics. ( I89c8c , b/160524721 ) - Added experimental interfaces for ExposureCompensation ( If96c7 )
Camera-Core Version 1.0.0-beta09
September 16, 2020
androidx.camera:camera-core:1.0.0-beta09
is released. Version 1.0.0-beta09 contains these commits.
API Changes
- fixed the bug where viewport is marked as non-null on UseCaseGroup. Developers should be able to create a viewport without setting a viewport. ( Ie3d2e )
- Added experimental interfaces for
ExposureCompensation
( If96c7 ) - Allow arbitrary target rotation for Preview. The transformation info is calculated and returned to user on-the-fly via a new
TranformationInfoListener
callback. ( I21470 )
Исправления ошибок
- Fixed the issue that flash on some devices would not turn off. It happens when the flash mode is set to
FLASH_MODE_ON
to take a picture, and is changed toFLASH_MODE_OFF
when the flash is fired. The symptom is like torch mode enabled. ( Ib4451 , b/162568128 ) - Forced PreviewView to use TextureView if extension effect is enabled and the vendor library implementation needs to do a special process on the output surface. ( I0c3cc )
- Fixed the activity/fragment leak when an activity/fragment context is passed to
ProcessCameraProvider.getInstance(Context)
.
Known Issues
- When ViewPort is set, the crop rect of ImageCapture might be incorrect on devices who rotate the image buffer in HAL. This will be fixed in the next release.
Camera-Camera2 Version 1.0.0-beta08
August 19, 2020
androidx.camera:camera-camera2:1.0.0-beta08
is released. Version 1.0.0-beta08 contains these commits.
Исправления ошибок
- Optimized bindToLifecycle to run quickly on the main thread. ( I1d57e )
- DisplayOrientedMeteringPointFactory takes in a CameraInfo instance instead of a CameraSelector so there is a direct mapping to which Camera the factory will be generating points for. All classes which use DisplayOrientedMeteringPointFactory also take in a CameraInfo instance instead of CameraSelector. ( I400c1 )
- Fixed auto-resolution aspect ratio size grouping issue that a 16:9 mod16 size (864x480) is selected when the target resolution setting is 2016x1080 and there is another 1920x1080 16:9 size supported. ( I53167 , b/159363774 )
- Fix the CameraControl issue where it's unable to work by a race condition ( I2279f , b/152333890 , b/160714166 )
Camera-Core Version 1.0.0-beta08
August 19, 2020
androidx.camera:camera-core:1.0.0-beta08
is released. Version 1.0.0-beta08 contains these commits.
API Changes
-
DisplayOrientedMeteringPointFactory
takes in aCameraInfo
instance instead of aCameraSelector
so there is a direct mapping to which Camera the factory will be generating points for. All classes which useDisplayOrientedMeteringPointFactory
also take in aCameraInfo
instance instead ofCameraSelector
. ( I400c1 )
Исправления ошибок
- For image capture, overwrite the flip horizontal flag in metadata based on camera direction. ( I28499 )
- Initialization should no longer crash when using a Context that does not return an Application object from
Context.getApplicationContext()
. ( I3d3c9 , b/160817073 )
Camera-Camera2 Version 1.0.0-beta07
July 22, 2020
androidx.camera:camera-camera2:1.0.0-beta07
is released. Version 1.0.0-beta07 contains these commits.
Исправления ошибок
- Fixed the issue that the preview is stretched on android 5.0 legacy device. ( I0c03a )
- Excluded some JPEG supported sizes that will cause WYSIWYG issue on some devices. ( Ib5128 )
Camera-Core Version 1.0.0-beta07
July 22, 2020
androidx.camera:camera-core:1.0.0-beta07
is released. Version 1.0.0-beta07 contains these commits.
API Changes
- Merge
FIT_CENTER
,FIT_START
, andFIT_END
fit style withFIT
.FIT
means that the returned crop rect will be the max possible sensor rect. ( Ia73c3 ) - Preview's crop rect is configured by viewport. Only the area covered by the crop rect should be visible to end users. ( I142a4 )
Исправления ошибок
- Fixed the issue that the preview is stretched on android 5.0 legacy device. ( I0c03a )
- Fixed the
ConcurrentModificationException
exception issue when unbinding use cases. ( I371c0 )
Camera-Camera2 Version 1.0.0-beta06
24 июня 2020 г.
androidx.camera:camera-camera2:1.0.0-beta06
is released. Version 1.0.0-beta06 contains these commits.
API Changes
- Added experimental interfaces for filtering cameras by camera ID and CameraCharacteristics. ( I28f61 )
Исправления ошибок
- Fixed the issue where startFocusAndMetering fails to focus successfully on Samsung Galaxy S7. ( If3be7 , b/159039233 )
- Fix the camera can't be closed after quit the app. ( I7a7b3 )
- Fix repeated camera switching breaks preview when using SurfaceView implementation of PreviewView ( I920ce )
-
CameraControl#startFocusAndMetering
will fail if none of the specified MeteringPoint can generate valid metering rectangles. ( Id53ce )
Camera-Core Version 1.0.0-beta06
24 июня 2020 г.
androidx.camera:camera-core:1.0.0-beta06
is released. Version 1.0.0-beta06 contains these commits.
API Changes
- Added experimental interfaces for filtering cameras by camera ID and CameraCharacteristics. ( I28f61 )
Исправления ошибок
- CameraX can now be configured with
ProcessCameraProvider#configureInstance()
before callingProcessCameraProvider#getInstance()
. This allows for customization of theCameraXConfig
without requiring implementingCameraXConfig.Provider
in the app's Application class. ( Ia1a8d ) -
CameraControl#startFocusAndMetering
will fail if none of the specified MeteringPoint can generate valid metering rectangles. ( Id53ce )
Camera-Camera2 Version 1.0.0-beta05
June 10, 2020
androidx.camera:camera-camera2:1.0.0-beta05
is released. Version 1.0.0-beta05 contains these commits.
Исправления ошибок
- Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An
InitializationException
contains aCameraUnavailableException
that will be set to theListenableFuture
of the intialization result instead of crashing the application. ( I9909a , b/149413835 ) - Fixed the crash when calling
startFocusAndMetering
on devices thatCONTROL_AF_STATE
is null. ( Ife55e , b/157084254 )
Camera-Core Version 1.0.0-beta05
June 10, 2020
androidx.camera:camera-core:1.0.0-beta05
is released. Version 1.0.0-beta05 contains these commits.
API Changes
- Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An
InitializationException
contains aCameraUnavailableException
will be set to theListenableFuture
of the intialization result instead of crashing the application. ( I9909a , b/149413835 )
Исправления ошибок
- Updated javadocs of
setTargetResolution
andsetTargetRotation
. ( Iae16f )
Camera-Camera2 Version 1.0.0-beta04
May 27, 2020
androidx.camera:camera-camera2:1.0.0-beta04
is released. Version 1.0.0-beta04 contains these commits.
Исправления ошибок
- Allowed applications to set any camera2 capture request parameters via
Camera2Interop
without causing a crash. Please note that if there are issues that arise as a result of overriding parameters. Stability and behaviour are not guaranteed when overriding parameters using Camera2Interop. ( Ibe5a1 , b/149103700 ) - Auto-initialization is fixed when using an app on a device that is using a pseudo-locale. ( I3bef3 , b/154767663 )
- Converted error log related to detached use case to a debug log on Camera2CameraImpl. ( I1a565 , b/154422490 )
- Fixed issue where image taken is too dark sometimes even though flash is fired. ( I5d9fa , b/149729613 )
- Fix bug where buffer in
ImageProxy
fromImageCapture
was not rewound ( I0c455 , b/153249512 ) - Fixed the issues where binding ImageCapture only: (1) Failed to take photos with MAX_QUALITY; (2) Generated bad Image quality because auto exposure does not work. ( I17782 , b/145326998 )
- Improved reliability of re-opening camera when CameraX is disconnected by another process or codepath stealing the camera ( I1fbc3 , b/153714651 )
Camera-Core Version 1.0.0-beta04
May 27, 2020
androidx.camera:camera-core:1.0.0-beta04
is released. Version 1.0.0-beta04 contains these commits.
API Changes
- Adds an experimental API,
CameraXConfig.Builder#setSchedulerHandler()
for setting the handler used internally by the CameraX camera stack. This new API along withCameraXConfig.Builder#setCameraExecutor()
should allow full control over the threads being used by the CameraX camera stack. ( I7bf32 , b/121160431 )
Исправления ошибок
- Fixes crash in
ImageAnalysis
where theImageProxy
is accessed after theImageReaderProxy
has been closed. This also makes it so that allImageProxy
received by theAnalyzer
must be closed before theImageReaderProxy
will be closed. ( I4b299 , b/145956416 , b/154155377 , b/156357269 ) - Removed the
CameraInfo
parameter fromPreviewView#createSurfaceProvider()
,PreviewView
now internally retrieves it from theSurfaceRequest
. ( If18f0 , b/154652477 ) - Auto-initialization is fixed when using an app on a device that is using a pseudo-locale. ( I3bef3 , b/154767663 )
- Fixed issue where image taken is too dark sometimes even though flash is fired. ( I5d9fa , b/149729613 )
- Fix issue with
ImageAnalysis
where multiple calls to setAnalyzer/clearAnalyzer resulted in the analyzer not receiving images to analyze. ( I6169f , b/151605317 , b/153514544 ) - Fix bug where buffer in
ImageProxy
fromImageCapture
was not rewound ( I0c455 , b/153249512 ) - Fixed the issue that the first camera in the supported list from
CameraManager
is not always selected to use. ( I4c624 , b/153418028 ) - Fixed intermittent crash caused by setting
Preview.SurfaceProvider
not releasing the previously requested surface.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
( I8e4e7 , b/155936225 )
Camera-Camera2 Version 1.0.0-beta03
April 15, 2020
androidx.camera:camera-camera2:1.0.0-beta03
is released. Version 1.0.0-beta03 contains these commits.
Исправления ошибок
- Fixes to support the release of
camera-core
Camera-Core Version 1.0.0-beta03
April 15, 2020
androidx.camera:camera-core:1.0.0-beta03
is released. Version 1.0.0-beta03 contains these commits.
Исправления ошибок
- Fixed regression from beta03 where calling
bindToLifecycle()
with zeroUseCase
s would cause a thrown exception. This prevented retrieval of aCamera
without binding aUseCase
.
Camera-Camera2 Version 1.0.0-beta02
April 1, 2020
androidx.camera:camera-camera2:1.0.0-beta02
is released. Version 1.0.0-beta02 contains these commits.
Исправления ошибок
- Fixed the
ImageInfo.getRotationDegrees()
from theImageProxy
produced byImageCapture
so that it matches the EXIF orientation rotational value. ( Id4281 , b/150802561 ) - Explicit ordering of CameraX dependencies within
build.gradle
is no longer required to use the default CameraX/Camera2 implementation. For cases where declaring strict dependencies is required, all CameraX dependencies can now be included in the build file. ( I46e88 ) - Fixed the
IllegalArgumentException
issue happening on the devices where the display size is smaller than 640x480. ( Ife3f2 , b/150506192 ) - Fixed
bindToLifecycle
so that it only modifies the UseCase if it successfully binds. Previously when callingbindToLifecycle
in order to do resolution calculations the UseCase is updated. Now it no longer needs to update the UseCase to do the calculations ( I78d9e )
Camera-Core Version 1.0.0-beta02
April 1, 2020
androidx.camera:camera-core:1.0.0-beta02
is released. Version 1.0.0-beta02 contains these commits.
Исправления ошибок
- Fixed the
ImageInfo.getRotationDegrees()
from theImageProxy
produced byImageCapture
so that it matches the EXIF orientation rotational value. ( Id4281 , b/150802561 ) - Fixed
bindToLifecycle
so that it only modifies the UseCase if it successfully binds. Previously when callingbindToLifecycle
in order to do resolution calculations the UseCase is updated. Now it no longer needs to update the UseCase to do the calculations ( I78d9e ) - Fixed an issue where the
Preview
use case's capture session wasn't being updated when the preview surface changed after callingPreview.setSurfaceProvider()
more than once.
Camera-Camera2 Version 1.0.0-beta01
February 26, 2020
androidx.camera:camera-camera2:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
Исправления ошибок
- Renamed
SurfaceRequest.setSurface(Surface)
toSurfaceRequest.provideSurface(Surface)
, andSurfaceRequest.setWillNotComplete()
toSurfaceRequest.willNotProvideSurface()
. ( I224fe ) - Fixed an issue with the aspect ratio of a saved image not being correct after changing the target rotation value using
ImageCapture.setTargetRotation()
. ( I474ea , b/148763432 ) - Fixed initialization of app variants with ProGuard enabled by preserving the flag that sets the default
CameraXConfig
provider. ( I2d6c1 )
Camera-Core Version 1.0.0-beta01
February 26, 2020
androidx.camera:camera-core:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
API Changes
- Replaced the
ListenableFuture
onSurfaceRequest.provideSurface()
with anExecutor
andCallback
. This simplifies the API by no longer requiring handling of exceptions onprovideSurface()
and enforces that theprovideSurface()
callback cannot be cancelled. This is to prevent crashes on older devices caused by prematurely releasing surfaces. TheSurfaceRequest.Result
object is now used for tracking how aSurfaceRequest
uses the providedSurface
. ( I7854b ) - Renamed
SurfaceRequest.setSurface(Surface)
toSurfaceRequest.provideSurface(Surface)
andSurfaceRequest.setWillNotComplete()
toSurfaceRequest.willNotProvideSurface()
. ( I224fe )
Исправления ошибок
- Fixed an issue with the aspect ratio of a saved image not being correct after changing the target rotation value using
ImageCapture.setTargetRotation()
. ( I474ea , b/148763432 ) - Fixed initialization of app variants with ProGuard enabled by preserving the flag that sets the default
CameraXConfig
provider. ( I2d6c1 ) - Updated documentation for flash mode APIs to include possible values. ( I4a3ec )
Camera-Camera2 Version 1.0.0-alpha10
February 10, 2020
androidx.camera:camera-camera2:1.0.0-alpha10
is released. Version 1.0.0-alpha10 contains these commits .
Исправления ошибок
- Improved stability on
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
devices by ensuringSurface
s are only retained for duration of use by Camera2. ( I9dac2 ) - Fixed underexposed preview issue on LEGACY devices by adjusting
CONTROL_AE_TARGET_FPS_RANGE
properly. ( 1224638 )
Camera-Core Version 1.0.0-alpha10
February 10, 2020
androidx.camera:camera-core:1.0.0-alpha10
is released. Version 1.0.0-alpha10 contains these commits .
API Changes
- Updated
ImageCapture
to allow saving images toUri
andOutputStream
. Combined overloadedtakePicture
methods into one. Updated test app to useUri
as the canonical example. ( Ia3bec ) -
Preview.PreviewSurfaceProvider
has been renamed toPreview.SurfaceProvider
.SurfaceProvider
s no longer require developers to create their ownListenableFuture
, and providing aSurface
is now done through a newSurfaceRequest
object. ThePreview.getPreviewSurfaceProvider()
method has been removed due to its potential for misuse whenPreview
is paired with other classes such asPreviewView
. ( I20105 ) - Added
getTargetRotation()
andgetTargetName()
toPreview
. ( Iceee7 ) - Added
getTargetRotation()
,getBackpressureStrategy()
, andgetImageQueueDepth()
inImageAnalysis
. ( I9d6d9 ) - Added
getTargetRotation()
andgetCaptureMode()
inImageCapture()
( I5bc17 ) - The arguments that were previously passed in
ImageCapture.OnImageSavedCallback.onError()
andImageCapture.OnImageCapturedCallback.onError()
have now been replaced by a single argumentImageCaptureException
, which still contains all the information that was previously passed. - The file argument previously passed in
ImageCapture.OnImageSavedCallback.onImageSaved()
has been removed. ( I750d2 ) -
Preview
andImageCapture
classes are now marked final. ( I2500b ) - API updated, with
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
, andgetLinearZoom()
methods ofCameraInfo
merging intogetZoomState()
which returns aZoomState
instance. ( Ib19fe ) - Removed API fields
OPTION_TARGET_CLASS
andOPTION_TARGET_NAME
fromCameraXConfig
as they are intended for internal library use only. Removed constructor forCameraXConfig.Builder
. ( I96912 ) - Removed requirement that app must extend
Application
in order to initialize CameraX. CameraX will now be initialized with a default Camera2 configuration as long as thecamera-camera2
artifact is included in the application'sbuild.gradle
. ( I58ff5 ) ( b/146923574 )
Camera-Camera2 Version 1.0.0-alpha09
January 22, 2020
androidx.camera:camera-camera2:1.0.0-alpha09
is released. Version 1.0.0-alpha09 contains these commits .
API changes
Add camera2 interop path for extracting a Camera2 camera ID. You can extract the camera ID from
CameraInfo
usingCamera2CameraInfo.extractCameraId()
. The following code sample shows how to use this:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
The
Camera2CameraInfo
class requires theExperimentalCamera2Interop
markerClass.
Camera-Core Version 1.0.0-alpha09
January 22, 2020
androidx.camera:camera-core:1.0.0-alpha09
is released. Version 1.0.0-alpha09 contains these commits .
API changes
- The
SurfaceOrientedMeteringPointFactory
parameteruseCaseForSurface
was renamed touseCaseForAspectRatio
and the reference documentation was expanded. -
FocusMeteringAction.Builder.from()
methods are replaced by the constructorsFocusMeteringAction.Builder()
. - Removed
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
. Applications should use the constructor that takes aDisplay
parameter and pass in the current display. - Javadoc improvements for focus and metering APIs regarding
MeteringMode
and 3A Flags, and usage ofDisplay
parameter. - Expanded the reference documentation for
setZoomRatio
andsetLinearZoom
.
Исправления ошибок
- Fixed issues when closing then opening cameras resulting in "Precondition" check failure.
- Fixed a
ConcurrentModificationException
that could occur when using torch and zoom APIs. - Fixed issue to now select resolutions closer to requested resolution when a mod16 dimensions size is available.
-
startFocusMetering
andcancelFocusMetering
APIs now behave as documented, with correct timing and potentially returning errors when they occur. - Fixed issue when a specific target resolution was requested with a crop aspect ratio on a device that doesn't support such sizes. Now, a non-cropped size of sufficient resolution to bound the original request will be selected when available.
Camera-Camera2 Version 1.0.0-alpha08
18 декабря 2019 г.
androidx.camera:camera-camera2:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits .
Known Issues
- Not all Camera2 capture request options work when using the Camera2 interop. If the requested option is not supported, the session fails to start and an error like this may occur:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
Исправления ошибок
- Fixed an issue in which a preview black screen occurred after rotating or switching the camera for API Levels 21 and 22.
API Changes
- Experimental : Added a camera2 interop path for extracting the Camera ID.
Camera-Core Version 1.0.0-alpha08
18 декабря 2019 г.
androidx.camera:camera-core:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits .
Known Issues
- Apps using the
PreviewView
orCameraView
may have the wrong aspect ratio preview. This happens after pause or resume on some FULL devices, such as the Pixel2.
Исправления ошибок
- Updated the documentation for
FocusMeteringAction
andCameraControl
. - Implemented
TorchControl
forenableTorch()
andgetTorchState()
.
API Changes
- Hid IntDefs and moved IntDef constants outside of the IntDef definition.
- Moved
rotationDegrees
from classOnImageCaptureCallback
toImageInfo
. - Moved
rotationDegrees
from classAnalyzer
toImageInfo
.
Camera-Camera2 Version 1.0.0-alpha07
December 4, 2019
androidx.camera:camera-camera2:1.0.0-alpha07
is released. Version 1.0.0-alpha07 of camera-camera2 contains these commits
-
Camera2Config
is now available for use with initializing and configuring a Camera2-based implementation for CameraX. More details on how to use this in initialization are in the camera-core section of the release notes. - The camera2 interop functionally is now marked as experimental and moved to a separate package,
androidx.camera.camera2.interop.
Camera-Core Version 1.0.0-alpha07
December 4, 2019
androidx.camera:camera-core:1.0.0-alpha07
is released. Version 1.0.0-alpha07 of camera-core contains these commits
Note that there are some substantial changes in this Alpha release as we prepare for Beta. We recommend you review the changes and share any feedback you may have on the CameraX Google group . For those developers using CameraX in apps that are on the Play store, we recommend waiting for the formal Beta release before upgrading the library within your applications.
API changes
Important : CameraX initialization has changed. Applications should implement
CameraXConfig.Provider
, and use the defaultCamera2Config
provided byandroidx.camera.camera2
. A typical usage is:import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
The CameraX class has been removed. The
bindToLifecycle()
,unbind()
,unbindAll()
,isBound()
, andhasCamera()
previously provided by the CameraX class call are now available via theProcessCameraProvider
.A per-process instance of
ProcessCameraProvider
is obtained asynchronously using the static methodProcessCameraProvider.getInstance()
, which returns a listenable future, which provides theProcessCameraProvider
on completion. Here it is shown inonCreate()
for a typical usage. You can place calls togetInstance()
later in the activity's lifecycle to defer initialization latency to a later time (such as when a user action opens a camera UI).import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }
A listener can be added to the
ListenableFuture
returned bygetInstance()
. This ensures the camera provider can be retrieved from theFuture
without blocking onFuture.get()
cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
Camera selection is now done by a camera selector, instead of per-use case
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
CameraProvider.bindToLifecycle
is given the lifecycle owner, the camera selector, and use cases, which are then bound to the given lifecycle owner and run for the selected camera.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
Use case “Config” classes are removed. Instead, build use cases directly, setting options on each use case builder. Например:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
The Preview use case has been updated to accept a surface created and managed by the application to ensure Android best practices. It is highly recommended to use the
PreviewView
view class provided in the camera-view package.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
See documentation for attaching an app-managed surface. In these cases the app manages the lifecycle of the surface.
Important : The
ImageAnalysis
Analyzer method implementation must callimage.close()
on received images when finished using them. Otherwise, new images may not be received or the camera may stall, depending on back pressure setting. Refer to the reference docs for details.ImageAnalysis ImageReaderMode
is now changed to a backpressure strategyintdef
.ImageProxy.getImage()
is marked as experimental. Applications should annotate usage for example via@androidx.camera.core.ExperimentalGetImage
The
UIThread
annotation requirement for theAnalyzer
has been removed.The
ImageAnalysis.clearAnalyzer()
function is added for removing an analyzer.Listeners with more than 1 method have been renamed to Callback:
-
ImageCapture.OnImageCapturedListener
is nowImageCapture.OnImageCapturedCallback
-
ImageCapture.OnImageSavedListener
is nowImageCapture.OnImageSavedCallback
-
VideoCapture.OnVideoSavedListener
is nowVideoCapture.OnVideoSavedCallback
-
Enums have changed to IntDef
Zoom controls have been added:
-
CameraControl.setLinearZoom()
-
CameraControl.setZoomRatio()
-
CameraInfo.getLinearZoom()
-
CameraInfo.getMaxZoomRatio()
-
CameraInfo.getZoomRatio()
-
CameraInfo.hasFlashUnit()
is added to determine if flash/torch hardware is present.CameraInfo.isFlashAvailable()
has been removed. Torch overrides flash functionality. More detail is included in the reference documentation .ImageCapture.Metadata
fields are replaced by get/set/is accessors.startFocusMetering
andcancelFocusMetering
now returnListenableFutures
which represent the asynchronous operation of the call.MeteringPoints
are now functioning as handles to metering actions, and are produced by factories. Apps should use the existing factories rather than custom factories.
Fixed issues
- Fixed issue when taking a picture on resuming (after a previous pause had take pictures pending completion).
- Known Issue:
CameraControl.enableTorch()
is functional but the returnedListenableFuture<Void>
is always an immediatecomplete(success)
future, even if there is no flash unit. Future versions will fix this to the final behavior: When there is no flash unit,enableTorch(true)
fails immediately (won't send request toCaptureSession
), andTorchState
remain Off. - Known Issue:
startFocusAndMetering
andcancelFocusAndMetering
start and cancel focus metering, but return an immediatelycompleted (success)
future not representing the documented behavior. TheFocusMeteringResult
fromListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
is a fake result whichisFocusSuccessful()
and is always "false," differing from intended, documented behavior. - Known Issue: A metering point factory for use with
PreviewView
touch events is being developed. For now, apps connecting custom managed surfaces can use the existing metering point factories, and otherwise no touch focus functionality is available forPreviewView
.
Camera-Camera2 and Camera-Core Version 1.0.0-alpha06
October 9, 2019
androidx.camera:camera-camera2:1.0.0-alpha06
and androidx.camera:camera-core:1.0.0-alpha06
are released. These are the commits included in camera-camera2:1.0.0-alpha06
and these are the commits included in camera-core:1.0.0-alpha06
.
Новые возможности
Changes to setting aspect ratios:
-
setTargetAspectRatioMode()
was added and accepts an enum argument. This sets the Aspect Ratio Mode with optionsRATIO_4_3
orRATIO_16_9
instead of an arbitrary aspect ratio. This closer reflects the fact that only certain aspect ratios are provided from the camera, rather than any arbitrary ratio.- Currently, the only available ratios are 16:9 and 4:3. In the case of 1:1, only certain devices have this available from the camera, and then only at limited resolutions. Applications designing a 1:1 interface or processing should use the more flexible 16:9 or 4:3 choices and crop the display or process a subregion.
- These aspect ratios are oriented to use the maximum sensor area.
-
getTargetAspectRatio()
was added to use case config APIs, returning the aspect ratio the use case output is targeted for. - The method
setTargetAspectRatio(Rational aspectRatio)
has been changed for ImageCapture tosetTargetAspectRatioCustom(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 agetCameraInfo
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()
orsetTargetAspectRatio()
. 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.
- In general it's recommended to use
- 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
September 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 renamedImageCapture.ImageCaptureError
-
VideoCapture.UseCaseError
is renamedVideoCapture.VideoCaptureError
-
Added
CameraControl
API w/Tap-to-Focus APIsAdded API to get a
CameraControl
from CameraX for a camera, selected by lens facing:CameraX.getCameraControl(LensFacing lensFacing)
Added
MeteringPointFactory
,MeteringPoint
,MeteringMode
, andFocusMeteringAction
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. This may be due to:
- 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
orsetTargetResolution
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 injava.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
July 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 Changes
- 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
Extensions
- 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. Version 1.0.0-alpha02 contains these commits .
Исправления ошибок
- Fixed div by zero issue when using emulator
- Fixed NullPointerException/Surface Abandoned error occurring on some devices when quickly taking photos while unbinding and rebinding use cases rapidly.
- Fixed internal issue to ensure capture request updates affect all surfaces consistently
- Stability improvements when restarting use cases in new app instances
- Internal architecture changes to prepare for supporting executors in the API
- Additional Javadoc clarifications on CameraX class and lifecycle management
- Added instrumented testing for Antelope performance test app
- Remove need for '-keepattributes Signature' in app Proguard config
Camera-Camera2 and Camera-Core 1.0.0-alpha01
May 7, 2019
androidx.camera:camera-core:1.0.0-alpha01
and androidx.camera:camera-camera2:1.0.0-alpha01
are released. Version 1.0.0-alpha01 contains these commits .
Camera-Lifecycle Version 1.0.0-beta11
October 14, 2020
androidx.camera:camera-lifecycle:1.0.0-beta11
is released. Version 1.0.0-beta11 contains these commits.
Исправления ошибок
-
<UseCase>.getTargetRotation()
will returnSurface.ROTATION_0
if called before being attached to a Camera instance unless a targetRotation has been set on the Builder or UseCase. ( I80fcd )
Camera-Lifecycle Version 1.0.0-beta10
September 23, 2020
androidx.camera:camera-lifecycle:1.0.0-beta10
is released. Version 1.0.0-beta10 contains these commits.
Исправления ошибок
- Release to support Camera-Core 1.0.0-beta10
Camera-Lifecycle Version 1.0.0-beta09
September 16, 2020
androidx.camera:camera-lifecycle:1.0.0-beta09
is released. Version 1.0.0-beta09 contains these commits.
Camera-Lifecycle Version 1.0.0-beta08
August 19, 2020
androidx.camera:camera-lifecycle:1.0.0-beta08
is released. Version 1.0.0-beta08 contains these commits.
Исправления ошибок
- Initialization should no longer crash when using a Context that does not return an Application object from
Context.getApplicationContext()
. ( I3d3c9 , b/160817073 )
Camera-Lifecycle Version 1.0.0-beta07
July 22, 2020
androidx.camera:camera-lifecycle:1.0.0-beta07
is released. Version 1.0.0-beta07 contains these commits.
Camera-Lifecycle Version 1.0.0-beta06
24 июня 2020 г.
androidx.camera:camera-lifecycle:1.0.0-beta06
is released. Version 1.0.0-beta06 contains these commits.
API Changes
- CameraX can now be configured with ProcessCameraProvider#configureInstance() before calling ProcessCameraProvider#getInstance(). This allows for customization of the CameraXConfig without requiring implementing CameraXConfig.Provider in the app's Application class. ( Ia1a8d )
Camera-Lifecycle Version 1.0.0-beta05
June 10, 2020
androidx.camera:camera-lifecycle:1.0.0-beta05
is released. Version 1.0.0-beta05 contains these commits.
Исправления ошибок
- Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An
InitializationException
contains aCameraUnavailableException
will be set to theListenableFuture
of the intialization result instead of crashing the application. ( I9909a , b/149413835 )
Camera-Lifecycle Version 1.0.0-beta04
May 27, 2020
androidx.camera:camera-lifecycle:1.0.0-beta04
is released. Version 1.0.0-beta04 contains these commits.
Camera-Lifecycle Version 1.0.0-beta03
April 15, 2020
androidx.camera:camera-lifecycle:1.0.0-beta03
is released. Version 1.0.0-beta03 contains these commits.
Исправления ошибок
- Fixed regression from beta03 where calling
bindToLifecycle()
with zeroUseCase
s would cause a thrown exception. This prevented retrieval of aCamera
without binding aUseCase
. - Fixes to support the release of
camera-core
Camera-Lifecycle Version 1.0.0-beta01
February 26, 2020
androidx.camera:camera-lifecycle:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
Исправления ошибок
- Fixed documentation to note that when obtaining a
ProcessCameraProvider
during initialization, a default configuration is used and that extendingApplication
is optional. ( I5e395 )
Camera-Lifecycle Version 1.0.0-beta02
April 1, 2020
androidx.camera:camera-lifecycle:1.0.0-beta02
is released. Version 1.0.0-beta02 contains these commits.
Исправления ошибок
- Updated to support the bug fixes in the
camera-camera2:1.0.0-beta02
andcamera-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 Changes
- Added
@MainThread
annotation to BindToLifecycle, unbind and unbindAll methods. ( I990d2 )
Camera-Lifecycle Version 1.0.0-alpha03
January 22, 2020
androidx.camera:camera-lifecycle:1.0.0-alpha03
is released. Version 1.0.0-alpha03 contains these commits .
Обновления
- Various fixes and updates to support Camera Core & Camera2 changes.
Camera-Lifecycle Version 1.0.0-alpha02
18 декабря 2019 г.
androidx.camera:camera-lifecycle:1.0.0-alpha02
is released. Version 1.0.0-alpha02 contains these commits .
Dependency changes
- Updated to use
androidx.camera:camera-core:1.0.0-alpha08
.
Camera-Lifecycle Version 1.0.0-alpha01
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 calledProcessCameraProvider
which provides many of the functions of the previous CameraX class in core and is obtained via agetInstance()
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 Changes
- Removed unnecessary
@RequiresApi(21)
annotations from the inner classes/interfaces. ( I8e286 , b/204917951 ) - Update api files for camera-extensions artifact. ( If683a , b/161377155 )
Исправления ошибок
- Disallow the app to enable extension modes when binding
VideoCapture
. CameraX Extensions only supportImageCapture
andPreview
. TheVideoCapture
can't be supported yet. If the app bindsVideoCapture
and enables any extension mode, anIllegalArgumentException
will be thrown. ( I0d87b ) -
CameraSelector#filter
no longer throws anIllegalArgumentException
when the result set is empty. ( I27804 ) - Renamed
ExtensionsManager#getInstance
API asgetInstanceAsync
because it returnsListenableFuture
. 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 theImageCapture
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 ofExtensionsManager
functions to thegetInstance()
API. So that the users don't need to input theCameraProvider
parameter each time when calling theExtensionsManager
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 Changes
- Added CameraSelector#filter to the public API to filter a list of CameraInfos based on a CameraSelector. ( I105d0 )
Исправления ошибок
- Fixed a crash when switching extensions mode quickly on certain devices. ( Iebbef )
Version 1.0.0-alpha30
October 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 Changes
- Added @RequiresApi(21) annotation to all CameraX classes and dropped minSdkVersion from AndroidManifest.xml. This will allow camera-core to be easily integrated into applications that have a minSdkVersion less than 21, but want to conditionally use code paths that rely on API 21 and higher. For any application with minSdkVersion 21 or higher, this change requires no action. ( Ie7f2e , b/200599470 )
Исправления ошибок
- Fixed the AbstractMethodError issue which happens when proguard is enabled. ( Iae468 , b/201177844 )
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 Changes
- ExperimentalUseCaseGroup annotation is removed now that the APIs are no longer experimental. ( I01ef5 )
- remove
RotationProvider#removeAllListeners()
. Please useRotationProvider#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
August 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 Changes
- 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 Changes
- Promoted the viewport API out of experimental. Remove the experimental annotation of the API. ( I717ea )
- Renamed
CoordinateTransform#getTransform
toCoordinateTransform#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 Changes
- 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
June 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 Changes
- 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 byCameraController
. Please see the migration guide for how to migrate.: ( Id5005 )
Исправления ошибок
- Replaced
ExperimentalUseCaseGroupLifecycle
withExperimentalUseCaseGroup
. ( I3b2ef , b/159033688 )
Version 1.0.0-alpha24
April 21, 2021
androidx.camera:camera-extensions:1.0.0-alpha24
and androidx.camera:camera-view:1.0.0-alpha24
are released. Version 1.0.0-alpha24 contains these commits.
Исправления ошибок
- Replaced annotation
@Experimental
with@RequiresOptIn
to experimental APIs. For calling experimental APIs, useandroidx.annotation.OptIn
instead of deprecatedandroidx.annotation.experimental.UseExperimental
. ( Iff226 ) - Fixed the PreviewView stretched issue on Samsung J5 Prime ( Ib10b6 )
Camera Extensions & View Version 1.0.0-alpha23
March 24, 2021
androidx.camera:camera-extensions:1.0.0-alpha23
and androidx.camera:camera-view:1.0.0-alpha23
are released. Version 1.0.0-alpha23 contains these commits.
API Changes
- CameraView is being deprecated. Please use
LifecycleCameraController
instead. See the migration guide ( Idac2c ) - Added FloatRange annotation to setLinearZoom() ( I69971 )
Исправления ошибок
- Pinned camera-view dependencies to rely on 1.0.0 artifacts. Depending on camera-view will not longer cause gradle's dependency resolution to automatically upgrade camera-core, camera-camera2 and camera-lifecycle to the latest 1.1.0 artifacts, though camera-view is still compatible with those artifacts if they are explicitly set to use 1.1.0. ( Ic8fa1 , b/181599852 )
- Fixed Samsung A3 stretched preview in PreviewView. ( Iacb30 , b/180121821 )
- Fixed the issue where if camera selector cannot be set before camera is initialized. ( Ic8bd0 )
Camera Extensions & View Version 1.0.0-alpha22
24 февраля 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha22
and androidx.camera:camera-view:1.0.0-alpha22
are released. Version 1.0.0-alpha22 contains these commits.
API Changes
- add a CameraInfo getter to CameraController. ( Ib8138 , b/178251727 )
Исправления ошибок
- Fixed ExtensionsErrorListener to report errors when only Preview or ImageCapture is bound. ( I5ae39 )
Camera Extensions & View Version 1.0.0-alpha21
27 января 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha21
and androidx.camera:camera-view:1.0.0-alpha21
are released. Version 1.0.0-alpha21 contains these commits.
Releasing to support other camera library artifacts.
Camera Extensions & View Version 1.0.0-alpha20
December 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
November 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 withExperimentalVideo
as themarkerClass
. ( I6d729 )
Camera-Extensions Version 1.0.0-alpha18
October 14, 2020
androidx.camera:camera-extensions:1.0.0-alpha18
is released. Version 1.0.0-alpha18 contains these commits.
Исправления ошибок
- Improved the latency of CameraX initialization and bindToLifecycle ( I61dc5 )
-
<UseCase>.getTargetRotation()
will returnSurface.ROTATION_0
if called before being attached to a Camera instance unless a targetRotation has been set on the Builder or UseCase. ( I80fcd )
Camera-View Version 1.0.0-alpha18
October 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
September 23, 2020
androidx.camera:camera-extensions:1.0.0-alpha17
is released. Version 1.0.0-alpha17 contains these commits.
Исправления ошибок
- Release to support Camera-Core 1.0.0-beta10
Camera-View Version 1.0.0-alpha17
September 23, 2020
androidx.camera:camera-view:1.0.0-alpha17
is released. Version 1.0.0-alpha17 contains these commits.
Исправления ошибок
- Release to support Camera-Core 1.0.0-beta10
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 anExtensions
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 Changes
- Removed
PreviewView#setDeviceRotationForRemoteDisplayMode()
andPreviewView#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 withPreview#setTargetRotation()
and the newly addedPreviewView#getViewPort(targetRotation)
. ( Ib62cc ) - Renamed
createSurfaceProvider()
togetSurfaceProvider()
. 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 )
Known Issues
- 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
August 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
August 19, 2020
androidx.camera:camera-view:1.0.0-alpha15
is released. Version 1.0.0-alpha15 contains these commits.
Исправления ошибок
-
DisplayOrientedMeteringPointFactory
takes in aCameraInfo
instance instead of aCameraSelector
so there is a direct mapping to which Camera the factory will be generating points for. All classes which useDisplayOrientedMeteringPointFactory
also take in aCameraInfo
instance instead ofCameraSelector
. ( I400c1 ) - Removed
TextureViewMeteringPointFactory
.PreviewView
provides a public API (createMeteringPointFactory()
) to create a metering point factory regardless of whether it's using aTextureView
orSurfaceView
. ( Ide693 ) - rename PreviewView's
SURFACE_VIEW
/TEXTURE_VIEW
implementation modes toPERFORMANCE
/COMPATIBLE
.PERFORMANCE
is the oldSURFACE_VIEW
mode, andCOMPATIBLE
is the oldTEXTURE_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
July 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
July 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. Version 1.0.0-alpha12 contains these commits.
Исправления ошибок
- Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An
InitializationException
contains aCameraUnavailableException
will be set to theListenableFuture
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. Version 1.0.0-alpha12 contains these commits.
Исправления ошибок
- Add
PreviewView#getBitmap()
API which returns a Bitmap representation of the content displayed on the preview surface. ( I9b500 , b/157659818 )
Camera-Extensions Version 1.0.0-alpha11
May 27, 2020
androidx.camera:camera-extensions:1.0.0-alpha11
is released. Version 1.0.0-alpha11 contains these commits.
Camera-View Version 1.0.0-alpha12
June 10, 2020
androidx.camera:camera-view:1.0.0-alpha12
is released. Version 1.0.0-alpha12 contains these commits.
Новые возможности
API Changes
Исправления ошибок
- 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
May 27, 2020
androidx.camera:camera-view:1.0.0-alpha11
is released. Version 1.0.0-alpha11 contains these commits.
API Changes
- 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 useImplementationMode#TEXTURE_VIEW
mode when the android version is 7.0 or below. ( I83e30 , b/155085307 ) - Removed the
CameraInfo
parameter fromPreviewView#createSurfaceProvider()
,PreviewView
now internally retrieves it from theSurfaceRequest
. ( 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 outPreview
fragment and then swiped back in ViewPager2. Also fixed the issue whenremoveView(previewview)
and thenaddView(previewView)
. ( Iab555 , b/149877652 , b/147354615 ) - Update the
CameraView#takePicture()
API to allow saving images toUri
andOutputStream
. Update the test app to useUri
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, usePreviewView.ScaleType
to set/get a scale type with CameraView. ( Ia8974 , b/153014831 ) - Give
PreviewView
a background color by default if it doesn't already have one. This prevents content behind it from being visible before the preview stream starts. ( I09fad )
Camera-Extensions Version 1.0.0-alpha10
April 15, 2020
androidx.camera:camera-extensions:1.0.0-alpha10
is released. Version 1.0.0-alpha10 contains these commits.
Исправления ошибок
- Fixes to support the release of Camera-Core
Camera-View Version 1.0.0-alpha10
April 15, 2020
androidx.camera:camera-view:1.0.0-alpha010
is released. Version 1.0.0-alpha010 contains these commits.
Исправления ошибок
- Fixes a previous known issue where
PreviewView
's surfaceView implementation wasn't working well on certain devices, and would cause the app to crash after resuming preview. ( I5ed6b )
Camera-Extensions Version 1.0.0-alpha09
April 1, 2020
androidx.camera:camera-extensions:1.0.0-alpha09
is released. Version 1.0.0-alpha09 contains these commits.
Исправления ошибок
- Updated to support the bug fixes in the
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
, andcamera-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. Version 1.0.0-alpha09 contains these commits.
Known Issues
- Using
ImplementationMode.SURFACE_VIEW
withPreviewView
may not work well on certain devices, this is because theSurfaceView
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 theSurfaceView
's surface is valid again. For now, you should useImplementationMode.TEXTURE_VIEW
.
API Changes
- Renamed
PreviewView.setImplementationMode()
toPreviewView.setPreferredImplementationMode()
. - Renamed
PreviewView.getImplementationMode()
toPreviewView.getPreferredImplementationMode()
. - Replaced
PreviewView.getSurfaceProvider()
byPreviewView.createSurfaceProvider(CameraInfo)
, which takes a nullableCameraInfo
instance used to optimize preview by usingImplementationMode.SURFACE_VIEW
whenever possible. If a null instance is passed, or if you set the preferred implementation mode toImplementationMode.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 toPreviewView.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 inPreviewView.ScaleType
, and defaults toPreviewView.ScaleType.FILL_CENTER
.Added
PreviewView.getScaleType()
.Removed support for setting the implementation mode for
PreviewView
in a XML layout using theimplementationMode
attribute.Add
createMeteringPointFactory()
API to PreviewView to support converting (x, y) inPreviewView
toMeteringPoint
. ( Ib36d7 )
Исправления ошибок
- Fixed cases where an incorrect preview is displayed after
PreviewView
's size changes. ( I71101 )
Camera-Extensions Version 1.0.0-alpha08
February 26, 2020
androidx.camera:camera-extensions:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits.
Camera-View Version 1.0.0-alpha08
February 26, 2020
androidx.camera:camera-view:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits.
Исправления ошибок
- Replaced the
ListenableFuture
onSurfaceRequest.provideSurface()
with anExecutor
andCallback
. This simplifies the API by no longer requiring handling of exceptions onprovideSurface()
and enforces that theprovideSurface()
callback cannot be cancelled. This is to prevent crashes on older devices caused by prematurely releasing surfaces. TheSurfaceRequest.Result
object is now used for tracking how aSurfaceRequest
uses the providedSurface
. ( I7854b ) - Renamed
SurfaceRequest.setSurface(Surface)
toSurfaceRequest.provideSurface(Surface)
andSurfaceRequest.setWillNotComplete()
toSurfaceRequest.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()
andImageCapture.OnImageCapturedCallback.onError()
have now been replaced by a single argumentImageCaptureException
, 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 Changes
-
PreviewView
'sTextureView
implementation now sets theTextureView
's size to the camera sensor output size before scaling it to fill its parentPreviewView
. If you want the camera preview to fill an entire part of the UI (the whole screen for instance), you should not set thePreviewView
'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 thePreviewView
(if the camera sensor output size is smaller). Instead, you should set thePreviewView
as big as its parent (by using the attribute "match_parent
" for example). ( 1204869 )
Исправления ошибок
- Updated
ImageCapture
to allow saving images toUri
andOutputStream
. Combined overloadedtakePicture
methods into one. Updated test app to useUri
as the canonical example. ( Ia3bec ) -
Preview.PreviewSurfaceProvider
has been renamed toPreview.SurfaceProvider
.SurfaceProvider
s no longer require developers to create their ownListenableFuture
, and providing aSurface
is now done through a newSurfaceRequest
object. ThePreview.getPreviewSurfaceProvider()
method has been removed due to its potential for misuse whenPreview
is paired with other classes such asPreviewView
. ( I20105 ) - The arguments that were previously passed in
ImageCapture.OnImageSavedCallback.onError()
andImageCapture.OnImageCapturedCallback.onError()
have now been replaced by a single argumentImageCaptureException
, 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()
, andgetLinearZoom()
methods ofCameraInfo
merging intogetZoomState()
which returns aZoomState
instance. ( Ib19fe )
Camera-Extensions Version 1.0.0-alpha06
January 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
January 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
18 декабря 2019 г.
androidx.camera:camera-extensions:1.0.0-alpha05
is released. Version 1.0.0-alpha05 contains these commits .
Исправления ошибок
- Updated to match the internal Camera Core APIs.
Camera-View Version 1.0.0-alpha05
18 декабря 2019 г.
androidx.camera:camera-view:1.0.0-alpha05
is released. Version 1.0.0-alpha05 contains these commits .
Known Issues
- 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 sameCameraSelector
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 aPreviewSurfaceProvider
to easily connect a Preview use casepreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
“
ZoomLevel
” is now “ZoomRatio
” in API-namingSome 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
September 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.