CameraX
В этой таблице перечислены все артефакты в группе androidx.camera
.
Артефакт | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
---|---|---|---|---|
камера-камера2 | 1.4.2 | - | 1.5.0-бета02 | - |
камера-ядро | 1.4.2 | - | 1.5.0-бета02 | - |
камера-композиция | - | - | 1.5.0-бета02 | - |
эффекты камеры | 1.4.2 | - | 1.5.0-бета02 | - |
расширения камеры | 1.4.2 | - | 1.5.0-бета02 | - |
запрос на комбинацию функций камеры | - | - | - | 1.5.0-альфа06 |
камера-функция-комбинация-запрос-воспроизведение-сервисы | - | - | - | 1.5.0-альфа06 |
жизненный цикл камеры | 1.4.2 | - | 1.5.0-бета02 | - |
камера-mlkit-vision | 1.4.2 | - | 1.5.0-бета02 | - |
вид с камеры | 1.4.2 | - | 1.5.0-бета02 | - |
камера-видоискатель | - | - | 1.3.0-бета02 | 1.4.0-альфа07 |
камера-видео | 1.4.2 | - | 1.5.0-бета02 | - |
Тестирование устройств
CameraX протестирован на многих устройствах в нашей лаборатории. Список устройств, которые в настоящее время находятся в лаборатории, можно найти на странице «Устройства CameraX, протестированные в лаборатории» .
Объявление зависимостей
Чтобы добавить зависимость от CameraX, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle
вашего приложения или модуля:
классный
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-beta02" // 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-beta02" // 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-beta02" // 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-beta02" // 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-beta02
16 июля 2025 г.
Выпущена версия androidx.camera:camera-*:1.5.0-beta02
. Версия 1.5.0-beta02 содержит следующие изменения .
Изменения API
- Добавлены новые API для более интуитивного и точного задания или запроса групп высококачественных функций, поскольку эти функции могут не поддерживаться в виде комбинации на всех устройствах.
SessionConfig
теперь содержит новые API для обозначения группы функций как обязательной или предпочтительной. APICameraInfo.isFeatureGroupSupported
позволяет узнать, поддерживается ли группа функций, до привязкиSessionConfig
.SessionConfig
также позволяет настроить прослушиватель, чтобы определить, какие функции будут выбраны в конечном итоге при привязке конфигурации сеанса. ( Ie4d60 ) - Добавлены новые API
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)
иCameraInfo.getSupportedFrameRateRanges(SessionConfig)
, позволяющие разработчикам запрашивать гарантированные поддерживаемые частоты кадров, ограниченные определеннымSessionConfig
, а затем применять частоту кадров кSessionConfig
. ( Ieacf7 ) - Представлен новый API
SessionConfig
, включающий улучшенную абстракцию для настройки вариантов использования, параметров сеанса,CameraEffect
,ViewPort
и т. д. ПривязкаSessionConfig
к LifecycleOwner открывает сеанс камеры, настраивает его с использованием указанных вариантов использования и параметров сеанса, а также применяет назначенныеCameraEffect
иViewPort
. При обновлении новогоSessionConfig
к тому жеLifecycleOwner
можно просто привязать новыйSessionconfig
без необходимости предварительного вызова unbind илиunbindAll
. ( Iedfc3 ) - Добавлены новые API для записи высокоскоростного/замедленного видео. Подробнее см. в разделе API
HighSpeedVideoSessionConfig
. ( Ia16f3 )
Исправления ошибок
- Исправлен API
ImageCaptureCapabilities#getSupportedOutputFormats()
сообщающий о поддержке форматов RAW на некоторых устройствах, которые на самом деле не имеют возможности обработки RAW. ( Ibcadb ) - Исправлена утечка памяти, возникающая при использовании
PreviewView
, включенииCameraEffect
или связывании 4 вариантов использования (StreamSharing) ( I87468 ). - Исправлен сбой записи видео из-за
AssertionError
: Недопустимое внутреннее состояние звука: IDLING. ( I38d4b , b/414259796 ) - Исправлена проблема, из-за которой при запуске приложения на внешнем дисплее и использовании устройства в альбомной ориентации предварительный просмотр в
PreviewView
становился растянутым или смещенным вбок ( Ia917a ). - Исправлена ошибка, из-за которой настройки стабилизации предварительного просмотра применялись неправильно, когда поток камеры распределялся между предварительным просмотром и видеозахватом ( I5430e ).
-
CameraXViewfinder
теперь корректно обрабатывает замену поверхности в базовомViewfinder
. Это касается таких ситуаций, как выходEXTERNAL
видоискателя с API уровня 28 или ниже за пределы экрана или еслиCameraXViewfinder
(с любымImplementationMode
) является частьюmoveableContentOf()
. В случаях, когда базовыйViewfinderSurfaceSession
невозможно поддерживать активным,CameraXViewfinder
аннулирует текущий CameraXSurfaceRequest
, позволяя CameraX использовать новуюSurface
. ( I79432 ) - Исправлена ошибка в Android 10/11, из-за которой
EXTERNAL
CameraXViewfinder
мог выглядеть растянутым или некорректным из-за слишком раннего применения операций преобразования (например, масштабирования или переноса). Теперь система ожидает создания Surface перед применением этих преобразований на этапе макета, обеспечивая корректный вывод. ( Icc77c ) - Composable
CameraXViewfinder
теперь корректно работает сPager
в Compose. Это изменение обеспечивает успешный сброс Composable путём реализации обратного вызоваonReset
вAndroidView
, поддерживающего какEMBEDDED
, так иEXTERNAL
реализации. ( I0d9be ) - Исправлена утечка владельца жизненного цикла, которая происходила при отмене привязки вариантов использования от владельца жизненного цикла без отключения поставщика камеры.
Версия 1.5.0-beta01
7 мая 2025 г.
Выпущена версия androidx.camera:camera-*:1.5.0-beta01
. Версия 1.5.0-beta01 содержит следующие изменения .
Изменения API
- Для проектов, выпущенных с использованием Kotlin 2.0, требуется использование KGP 2.0.0 или более поздней версии ( Idb6b5 ).
-
ContentScale
и Alignment теперь можно использовать в видоискателе для масштабирования и размещения отображаемой поверхности в ее контейнере, аналогично тому, как ведет себяandroidx.compose.foundation.Image
. ( Ibcea3 ) -
TransformationInfo
теперь имеет значения по умолчанию для всех аргументов. Это позволит создавать видоискатели безTransformationInfo
, которые по умолчанию будут иметь поворот источника на 0, без зеркального отражения источника и без рамки кадрирования. ( I2b1b2 ) - Добавлен
LifecycleCameraProvider
— поставщик камеры, который можно создавать с различными конфигурациями для таких функций, как доступ к камере виртуального устройства путем настройки с помощью настраиваемого контекста. ( Ia2992 )
Исправления ошибок
- Исправлена проблема зависания предварительного просмотра при использовании
ImageAnalysis
с другим потоком, использующимTEMPLATE_RECORD
на устройстве Samsung SM-E556B. ( Ic0e62 , b/409478042 ) - Исправлена проблема зависания предварительного просмотра при использовании
ImageAnalysis
с другим потоком, использующимTEMPLATE_RECORD
на устройстве Samsung SM-M556B. ( Ic1a6a , b/395822788 ) - Исправлена проблема
AssertError
в ночном режиме расширений на устройствах Pixel Android 15 при выполнении операций, связанных с масштабированием. ( I27a5d , b/401460276 ) - Исправлена проблема с неверными координатами ограничивающей рамки в ML Kit Analyzer при использовании
CameraController
. ( Iae91b , b/409808510 )
Версия 1.5.0-альфа06
26 февраля 2025 г.
Выпущена версия androidx.camera:camera-*:1.5.0-alpha06
. Версия 1.5.0-alpha06 содержит следующие изменения .
Изменения API
- Добавлены
CameraInfo.getTorchStrengthLevel
,CameraInfo.getMaxTorchStrengthLevel
иCameraControl.setTorchStrengthLevel
для настройки яркости фонарика ( I00878 ). - Добавлен новый API
CameraController#setTapToFocusAutoCancelDuration
, позволяющий пользователям управлять поведением автоматической отмены событий фокусировки при касанииPreviewView
. По умолчанию CameraX отменяет события фокусировки через 5 секунд (т.е. фокус камеры сбрасывается), и этот API позволяет изменять эту длительность или полностью отключить автоматическую отмену. ( Icf59a ) -
FLASH_STATE_READY
переименован вNOT_FIRED
, а другие имена константFlashState
упрощены для лучшей читаемости. ( I8771d ) - Открыт API для усиления съёмки при слабом освещении. Устройства под управлением Android 15 и выше поддерживают усиление съёмки при слабом освещении. Эта функция автоматически регулирует яркость потоков предварительного просмотра, видео или анализа изображений в условиях слабого освещения. Приложения могут использовать новый API для: 1. Использовать
CameraInfo#isLowLightBoostSupported
для проверки доступности функции. 2. ИспользоватьCameraControl#enableLowLightBoostAsync
для включения режима, если устройства его поддерживают. 3. ИспользоватьCameraInfo#getLowLightBoostState
для мониторинга состояния усиления съёмки при слабом освещении. ( I937ed ) - Добавить классы совместимости, чтобы ускорить запросы, не относящиеся к camera2, в запросе комбинации функций камеры. ( Ie97ee )
- Для событий касания для фокусировки
CameraController
новый APIgetTapToFocusInfoState()
теперь также предоставляет соответствующую позицию касания, возвращаяLiveData
классаTapToFocusInfo
, в то время как предыдущий APILiveData<Integer>
возвращающийgetTapToFocusState()
устарел в пользу нового API. ( I238d2 )
Исправления ошибок
- Исправлена ошибка, из-за которой стабилизация предварительного просмотра не применялась, если стабилизация предварительного просмотра включена с помощью расширений. ( I24ad7 )
- Исправлена ошибка, из-за которой событие состояния фокусировки
CameraController
не сбрасывалось доTAP_TO_FOCUS_NOT_STARTED
, когда CameraX автоматически отменяло событие фокусировки, что по умолчанию происходило через 5 секунд. ( I31954 ) - Исправлено зависание предварительного просмотра при использовании нулевой задержки затвора (ZSL) после нескольких снимков из-за неиспользованных ресурсов изображения. ( Ic3c2a )
- Исправлены проблемы, из-за которых на некоторых устройствах видео UHD имели красный оттенок, если конвейер использовал
OpenGL
. ( Idcedc )
Версия 1.5.0-альфа05
15 января 2025 г.
Выпущена версия androidx.camera:camera-*:1.5.0-alpha05
. Версия 1.5.0-alpha05 содержит следующие изменения .
Изменения API
- Добавьте
VideoCapture.getSelectedQuality()
, чтобы узнать выбранное качество на основеQualitySelector
. ( I70508 , b/204288986 ) - При вызове захвата изображения с помощью API
ImageCapture.OnImageCapturedCallback
теперь можно использовать ImageInfo в возвращаемомImageProxy
, чтобы узнать, была ли запущена вспышка с помощью нового APIImageInfo.getFlashState()
. ( Id2c61 , b/380527406 ) - Добавлена поддержка выходного формата
OUTPUT_IMAGE_FORMAT_NV21
дляImageAnalysis
. ( I484ab ) - Удалить экспериментальную аннотацию артефакта
featurecombinationquery
( I4427f ) - Настройте диапазон коэффициента масштабирования, разрешенный для
CameraControl
с помощью характеристик, специфичных для расширений, когда включен режим расширений. ( I85af1 )
Исправления ошибок
- Обновление
compileSdk
до версии 35 для использования API, связанного с Android 15. Приложениям, использующим библиотеки CameraX, также потребуется обновить настройки конфигурацииcompileSdk
. ( Ic80cd ) - Эта библиотека теперь использует аннотации JSpecify, определяющие значение null , которые являются типовыми. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования:
-Xjspecify-annotations=strict
(это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( Idc6c6 , b/326456246 )
Версия 1.5.0-альфа04
11 декабря 2024 г.
Выпущена версия androidx.camera:camera-*:1.5.0-alpha04
. Версия 1.5.0-alpha04 содержит следующие изменения .
Изменения API
- Представлены
ImageCapture.Builder#setOutputFormat
иImageCaptureCapabilities#getSupportedOutputFormats
как стабильные API ( Ieb04a ) - Добавьте
VideoCapture.getResolutionInfo()
для получения информации о разрешении, когдаVideoCapture
привязан к жизненному циклу. ( Icb478 ) -
PreviewView.getScreenFlash
иPreviewView.setScreenFlashOverlayColor
представлены как стабильные API. ( I74fee )
Исправления ошибок
- Исправлена проблема сбоя захвата на устройстве Vivo 1610 при съемке со вспышкой в темноте. ( I366f4 )
- Исправлено неожиданное отключение фонарика после захвата изображения в Redmi Note 6 Pro. ( I2e0e8 , b/377144569 )
- Исправлена ошибка на устройствах Pixel Android 15, из-за которой ночной режим в расширениях не позволял делать снимки, пока камера не фокусировалась на близлежащем объекте. ( I228d4 )
- Исправлена проблема со сбоем захвата неподвижных изображений при включенных расширениях и связанном приложении
VideoCapture
. ( I5c745 ) - Включена поддержка захвата неподвижных изображений
UltraHDR
для расширений, если устройство поддерживает ее. ( I48300 ) - Исправлена проблема синхронизации вспышки при съемке с помощью
CameraEffect
, нацеленной на захват изображений на устройствах TCL. ( I7698c )
Версия 1.5.0-альфа03
30 октября 2024 г.
Выпущена версия androidx.camera:camera-*:1.5.0-alpha03
. Версия 1.5.0-alpha03 содержит следующие изменения .
Изменения API
- Добавлены API выходных форматов для
ImageCapture
RAW и RAW + JPEG. Проверка совместимости устройства реализована в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 , b/345993685 ) - Исправлена ошибка, из-за которой событие
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
не срабатывало при записи видео и недостатке места на диске. ( I35779 , b/356399842 )
Версия 1.5.0-альфа02
2 октября 2024 г.
Выпущена версия androidx.camera:camera-*:1.5.0-alpha02
. Версия 1.5.0-alpha02 содержит следующие изменения .
Новые функции
- Новые API для запроса функций камеры, поддерживаемых устройством. Например, проверка возможности одновременного включения HDR и 60 кадров в секунду. Включает два артефакта: camera-feature-combination-query и camera-feature-combination-query-play-services. Это совместимая версия API
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
для camera2 с дополнительными данными, предоставляемыми сервисом Google Play.
Исправления ошибок
- Исправлена проблема с целевой частотой кадров
Preview/VideoCapture
на устройствах уровня LEGACY. Целевая частота кадров, заданная черезsetTargetFrameRate
или APICamera2Interop
, всегда перезаписывалась значением, предоставленнымAeFpsRangeLegacyQuirk
. Благодаря этому исправлению библиотека CameraX будет учитывать значение, заданное черезsetTargetFrameRate
или APICamera2Interop
. ( Ie2d32 ) - Добавлены функции вспышки/фонарика/3A для захвата изображений с помощью
CameraEffect
. Теперь изображения, захваченные с помощьюCameraEffect
, будут иметь ту же предварительную и последующую обработку (например, запуск вспышки, конвергенция 3A и т. д., когда применимо), что и захват изображений без использованияCameraEffect
. ( I5ff30 ) - Исключены проблемные размеры выходных файлов для
ImageAnalysis
на устройстве Samsung SM-A057G. ЕслиImageAnalysis
использует разрешение 1920x1440 или больше, возникает проблема с чёрным цветом в предварительном просмотре. Для устранения этой проблемы к устройству SM-A057G примененExcludedSupportedSizesQuirk
. ( I63dfe , b/365877975 ) - Исправлена проблема с целевой частотой кадров
Preview/VideoCapture
, когда механизм совместного использования потока был включен внутренне для совместного использования потока дляPreview
иVideoCapture
. ( I4fdac ) - Реализовано временное решение для исправления проблемы с некорректными метаданными изображений JPEG на устройствах Samsung S10e и S10+. Благодаря этому исправлению CameraX может успешно сохранять изображения JPEG, а также возвращать корректные объекты Bitmap при вызове функции
ImageProxy.toBitmap()
на этих устройствах в случае возникновения проблемы с некорректными метаданными изображений JPEG. ( Iae493 , b/356428987 ) - Отключены расширения для задней камеры Samsung A52s с идентификатором 0, поскольку при съемке HDR-изображений могут происходить собственные сбои, а настройка сеансов съемки может давать сбой для режимов BOKEH или FACE_RETOUCH. ( I03ec9 , b/364152642 )
- Исправлена ошибка, из-за которой событие
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
не срабатывало при записи видео и недостатке места на диске. ( Ia5b4f , b/356399842 ) - Исправлена ошибка, из-за которой вторая попытка записи видео завершалась неудачей на Oppo A5 (CPH1931). ( I181d6 )
Версия 1.5.0-альфа01
4 сентября 2024 г.
Выпущена версия androidx.camera:camera-*:1.5.0-alpha01
. Версия 1.5.0-alpha01 содержит следующие изменения .
Новые функции
- Для CameraX Viewfinder Compose Adapter выпущен новый артефакт
camera-compose
, который отображает поток предварительного просмотра из CameraXSurfaceRequest
изcamera-core
. ( I8666e ) - Добавлен новый составной объект
CameraXViewfinder
, который действует как идиоматический составной объект, адаптирующий CameraXSurfaceRequest
для составногоViewfinder
. ( I4770f )
Изменения API
- Предоставляет API для настройки параметров композиции для одновременной съёмки видео с двух камер. Настройки включают значение альфа для смешивания, смещение по координатам X и Y, масштаб ширины и высоты окна отображения кадра камеры. Смещение, ширина и высота указываются в нормализованных координатах устройства. ( Ia2b8a )
-
CameraProvider.getCameraInfo
теперь является формальным API. ( I901cd ) - Добавлен API
PendingRecording.withAudioEnabled(boolean initialMuted)
для управления начальным состоянием отключения звука. ( I635c3 , b/354829267 )
Исправления ошибок
- Исправлен сбой при вызове
bindToLifecycle
с уничтоженнымLifecycleOwner
. ( I6e6d8 ) - Исправлен черный экран предварительного просмотра на передней камере при связывании с
VideoCapture
на Motorola Edge 20 Fusion. ( I1fe88 ) - Оптимизирована конфигурация обнаружения жестов масштабирования в
PreviewView
для повышения плавности. ( I04ffc )
Версия камеры 1.4
Версия 1.4.2
26 марта 2025 г.
Выпущена версия androidx.camera:camera-*:1.4.2
. Версия 1.4.2 содержит следующие изменения .
Исправления ошибок
- Исправлена проблема зависания предварительного просмотра при использовании
ImageAnalysis
с другим потоком, использующимTEMPLATE_RECORD
на Samsung Galaxy M55. ( Ic1a6a , b/395822788 )
Версия 1.4.1
11 декабря 2024 г.
Выпущена версия androidx.camera:camera-*:1.4.1
. Версия 1.4.1 содержит следующие изменения .
Исправления ошибок
- Исправлена ошибка на устройствах Pixel Android 15, из-за которой ночной режим в расширениях не позволял делать снимки, пока камера не фокусировалась на близлежащем объекте. ( I228d4 )
- Исправлена проблема сбоя
ImageCapture#takePicture
при включенных расширениях и связанномVideoCapture
. ( I5c745 )
Версия 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
. - Эффекты в реальном времени: применяйте такие эффекты, как водяные знаки и выделение объектов.
- API CameraController: новые элементы управления для настройки захвата видео.
- Предварительный просмотр стабилизации: запрос возможностей устройства и включение стабилизации.
- Улучшения VideoCapture: более точный контроль качества и доступ к более высоким разрешениям.
- Интеграция расширений CameraX: идеальная интеграция с
VideoCapture
и новыми функциямиImageCapture
. - API звука затвора: простая проверка региональных требований к звуку затвора.
- Вспышка экрана: улучшенные фотографии, сделанные при слабом освещении для фронтальных камер.
- API метаданных расширений камеры: поддержка API для настройки мощности расширений и получения уведомлений о текущем режиме расширений в
ExtensionMode#AUTO
. Дополнительные исправления ошибок можно найти в наших объявлениях о бета-версиях и релизах .
Версия 1.4.0-rc04
16 октября 2024 г.
Выпущена версия androidx.camera:camera-*:1.4.0-rc04
. Версия 1.4.0-rc04 содержит следующие изменения .
Исправления ошибок
- Исправлена ошибка, из-за которой при вызове
startFocusMetering
сPreviewView.getMeteringPointFactory
не получались правильные координаты датчика, если эффект включен или привязаны 4 варианта использования (совместное использование потока). ( I916c5 , b/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 , b/354824993 )
Версия 1.4.0-beta02
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 , b/336925549 ) - Исправлена проблема с постоянной записью, из-за которой запись могла прекратиться после переключения камеры. ( Icb0a1 )
Версия 1.4.0-beta01
14 мая 2024 г.
Выпущена версия androidx.camera:camera-*:1.4.0-beta01
. Версия 1.4.0-beta01 содержит следующие изменения .
Изменения API
- Добавлен
ZoomGestureDetector.ZoomEvent
для инкапсуляции состояний жеста масштабирования. ( I84cdf )
Исправления ошибок
- Исправлена ошибка, из-за которой при съемке неподвижных объектов и фокусировке по касанию не использовались значения частоты кадров/режима стабилизации повторяющегося запроса, что могло привести к повторному созданию сеанса съемки и вызвать проблемы с задержкой или зависание предварительного просмотра на некоторых устройствах. ( I7dc0b )
- Исправлена ошибка, из-за которой на некоторых устройствах нельзя было выбрать высокое разрешение, если включена
CameraEffect
(например, 4000x3000 на Samsung A32 5G). ( Ie3ed3 , b/337336152 ) - Исправлен сбой при съемке с помощью Preview,
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
, который интерпретирует жесты масштабирования, специально настроенные для действия «щипок для масштабирования». ( Ifafbf )
Исправления ошибок
- Исправлена проблема выбора разрешения
ImageAnalysis
, связанная с настройкой целевого разрешения анализатора по умолчанию: целевое разрешение некорректно сохранялось равным 640x480, даже если приложения устанавливали другое разрешение анализатора по умолчанию. Если приложения сталкиваются с этой проблемой (1.3.0 ~ 1.3.2) и не могут обновиться до новых версий, содержащих решение, прямая установкаResolutionSelector
с предпочтительным разрешением и соответствующимAspectRatioStrategy
вImageAnalysis
UseCase
может обойти эту проблему. ( I81f72 , b/330091012 ) - Исправлена ошибка, из-за которой поставленный в очередь запрос
takePicture
мог не выполняться, если текущий запрос завершился неудачей. ( Ie0801 ) - Проверьте наличие недопустимых данных JPEG на устройствах Vivo X60 и X60 Pro. Это может исправить проблему с необычно большими изображениями на этих устройствах. ( I82247 , b/288828159 )
- Исправлена проблема с некорректными метаданными изображений JPEG на устройствах Samsung A24. Благодаря исправлению CameraX может успешно сохранять изображения JPEG, а также возвращать корректные объекты Bitmap при вызове функции
ImageProxy.toBitmap()
на устройствах Samsung A24. ( I8d6eb , b/309005680 ) - Включите проверку на недопустимость данных JPEG для всех устройств Samsung, если размер полученного изображения превышает 10 МБ. Это может решить проблему с аномально большими изображениями на устройствах Samsung. ( Ic2a65 , b/288828159 )
- Удалена поддержка
ImageAnalysis
в расширениях CameraX, поскольку реализации расширений многих производителей оригинального оборудования некорректно работают с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
. Этот артефакт содержит реализации APICameraEffect
на OpenGL, которые эффективно управляют выходными данными камеры. -
OverlayEffect
: для создания наложений с помощью API Canvas от Android. Это позволяет приложению накладывать водяной знак или выделять обнаруженные объекты на изображениях с камеры. - API
DynamicRange
для режима предварительного просмотра: Динамический диапазон теперь можно настроить для режима предварительного просмотра, независимо от режима видео. Это позволяет использовать динамические диапазоны HDR, такие как HLG10, только для предварительного просмотра. ВCameraInfo
также доступны новые API для запроса динамических диапазонов, поддерживаемых каждой камерой.
Изменения API
-
ScreenFlashUiCompleter
переименован вScreenFlashListener
, аScreenFlashUiCompleter#getExpirationTimeMillis
перемещен в параметрexpirationTimeMillis
ScreenFlash#apply
. ( I13944 ) - Добавлены новые API, позволяющие настраивать динамический диапазон в режиме предварительного просмотра и запрашивать динамические диапазоны, поддерживаемые каждой камерой. Это позволяет использовать динамические диапазоны HDR, такие как HLG10, только в режиме предварительного просмотра, без необходимости одновременной привязки
VideoCapture
. ( If25e3 ) - Переименован
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 , b/317543616 ) - Событие
ImageCapture#ScreenFlash#clear
вызывается немедленно при отсоединенииImageCapture
или закрытии камеры, а также исправляет некоторые ошибки, при которых оно никогда не вызывается из-за того, что в этих сценариях захват не завершается должным образом. ( If99f9 ) - Исправлен сбой, возникающий при остановке жизненного цикла до завершения запроса
takePicture
( Idf017 , b/306202751 ). - Исправлена ошибка, из-за которой предварительный просмотр камеры становился черным при включении расширений на некоторых устройствах ( I1ffd0 ).
- Исправлена некорректная длительность записи видео на устройствах с чипсетом Snapdragon 778G. ( If6aa7 , b/316057919 )
Версия 1.4.0-альфа03
13 декабря 2023 г.
Выпущена версия androidx.camera:camera-*:1.4.0-alpha03
. Версия 1.4.0-alpha03 содержит следующие изменения.
Новые функции
- Добавлен
CameraInfo.mustPlayShutterSound
для предоставления информации о том, должен ли воспроизводиться звук затвора в соответствии с региональными ограничениями. ( Ifda84 ) - Добавлены функции
OnImageCapturedCallback.onCaptureStarted
иOnImageSavedCallback.onCaptureStarted
для уведомления о начале экспозиции кадра. В этот момент рекомендуется воспроизвести звук затвора или анимацию затвора. ( Ic49b3 ) - Добавлена поддержка функции экрана в камере для снимка изображения фронтальной камеры. Camerax позаботится о обработке API на стороне фреймворчата и синхронизировала время с изменением пользовательского интерфейса приложения по мере необходимости (например, триггер предшествователя после изменения цвета/яркости приложения). Приложения должны будут только добавить свои реализации пользовательского интерфейса в интерфейс
ScreenFlashUiControl
, предоставленную для Camerax. ( I8ae84 ) - Добавлена поддержка реализации UI Flash Flash
PreviewView
камере. Приложения смогут получить базовую реализациюImageCapture.ScreenFlashUiControl
. ( I1810EScreenFlashView
Изменения API
- Поддерживает новые функции расширений (Posteview and Capture Products): Добавлена API -интерфейсы
ImageCapture#getImageCaptureCapabilities()
для приложений для запроса возможностей пост -просмотра и захвата процесса прогресса. Приложения могут включить пост -просмотр, используяImageCapture.Builder#setPostviewEnabled()
. Размер пост -просмотра может быть выбран с использованиемImageCapture.Builder#setPostviewResolutionSelector()
. При вызовеtakePicture()
,onPostviewBitmapAvailable
иonCaptureProcessProgressed
может быть реализован вOnImageSavedCallback
илиOnImageCapturedCallback
чтобы получить уведомление о пост -просмотре и процессе прогресса в случае поддержки. ( I5cd88 ) - API для расчета координат преобразования из датчика в текущий буфер, с флагом, указывающим, содержит ли поверхность информацию о ориентации камеры. ( I59096 )
- Раскрыть API для запроса
PreviewCapabitlity
в предварительном просмотреUseCase
. ( IE5B6C ) - Добавлены API, чтобы поддержать больше качеств для
VideoCapture
.Recorder.Builder#setVideoCapabilitiesSource(int)
может использоваться с помощьюVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
для создания экземпляраRecorder
, который поддерживает больше качества, чемVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
. Общий вариант использования - это когда приложение стремится записывать видео UHD, когда это возможно, ноCamcorderProfile
устройства не включает настройки UHD, даже если кодек способен записывать видео UHD. ( Iedbe2 , b/263961771 ) - Добавьте формат
ImageAnalysis
Getter/Setter вCameraController
. ( I9a96c , b/308240643 )
Исправления ошибок
- От камеры
1.3.1
: улучшение производительностиProcessCameraProvider#bindToLifecycle()
. Основное изменение состоит в том, чтобы оптимизировать процесс определения наиболее подходящих комбинаций размеров дляUseCases
. Оптимальные результаты варьируются в зависимости от конкретных комбинацийUseCase
и количества поддерживаемых выходных размеров для целевых устройств. ( I454f2 ) - Разрешить использование
VideoCapture
при включении расширений. ( I91f32 ) - Исправлена большая захваченная проблема с изображением JPEG на устройствах серии Samsung A71 и M51. Захваченные изображения JPEG содержат избыточные данные о накладке 0 в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют экстремальный размер файла. Эти избыточные данные о наборе 0 будут удалены, чтобы у картинных изображений были обычные размеры файлов изображения. ( I01afc , b/288828159 )
- Отключить поддержку
ImageAnalysis
на пикселях, чтобы избежать ошибки на пикселе, которая случайно возвращает непустыеImageAnalysis
. ( I7ec31 ) - Фиксированная проблема производительности, когда загрузка процессора и энергопотребление увеличивались при включении расширений. ( IBDCCB )
- Добавлен Snapdragon 480 в
CameraUseInconsistentTimebaseQuirk
. Это исправляет проблему на Android 12 для устройств с использованием этого чипсета, где звук в записях компенсируется количеством времени, когда устройство находится в подвесном состоянии. ( I58010 )
Версия 1.4.0-Alpha02
18 октября 2023 г.
androidx.camera:camera-*:1.4.0-alpha02
выпускается. Версия 1.4.0-Alpha02 содержит эти коммиты.
Изменения API
- Переименовать API в
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
и переименовать аргумент. ( I72370 ) - Добавление API для запроса возможности устройства и включить стабилизацию видео/предварительного просмотра. ( I87544 )
- Предоставьте API для настройки камеры открыть повторение времени максимального времени. ( I0c642 )
- Выпущенный
ProcessCameraProvider.shutdownAsync
в качестве публичного тестирования API, позволяющий использовать поставщика камеры процессов в тестовых люксах, которые могут потребоваться инициализации камеры различными способами между тестами. ( I9eca7 ) - Добавьте API для настройки динамического диапазона захвата видео, частоты кадров и зеркального режима. ( Ifb8f7 )
- Установите
OutputSize
и замените его наResolutionSelector
.ResolutionSelector
-это более полный способ выбрать разрешения, и он согласуется с API-ядра. ( I93abd , b/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 для доступа к информации о амплитуде аудио во время записи. ( ID4925 )
Исправления ошибок
- Улучшить стабильность расширений, гарантируя, что события инициализации и деинициализации запускаются в правильном порядке. ( IB3B8E )
- Фиксированный сбой конфигурации сеанса захвата для превышения поддерживаемой комбинации поверхности из -за добавления дополнительной повторной поверхности внутри. ( Id718c )
- Исправлена большая захваченная проблема с изображением JPEG на устройстве Vivo S16. Захваченные изображения JPEG содержат избыточные данные о накладке 0 в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют большой размер файла. Эти избыточные данные о наборе 0 будут удалены, чтобы у картинных изображений были обычные размеры файлов изображения. ( I79505 , B/299069235 )
- Исправлена проблема, что
ImageAnalysis
не может быть связан вместе сImageCapture
и предварительным просмотром, когда некоторые режимы расширения включены на некоторых устройствах. Исправление вернет правильное значение, когда приложения запросили доступностьImageAnalysis
черезExtensionsManager#isImageAnalysisSupported()
. ( I7d538 ) - Обновите Javadoc, чтобы соответствовать поведению. Вместо того, чтобы немедленно завершать,
#setZoomRatio
,#setLinearZoom
и#enableTorch
ожидают, пока камера не будет готова. Также добавлена информация о том, как получить максимальный FOV с API#takePicture
. ( I23588 )
Версия 1.3
Версия 1.3.4
12 июня 2024 г.
androidx.camera:camera-*:1.3.4
выпускается. Версия 1.3.4 содержит эти коммиты .
Исправления ошибок
- Исправлена проблема, когда
getZoomRatio
неверно вернул снижение значения при применении увеличения соотношения масштабирования. ( I4aa0d , b/317543616 ) - Исправлена все еще захватывание/нажимание к фокусу, не используя значения режима FPS/стабилизации повторного запроса, которые могут воссоздать сеанс захвата и вызвать проблемы с задержкой или замораживание предварительного просмотра в некоторых устройствах. ( I7dc0b )
- Исправлена проблема, согласно которой частота кадров устанавливается на более низкое значение при вызове
setTargetFrameRate
с помощьюFRAME_RATE_RANGE_UNSPECIFIED
. ( I78c61 )
Версия 1.3.3
17 апреля 2024 г.
androidx.camera:camera-*:1.3.3
выпускается. Версия 1.3.3 содержит эти коммиты .
Исправления ошибок
- Исправленная проблема выбора разрешения
ImageAnalysis
, связанная с настройкой целевого разрешения анализатора. Если приложения сталкиваются с этой проблемой (1.3.0 ~ 1.3.2) и не могут обновляться, чтобы использовать более новые выбросы версий, которые содержат решение, непосредственно устанавливаяResolutionSelector
с предпочтительным разрешением и соответствующейAspectRatioStrategy
для использованияImageAnalysis
может облегчить эту проблему. ( I81f72 , b/330091012 )
Версия 1.3.2
6 марта 2024 г.
androidx.camera:camera-*:1.3.2
выпускается. Версия 1.3.2 содержит эти коммиты .
Исправления ошибок
- Исправлена проблема с метаданным JPEG на устройствах Samsung A24. Камера теперь точно сохраняет изображения, а функция
ImageProxy.toBitmap()
возвращает правильные объекты растрового изображения. ( I8d6eb , b/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 мс
Добавлен Snapdragon 480 в
CameraUseInconsistentTimebaseQuirk
. Это исправляет проблему на Android 12 для устройств с использованием этого чипсета, где звук в записях компенсируется количеством времени, когда устройство находится в подвесном состоянии. ( I58010 )
Версия 1.3.0
18 октября 2023 г.
androidx.camera:camera-*:1.3.0
выпускается. Версия 1.3.0 содержит эти коммиты.
Важные изменения с 1.2.0
- Видео-функции, включая 10-битный HDR , обрезку , зеркало/не MIRROR , MUTE/ENERUTE , SET-CRAMERE и многое другое.
- Двойная одновременная камера
- Эффект библиотеки
- Селектор разрешения
- Ультра широкий и телескопический выбор камеры
- Переключение камеры во время записи видео (экспериментальная функция)
Версия 1.3.0-RC02
20 сентября 2023 г.
androidx.camera:camera-*:1.3.0-rc02
выпускается. Версия 1.3.0-RC02 содержит эти коммиты.
Исправления ошибок
- Улучшить стабильность расширений, гарантируя, что события инициализации и деинициализации запускаются в правильном порядке. Это исправило некоторые черные проблемы предварительного просмотра при переключении режимов расширений или переключения камер. ( Iddaac )
- Исправлена проблема, что
ImageAnalysis
не может быть связан вместе сImageCapture
и предварительным просмотром, когда некоторые режимы расширения включены на некоторых устройствах. Исправление вернет правильное значение, когда приложения запросили доступность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-beta01
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 ) - При
VideoCapture.setTargetRotationDegrees(int)
setTargetRotationDegrees
APIUseCase.snapToSurfaceRotation(int)
ImageAnalysis.setTargetRotationDegrees(int)
IA9010ImageCapture.setTargetRotationDegrees(int)
- Добавлен новый 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-альфа06
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-альфа05
22 марта 2023 г.
androidx.camera:camera-*:1.3.0-alpha05
выпускается. Версия 1.3.0-Alpha05 содержит эти коммиты.
Изменения API
- Добавлены API -интерфейсы ротации
VideoCapture
, включаяVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
иVideoCapture.getTargetRotation()
. API полезны для приложений, которые блокируют ориентацию устройства.ImageCapture.setTargetRotationDegrees(int)
иImageAnalysis.setTargetRotationDegrees(int)
также добавлены. ( Id3ffe , b/205242781 ) - Разрешить
VIDEO_CAPTURE
иPREVIEW|VIDEO_CAPTURE
как цель эффектов. Эффекты, которые нацелены наVIDEO_CAPTURE
, будут применены к использованиюVideoCapture
; Эффекты, нацеленные наPREVIEW|VIDEO_CAPTURE
будут применены к общему потоку перед копированием для предварительного просмотра и потокаVideoCapture
. ( IEE6F3 )
Исправления ошибок
- Из камеры
1.2.2
: Исправлена проблема, в которой расширения камеры не работают должным образом, когда прогиар включен на некоторых устройствах, таких как Pixel ( i90aa2 ) - Исправлена ошибка
PreviewView
, которая, если приложение обрабатывает саму ориентацию экрана. Предварительный просмотр может искажаться при вращении. Это происходит только на определенных устройствах. Его можно воспроизвести на Pixel A4, Pixel 5 и Pixel 6a. ( I14340 , B/223488673 )
Версия 1.3.0-альфа04
22 февраля 2023 года
androidx.camera:camera-*:1.3.0-alpha04
выпускается. Версия 1.3.0-Alpha04 содержит эти коммиты.
Новые функции
Новая функция, поддерживающая ранее неподдерживаемые комбинации поверхности, делясь одним потоком на несколько пользователей.
- Ранее, при привязке «Предварительный просмотр, видеозапьер, Imageanalysis» на уровне аппаратного обеспечения камеры заполнен и ниже, или привязка «Предварительный просмотр, видеозапью, ImageCapture» на устаревшем уровне аппаратного уровня, камера бросает
IllegalArgumentException
. - Новое поведение состоит в том, что привязки будут работать, не бросая исключения. Вместо этого Camerax использует OpenGL для копирования общего потока как для предварительного просмотра, так и для видеозапьеры.
- В качестве стоимости копии буфера приложение может увидеть увеличение задержки и энергопотребления.
Изменения API
- Добавьте API, чтобы преобразовать
ImageProxy
вBitmap
. Поддерживаемый форматImageProxy
-ImageFormat.YUV_420_888
иPixelFormat.RGBA_8888
. Если формат недействителен, будет брошеноIllegalArgumentException
. ( IC7110 ) - Добавьте
CoroutineCameraViewfinder
, чтобы поддержать настройку ViewFinder, используя подвесные функции в Kotlin. ( I657bc ) - Добавьте новый общественный конструктор для
ViewfinderSurfaceRequest
. Это обеспечивает гибкость, когда пользователь не может предоставитьCameraCharacteristics
. ( IE6549 )
Исправления ошибок
- Исправлена сбой расширений, который происходит на некоторых устройствах Samsung при слишком быстрое приложение/возобновление приложения ( IACA26 )
Версия 1.3.0-альфа03
25 января 2023 г.
androidx.camera:camera-*:1.3.0-alpha03
выпускается. Версия 1.3.0-Alpha03 содержит эти коммиты.
Изменения API
- Добавлена
CameraInfo.getIntrinsicZoomRatio
, чтобы предоставить информацию о угле просмотра относительно камеры по умолчанию. ( IB300C ) - Добавлена
CameraInfo.getLensFacing
, чтобы предоставить информацию, обращенную к объективу. ДобавленаCameraSelector#LENS_FACING_EXTERNAL
в качестве экспериментальной функции для выбора внешних камер. ( ICAF3E ) - Добавьте
#setEffect()
вCameraController
, который позволяет добавлять эффекты к выходу камеры. ( I1d21f ) - Добавить метод
invalidate()
вSurfaceRequest
. Поставщик поверхности может уведомить, что ранее предоставленная поверхность больше не является действительной. ( IDC649 ) - Добавить API
ImageProcessor
. Этот интерфейс предназначен для инъекции последующих эффектов в трубопроводImageCapture
. ( I575c6 ) - Добавлен API
Recorder.Builder.setAspectRatio()
, который может быть объединен сQualitySelector
для поддержки большего количества резолюций видео. ( I8a082 ) - Добавлен
Recorder.Builder#setTargetVideoEncodingBitRate
, чтобы установить целевое видео, кодирующееBitRate
иRecorder#getTargetVideoEncodingBitRate
, чтобы получить целевое видео, кодирующее битрейт. ( I5984d )
Исправления ошибок
- Фиксированная
ImageCapture
не удалась, когда нет флэш -единицы, а режим вспышки включен. ( I9e8b4 , b/263391112 ) - Исправлена проблема развращения изображения JPEG, если написание данных о местоположении EXIF на некоторых устройствах Samsung Android 12. ( IB7086 , B/263747161 , B/263289024 )
- При настройке 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-альфа01
9 ноября 2022 г.
androidx.camera:camera-*:1.3.0-alpha01
выпускается. Версия 1.3.0-Alpha01 содержит эти коммиты.
Новые функции
-
Camera-viewfinder
была официально опубликована.Camera-viewfinder
предоставляет виджет базового видоискателя, который может отображать подачу камеры для Camera2. Пожалуйста, проверьте пример кода .
Изменения API
- Добавлено
OutputOptions.setDurationLimit
, чтобы разрешить настройку ограничения продолжительности видео. Запись будет автоматически завершена при превышении указанного ограничения продолжительности. ( I902a0 ) - Добавить видеозаписи аудиоу ошибки
AudioStats.AUDIO_STATE_SOURCE_ERROR
. Отправлено, когда настройка источника аудио, настройка исходной сбой или возникает какая -то ошибка. ( I37410 )
Исправления ошибок
- Добавьте причуд, чтобы позволить некоторым проблематичным устройствам повторно захватить захват один раз при столкновении с перерывами захвата. ( ID4795 )
- Исправлена превтварная реализация
PreviewView
SurfaceView
Проблема черного экрана наViewPager2
. В рамках исправленияPreviewView
повторно использует свойSurfaceView
, если запрошенное разрешение не будет изменено. ( IB3F27 ) - Поддержка видеопольза (функция Wysiwyg) при использовании
ViewPort
илиCameraController
API. ( IFBBA8 , B/201085351 ) - Исправленное видео, снятое с фронтальной камерой, не работает на Huawei P40 Lite. ( I87c57 , b/250807400 )
Версия 1.2
Версия 1.2.3
24 мая 2023 года
androidx.camera:camera-*:1.2.3
выпускается. Версия 1.2.3 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема, где
VideoCapture
не может работать с фронтальной камерой на некоторых устройствах. Например, на Samsung Galaxy S23 и Xiaomi 2107113SG. ( IBEC7E , B/270656244 )
Версия 1.2.2
22 марта 2023 г.
androidx.camera:camera-*:1.2.2
выпускается. Версия 1.2.2 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема, в которой расширения камеры не работают должным образом, когда прогиар включен на некоторых устройствах, таких как Pixel ( i90AA2 )
Версия 1.2.1
25 января 2023 г.
androidx.camera:camera-*:1.2.1
выпускается. Версия 1.2.1 содержит эти коммиты.
Исправления ошибок
- Исправьте проблему развращения изображения JPEG, если написание данных о местоположении EXIF на некоторых устройствах Samsung Android 12. ( B/263289024 )
Версия 1.2.0
7 декабря 2022 г.
androidx.camera:camera-*:1.2.0
выпускается. Версия 1.2.0 содержит эти коммиты.
Важные изменения с 1.1.0
- Новая библиотека-камера-млкит-вид. Легко интегрировать камеру с множеством функций MLKIT, включая сканирование штрих -кода, обнаружение лица, обнаружение текста и т. Д. Добавлено
MLKitAnalyzer
в качестве новых API. - Новый экспериментальный API с нулевым баллом. Оптимизирует конвейер захвата, чтобы иметь лучшую задержку, сохраняя при этом хорошее качество изображения. Когда режим захвата устанавливается на
CAPTURE_MODE_ZERO_SHUTTER_LAG
, задержка между кнопкой затвора нажимается, и ожидается, что изображение будет минимизирована по сравнению с другими режимами захвата. На устройствах, которые не поддерживаютZERO_SHUTTER_LAG
, это будет отступить, чтобыCAPTURE_MODE_MINIMIZE_LATENCY
. - Установите
android.camera.core.VideoCapture
. - Добавлен
setStreamUseCase()
в качестве публичного APICamera2Interop
. - Добавлены требования уровня API для
setOutputImageRotationEnabled
. -
ImageAnalysis.Analyzer#getDefaultTargetResolution()
ImageAnalysis.Analyzer#getTargetResolutionOverride()
. - Добавлен 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-beta01
24 августа 2022 г.
androidx.camera:camera-*:1.2.0-beta01
выпускается. Версия 1.2.0-бета01 содержит эти коммиты.
Новые функции
- New library
camera-mlkit-vision
. Easily integrate CameraX with many MLKit features, including barcode scanning, face detection, text detection, etc. Please find the sample code here . - New experimental Zero-Shutter Lag API . Optimizes capture pipeline to have better latency while keeping good image quality. When the capture mode is set to CAPTURE_MODE_ZERO_SHUTTER_LAG, the latency between the shutter button is clicked and the picture is taken is expected to be minimized, compared with other capture modes. On devices that don't support ZERO_SHUTTER_LAG, it'll fallback to CAPTURE_MODE_MINIMIZE_LATENCY.
- Made
ImageAnalysis.Analyzer
andMLKitAnalyzer
as official APIs. - Exposed API for setting location metadata to the saved video.
- Rename
ImageAnalysis.Analyzer#getTargetResolutionOverride()
toImageAnalysis.Analyzer#getDefaultTargetResolution()
.
Исправления ошибок
- Fixed Alps k61v1_basic_ref image capture issue. The captured JPEG images from HAL have incorrect Exif metadata. The Exif metadata doesn't have the 0xffd9 or 0xffda tag to make
ExifInterface
correctly parse the attributes. Capturing the images in YUV format and then compressing them to JPEG output images to workaround this issue. ( I45abb )
Version 1.2.0-alpha04
July 27, 2022
androidx.camera:camera-*:1.2.0-alpha04
is released. Version 1.2.0-alpha04 contains these commits.
Изменения API
- Rename
ImageAnalysis.Analyzer#getTargetResolutionOverride()
toImageAnalysis.Analyzer#getDefaultTargetResolution()
. The behavior is also changed so that the value returned by this method can be overridden by the value ofImageAnalysis#setTargetResolution()
. ( If1d36 ) - Exposed API for setting location metadata to the saved video. An
android.location.Location
object can be set via new APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
. ( I313a0 , b/204197544 )
Исправления ошибок
- Fix the issue to take picture with unbind preview ( Ie70b6 , b/235119898 )
- Fixed crash in
Recorder
when attempting to record while audio source is unavailable. ( I9f652 )
Version 1.2.0-alpha03
29 июня 2022 г.
androidx.camera:camera-*:1.2.0-alpha03
is released. Version 1.2.0-alpha03 contains these commits.
Изменения API
- Removed the experimental annotation for
ImageAnalysis.Analyzer
andMLKitAnalyzer
. ( I0ff22 )
Исправления ошибок
- Added auto focus default timeout 5000ms that will complete the AF part with
isFocusSuccessful
false if theFocusMeteringAction
is not cancelled and the AF part is not converged in the duration. ( Ibc2e3 ) - Fix the issue to take picture with unbind preview ( I1d3a2 , b/235119898 )
- Enabled advanced extender implementation and update the CameraX support extensions-interface version to 1.2 ( I92256 )
Version 1.2.0-alpha02
1 июня 2022 г.
androidx.camera:camera-*:1.2.0-alpha02
is released. Version 1.2.0-alpha02 contains these commits.
Новые функции
- Expose CameraX Zero-Shutter Lag API as experimental.
Изменения API
- Add new capture mode
CAPTURE_MODE_ZERO_SHUTTER_LAG
inImageCapture
and addisZslSupported
inCameraInfo
to query the device capability.CAPTURE_MODE_ZERO_SHUTTER_LAG
mode is aiming to provide the minimum latency for instant capture. It is implemented based on a ring buffer, which caches intermediate capture results for later reprocessing when the user presses buttons to take pictures. If {@link VideoCapture} is bound or flash mode is not OFF or OEM Extension is ON, this mode will be disabled automatically. ( I9ae74 ) - Add
ImageAnalysis.getBackgroundExecutor()
method ( Icc945 )
Исправления ошибок
- Fixed
ImageCapture
takePicture method turns torch off on the reported devices. ( Ib5eb5 , b/228272227 ) - Fixed a bug where
AssertionError
not being handled when getting theCONTROL_ZOOM_RATIO_RANGE
characteristic.( /Ia248a , b/231701345 )
Version 1.2.0-alpha01
18 мая 2022 г.
androidx.camera:camera-*:1.2.0-alpha01
is released. Version 1.2.0-alpha01 contains these commits.
Новые функции
- New library camera-mlkit-vision is launched
Исправления ошибок
- Fixed
QualitySelector
fails to record a UHD video when a fallback strategy is enabled. The issue happens whenVideoCapture
is bound withImageCapture
and Preview on a FULL or higher hardware level camera device. A fallback strategy ofQualitySelector
causesVideoCapture
incorrectly to get a FHD resolution. UHD resolution is actually supported for this use case combination and should be adopted. ( I0e788 , b/230651237 ) - Fixed
NullPointerException
onImageCapture.takePicture()
. ( I92366 , b/230454568 , b/229766155 ) - Fix async pause behavior of
androidx.camera.video.Recorder
( Ia8ce8 )
Camera-Camera2, Camera-Core, Camera-Lifecycle, & Camera-Video Version 1.1.0
Version 1.1.0
29 июня 2022 г.
androidx.camera:camera-*:1.1.0
is released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
- Landed View, Extension and Video Capture libraries as their first RC version. 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 matrices.
- Introduced new public APIs and features which including:
- Add the official camera-video library to support video capture use cases.
- YUV to RGB conversion and rotation capability (
ImageAnalysis.Builder.setOutputImageRotationEnabled
andsetOutputImageFormat
) - Support multi-window mode by allowing CameraX applications to resume the camera when the camera is interrupted by another app and focus is back.
- Ensures CameraX works well in foldable devices by fixing some preview issues.
- Added a
CameraState
API that will be exposed through CameraInfo. - Added an API
ProcessCameraProvider.getAvailableCameraInfos()
to directly retrieve information about the available cameras - Output JPEG format for
ImageCapture#OnImageCapturedCallback
when Extensions are enabled. - Added a API
isFocusMeteringSupported
inCameraInfo
which allows applications to check if the givenFocusMeteringAction
is supported on current camera or not. - Exposed
getResolutionInfo
API to provide the resolution information for Preview,ImageCapture
andImageAnalysis
. - Added a new API
ImageCapture.Builder#setJpegQuality
to allow changing the output JPEG image compression quality when taking pictures. - Added
CameraSelector#filter
to the public API to filter a list ofCameraInfos
based on aCameraSelector
. - Added
Camera2CameraControl.clearCaptureRequestOptions
for clearing the existing capture request options. - Added an experimental API for using
CameraController
with external image processing libraries. eg MLKit - Added experimental API
CameraInfo#getCameraSelector()
which returns aCameraSelector
unique to its camera - Promoted several experimental APIs to formal public APIs
- Replaced annotation
@Experimental
with@RequiresOptIn
to experimental APIs. For calling experimental APIs, use androidx.annotation.OptIn instead of deprecated androidx.annotation.experimental.UseExperimental. - 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()
, -
@ExperimentalCameraFilter
APIs - experimental exposure compensation APIs.
- Promoted the experimental
UseCaseGroup
API for camera-core, camera-lifecycle and camera-video. AddedViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
andViewPort.Builder#setScaleType
for customizing viewport. - Promoted the
ExperimentalUseCaseGroupLifecycle
to formal public APIs. - Changes to the existing APIs
-
Renamed MediaStoreOutputOptions.getCollection
toMediaStoreOutputOptions.getCollectionUri
. -
ActiveRecording
has been renamed to "Recording" to reduce verbosity. - Changed
QualitySelector
creator API to a list-based API
Исправления ошибок
- Fixed
YuvToJpegProcessor
EOFException
issue when extension mode is enabled andImageCapture#CAPTURE_MODE_MAX_QUALITY
mode is set. - Fixed codec configuration failed due to video recording is closing
- Fixed stretched preview/video aspect ratio when recording at FHD
- Fixed audio/video out of sync after pause and resume on some devices
- Fixed the issue where flash is triggered during tap-to-focus (
startFocusAndMetering
) when flash mode is auto or always_on in low-light environment.
Version 1.1.0-rc02
1 июня 2022 г.
androidx.camera:camera-*:1.1.0-rc02
is released. Version 1.1.0-rc02 contains these commits.
Исправления ошибок
- Fixed
NullPointerException
onImageCapture.takePicture()
. ( I92366 , b/230454568 , b/229766155 ) - Fixed a bug where
AssertionError
not being handled when getting theCONTROL_ZOOM_RATIO_RANGE
characteristic. ( Ia248a , b/231701345 )
Version 1.1.0-rc01
11 мая 2022 г.
androidx.camera:camera-*:1.1.0-rc01
is released. Version 1.1.0-rc01 contains these commits.
Новые функции
- Release the first RC version for camera-video, camera-view, and camera-extension
Исправления ошибок
- Fixed an issue where the video codec wasn't released when
VideoCapture<Recorder>
was unbound, causing subsequent uses ofVideoCapture<Recorder>
to fail on recording withMediaCodec.CodecException
, especially on API 21-22 devices. ( Ie7f68 ) - Fix captured images of
CameraExtensionsActivity
do not be deleted inImageCaptureTest
Version 1.1.0-beta03
6 апреля 2022 г.
androidx.camera:camera-*:1.1.0-beta03
is released. Version 1.1.0-beta03 contains these commits.
Изменения API
- Made
CaptureRequestOptions
constructor restricted. ( I261b6 ) - Added an experimental API for using
CameraController
with external image processing libraries. eg 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 )
Внешний вклад
- updated :compose:ui:ui-test api (updateApi) due to test-coroutines-lib migration ( I3366d )
Version 1.1.0-beta02
23 февраля 2022 г.
androidx.camera:camera-*:1.1.0-beta02
is released. Version 1.1.0-beta02 contains these commits.
Изменения API
- 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
January 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
- 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
- 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
- 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 )
Внешний вклад
Version 1.1.0-alpha10
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
- 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
- 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
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
- 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
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
30 июня 2021 г.
androidx.camera:camera-camera2:1.1.0-alpha06
, androidx.camera:camera-core:1.1.0-alpha06
, and androidx.camera:camera-lifecycle:1.1.0-alpha06
are released. Version 1.1.0-alpha06 contains these commits.
Изменения API
- Promote the experimental exposure compensation APIs for camera-core ( I08ee8 )
- Added a API isFocusMeteringSupported in CameraInfo which allows applications to check if the given FocusMeteringAction is supported on current camera or not. ( Ib45ae , b/188606490 )
- Exposed getResolutionInfo API to provide the resolution information for Preview, ImageCapture and ImageAnalysis. ( I2b613 , b/188600718 )
- Promoted the following experimental APIs to official APIs: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). ( I2ade2 )
- Exposed the CameraProvider interface to provide access to a set of cameras. ( I1a7b1 )
- Promote the experimental UseCaseGroup API for camera-core, camera-lifecycle and camera-video. Added
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
andViewPort.Builder#setScaleType
for customizing viewport. ( I7cee8 )
Version 1.1.0-alpha05
2 июня 2021 г.
androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
, and androidx.camera:camera-lifecycle:1.1.0-alpha05
are released. Version 1.1.0-alpha05 contains these commits.
Изменения API
- Removed
Camera2CameraFilter
class. Suggest to select camera by CameraFilter and retrieve CameraCharacteristics or other Camera2 related information through Camera2CameraInfo if needed. ( Ib887c ) -
ExperimentalCameraFilter
APIs are now out of experimental stage and become formal APIs. They can be used without annotated OptIn. ( I4bc94 ) - Added camera state API that's exposed through
CameraInfo#getCameraState()
. ( Ia86b4 ) - Added experimental API
CameraInfo#getCameraSelector()
which returns a CameraSelector unique to its camera ( I77f9f )
Исправления ошибок
- Fixed the issue that ListenableFuture returned in setZoomRatio and setLinearZoom cannot complete on some android 11 devices ( I716d7 )
- Speed up Camera switching and reduce the error happen rate of the camera device ( I34c99 )
- Replaced ExperimentalUseCaseGroupLifecycle with ExperimentalUseCaseGroup. ( I3b2ef , b/159033688 )
Version 1.1.0-alpha04
21 апреля 2021 г.
androidx.camera:camera-camera2:1.1.0-alpha04
, androidx.camera:camera-core:1.1.0-alpha04
, and androidx.camera:camera-lifecycle:1.1.0-alpha04
are released. Version 1.1.0-alpha04 contains these commits.
Исправления ошибок
- Fixed a memory leak caused by multiple threads concurrently accessing the same collection. The memory leak may cause the Activity or Fragment to be retained by a Preview instance. ( I7b4b8 )
- Replaced annotation
@Experimental
with@RequiresOptIn
to experimental APIs. For calling experimental APIs, 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
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
- 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
Версия 1.0.2
29 сентября 2021 г.
androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
, and androidx.camera:camera-lifecycle:1.0.2
are released. Version 1.0.2 contains these commits.
Исправления ошибок
- Fix the issue where the captured photos are blurred in
MAXIMIZE_QUALITY
mode. ( I173a9 , b/193823892 ) - Fixed a issue that captured image with flash is dark on many devices. ( I4e510 )
Camera-Camera2, Camera-Core, & Camera-Lifecycle Version 1.0.1
Версия 1.0.1
21 июля 2021 г.
androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
, and androidx.camera:camera-lifecycle:1.0.1
are released. Version 1.0.1 contains these commits.
Исправления ошибок
Fixed the issue that the
ListenableFuture
returned 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
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
Известные проблемы
- See Known Issue list
Version 1.0.0-rc05
21 апреля 2021 г.
androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
, and androidx.camera:camera-lifecycle:1.0.0-rc05
are released. Version 1.0.0-rc05 contains these commits.
Исправления ошибок
- Fixed ImageCapture with flash On/Auto takes washed out images on Samsung Galaxy S7. ( I30001 )
Version 1.0.0-rc04
24 марта 2021 г.
androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
, and androidx.camera:camera-lifecycle:1.0.0-rc04
are released. Version 1.0.0-rc04 contains these commits.
Исправления ошибок
- 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
16 декабря 2020 г.
androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
, and androidx.camera:camera-lifecycle:1.0.0-rc01
are released. Version 1.0.0-rc01 contains these commits.
Изменения API
- Changed CameraFilter and Camera2Filter to take in CameraInfo. ( I6883d )
- Added experimental class Camera2CameraControl to allow interoperating with Camera2 APIs dynamically. ( I45cf3 )
- Renamed Camera2CameraInfo#fromCameraInfo to #from. ( Ia2bd6 )
- Added an experimental setAvailableCamerasLimiter API to CameraXConfig to allow apps to optimize the initialization latency by avoiding initializing unused cameras. ( I6cf88 )
- Added experimental method
CameraXConfig.Builder#setMinimumLoggingLevel()
to allow setting a minimum logging level for CameraX logs. When not set, it defaults 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
11 ноября 2020 г.
androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
, and androidx.camera:camera-lifecycle:1.0.0-beta12
are released. Version 1.0.0-beta12 contains these commits.
Исправления ошибок
- Disabled auto flash on Samsung A3 devices to fix the crash when taking a photo with auto flash AE mode on Samsung A3 devices. ( Ia5fe3 , b/157535165 )
- Fixed an issue where the preview was stretched on Nexus 4 devices running Android L (API levels 21 and 22). ( I4d407 , b/158749159 )
-
OnImageCapturedCallback#onCaptureSuccess
base class implementation no longer closes the image. This is for preventing unexpected behavior to developers. Developers should not rely on super.onCaptureSuccess to close the image. ( Ifbf9c ) - The androidx variant of the Experimental annotation has been deprecated to provide parity with Kotlin. It has been replaced by the RequiresOptIn annotation, and the Java-facing linter has been updated to support both the new Kotlin annotation and the new androidx variant. ( I52495 , b/151331381 )
Camera-Camera2 Version 1.0.0-beta11
14 октября 2020 г.
androidx.camera:camera-camera2:1.0.0-beta11
is released. Version 1.0.0-beta11 contains these commits.
Новые функции
- Supports android 11
CONTROL_ZOOM_RATIO
API for zoom on android 11 or later devices which contains 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
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
23 сентября 2020 г.
androidx.camera:camera-core:1.0.0-beta10
is released. Version 1.0.0-beta10 contains these commits.
Исправления ошибок
- Fix bug in validating file save destination for image capture ( I8c565 , b/167697553 )
Camera-Camera2 Version 1.0.0-beta10
23 сентября 2020 г.
androidx.camera:camera-camera2:1.0.0-beta10
is released. Version 1.0.0-beta10 contains these commits.
Исправления ошибок
- Release to support Camera-Core 1.0.0-beta10
Camera-Camera2 Version 1.0.0-beta09
16 сентября 2020 г.
androidx.camera:camera-camera2:1.0.0-beta09
is released. Version 1.0.0-beta09 contains these commits.
Изменения API
- Instead of providing static methods, Camera2CameraInfo takes in a CameraInfo instance when created to retrieve Camera2 related information from. ( I5b844 )
Исправления ошибок
- Fixed target aspect ratio issue on tablet devices. A 16:9 size should be selected when the target aspect ratio is set as
AspectRatio.RATIO_16_9
. ( Ib7fcf , b/151969438 ) - Throw an
InitializationException
to make the app be able to gracefully handle the AssertionError happened when creating CameraCharacteristics. ( I89c8c , b/160524721 ) - Added experimental interfaces for ExposureCompensation ( If96c7 )
Camera-Core Version 1.0.0-beta09
16 сентября 2020 г.
androidx.camera:camera-core:1.0.0-beta09
is released. Version 1.0.0-beta09 contains these commits.
Изменения API
- fixed the bug where viewport is marked as non-null on UseCaseGroup. Developers should be able to create a viewport without setting a viewport. ( Ie3d2e )
- Added experimental interfaces for
ExposureCompensation
( If96c7 ) - Allow arbitrary target rotation for Preview. The transformation info is calculated and returned to user on-the-fly via a new
TranformationInfoListener
callback. ( I21470 )
Исправления ошибок
- Fixed the issue that flash on some devices would not turn off. It happens when the flash mode is set to
FLASH_MODE_ON
to take a picture, and is changed 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)
.
Известные проблемы
- 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
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
19 августа 2020 г.
androidx.camera:camera-core:1.0.0-beta08
is released. Version 1.0.0-beta08 contains these commits.
Изменения API
-
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
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
22 июля 2020 г.
androidx.camera:camera-core:1.0.0-beta07
is released. Version 1.0.0-beta07 contains these commits.
Изменения API
- Merge
FIT_CENTER
,FIT_START
, 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
- Added experimental interfaces for filtering cameras by camera ID and CameraCharacteristics. ( I28f61 )
Исправления ошибок
- Fixed the issue where startFocusAndMetering fails to focus successfully on Samsung Galaxy S7. ( If3be7 , b/159039233 )
- Fix the camera can't be closed after quit the app. ( I7a7b3 )
- Fix repeated camera switching breaks preview when using SurfaceView implementation of PreviewView ( I920ce )
-
CameraControl#startFocusAndMetering
will fail if none of the specified MeteringPoint can generate valid metering rectangles. ( Id53ce )
Camera-Core Version 1.0.0-beta06
24 июня 2020 г.
androidx.camera:camera-core:1.0.0-beta06
is released. Version 1.0.0-beta06 contains these commits.
Изменения API
- Added experimental interfaces for filtering cameras by camera ID and CameraCharacteristics. ( I28f61 )
Исправления ошибок
- CameraX can now be configured with
ProcessCameraProvider#configureInstance()
before 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
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
10 июня 2020 г.
androidx.camera:camera-core:1.0.0-beta05
is released. Version 1.0.0-beta05 contains these commits.
Изменения API
- Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An
InitializationException
contains 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
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
27 мая 2020 г.
androidx.camera:camera-core:1.0.0-beta04
is released. Version 1.0.0-beta04 contains these commits.
Изменения API
- Adds an experimental API,
CameraXConfig.Builder#setSchedulerHandler()
for setting the handler used internally by the CameraX camera stack. This new API along 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
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
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
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
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
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
26 февраля 2020 г.
androidx.camera:camera-core:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
Изменения API
- 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
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
10 февраля 2020 г.
androidx.camera:camera-core:1.0.0-alpha10
is released. Version 1.0.0-alpha10 contains these commits .
Изменения API
- Updated
ImageCapture
to allow saving images 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
22 января 2020 г.
androidx.camera:camera-camera2:1.0.0-alpha09
is released. Version 1.0.0-alpha09 contains these commits .
Изменения API
Add camera2 interop path for extracting a Camera2 camera ID. You can extract the camera ID from
CameraInfo
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
22 января 2020 г.
androidx.camera:camera-core:1.0.0-alpha09
is released. Version 1.0.0-alpha09 contains these commits .
Изменения API
- 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 .
Известные проблемы
- Not all Camera2 capture request options work when using the Camera2 interop. If the requested option is not supported, the session fails to start and an error like this may occur:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
Исправления ошибок
- Fixed an issue in which a preview black screen occurred after rotating or switching the camera for API Levels 21 and 22.
Изменения API
- Experimental : Added a camera2 interop path for extracting the Camera ID.
Camera-Core Version 1.0.0-alpha08
18 декабря 2019 г.
androidx.camera:camera-core:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits .
Известные проблемы
- Apps using the
PreviewView
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
- 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
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
4 декабря 2019 г.
androidx.camera:camera-core:1.0.0-alpha07
is released. Version 1.0.0-alpha07 of camera-core contains these commits
Note that there are some substantial changes in this Alpha release as we prepare for Beta. We recommend you review the changes and share any feedback you may have on the CameraX Google group . For those developers using CameraX in apps that are on the Play store, we recommend waiting for the formal Beta release before upgrading the library within your applications.
Изменения API
Important : CameraX initialization has changed. Applications should implement
CameraXConfig.Provider
, and use the 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 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
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
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
2 июля 2019 г.
androidx.camera:camera-core:1.0.0-alpha03
and androidx.camera:camera-camera2:1.0.0-alpha03
are released. Version 1.0.0-alpha03 contains these commits .
Изменения API
- Added javadoc clarification for “target” in setTarget configuration calls
Camera-Core
- Fixed unconfigured Input/Output Surface crash on rapid open/close or bind/unbind
- Move to new Futures implementations
- Test fixes for more robust testing
- Core integration test now shows capture time for photos
- Developed internal compat class for Executors
- Timing test app capture images waits for previous to complete & improved stability
Расширения
- Added versioning checks
- Additional test coverage - extension event callbacks
- Improvements for internally corresponding image and meta-data
- Fixes to mode switching in test app
Camera-Camera2 and Camera-Core Version 1.0.0-alpha02
5 июня 2019 г.
androidx.camera:camera-core:1.0.0-alpha02
and androidx.camera:camera-camera2:1.0.0-alpha02
are released. Version 1.0.0-alpha02 contains these commits .
Исправления ошибок
- Fixed div by zero issue when using emulator
- Fixed NullPointerException/Surface Abandoned error occurring on some devices when quickly taking photos while unbinding and rebinding use cases rapidly.
- Fixed internal issue to ensure capture request updates affect all surfaces consistently
- Stability improvements when restarting use cases in new app instances
- Internal architecture changes to prepare for supporting executors in the API
- Additional Javadoc clarifications on CameraX class and lifecycle management
- Added instrumented testing for Antelope performance test app
- Remove need for '-keepattributes Signature' in app Proguard config
Camera-Camera2 and Camera-Core 1.0.0-alpha01
7 мая 2019 г.
androidx.camera:camera-core:1.0.0-alpha01
and androidx.camera:camera-camera2:1.0.0-alpha01
are released. Version 1.0.0-alpha01 contains these commits .
Camera-Lifecycle Version 1.0.0-beta11
14 октября 2020 г.
androidx.camera:camera-lifecycle:1.0.0-beta11
is released. Version 1.0.0-beta11 contains these commits.
Исправления ошибок
-
<UseCase>.getTargetRotation()
will 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
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
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
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
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
- 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
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
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
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
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
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
10 февраля 2020 г.
androidx.camera:camera-lifecycle:1.0.0-alpha10
is released. Version 1.0.0-alpha10 contains these commits .
Изменения API
- Added
@MainThread
annotation to BindToLifecycle, unbind and unbindAll methods. ( I990d2 )
Camera-Lifecycle Version 1.0.0-alpha03
22 января 2020 г.
androidx.camera:camera-lifecycle:1.0.0-alpha03
is released. Version 1.0.0-alpha03 contains these commits .
Обновления
- Various fixes and updates to support Camera Core & Camera2 changes.
Camera-Lifecycle Version 1.0.0-alpha02
18 декабря 2019 г.
androidx.camera:camera-lifecycle:1.0.0-alpha02
is released. Version 1.0.0-alpha02 contains these commits .
Dependency changes
- Updated to use
androidx.camera:camera-core:1.0.0-alpha08
.
Camera-Lifecycle Version 1.0.0-alpha01
4 декабря 2019 г.
androidx.camera:camera-lifecycle:1.0.0-alpha01
is released. Version 1.0.0-alpha01 of camera-lifecycle contains these commits
API notes
- The camera-lifecycle artifact is added, providing
LifeCycleCameraProvider
interface, and an implementation 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
- 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
- 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
13 октября 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha30
and androidx.camera:camera-view:1.0.0-alpha30
are released. Version 1.0.0-alpha30 contains these commits.
Изменения API
- Added @RequiresApi(21) annotation to all CameraX classes and dropped minSdkVersion from AndroidManifest.xml. This will allow camera-core to be easily integrated into applications that have a minSdkVersion less than 21, but want to conditionally use code paths that rely on API 21 and higher. For any application with minSdkVersion 21 or higher, this change requires no action. ( Ie7f2e , b/200599470 )
Исправления ошибок
- Fixed the AbstractMethodError issue which happens when proguard is enabled. ( Iae468 , b/201177844 )
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
- 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
18 августа 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha28
and androidx.camera:camera-view:1.0.0-alpha28
are released. Version 1.0.0-alpha28 contains these commits.
Изменения API
- ExperimentalUseCaseGroupLifecycle annotation is removed now that the APIs are no longer experimental. ( I17b85 )
- refactored RotationListener and renamed it to RotationProvider. It continues to provide the same feature with slightly different API. ( Idffc5 )
- rename TAP_TO_FOCUS_UNSUCCESSFUL to TAP_TO_FOCUS_NOT_FOCUSED and TAP_TO_FOCUS_SUCCESSFUL to TAP_TO_FOCUS_FOCUSED. Made OutputSize final ( I099fa )
Исправления ошибок
- Removed deprecated
<EffectName><UseCase>Extender
classes, ExtensionsErrorListener and related ExtensionsManager APIs. ( I3b8c3 )
Version 1.0.0-alpha27
21 июля 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha27
and androidx.camera:camera-view:1.0.0-alpha27
are released. Version 1.0.0-alpha27 contains these commits.
Изменения API
- Promoted the viewport API out of experimental. Remove the experimental annotation of the API. ( I717ea )
- Renamed
CoordinateTransform#getTransform
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
30 июня 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha26
and androidx.camera:camera-view:1.0.0-alpha26
are released. Version 1.0.0-alpha26 contains these commits.
Изменения API
- add a new method
CameraController#getTapToFocusState()
that exposes the latest tap-to-focus result. ( Iaccb0 ) - adding more camera-core features to CameraController: getters/setters for target aspect ratio, target resolution, capture mode, CameraControl and custom executors. ( Iea8f2 )
- add a RotationReceiver class that receives Surface rotation changes. This can be used to set the target rotation when the device is in fixed portrait/landscape mode. ( Ib278f )
- Exposed new getEstimatedCaptureLatencyRange public APIs in ExtensionsManager class. ( I6a8ec )
- Deprecated ExtensionsErrorListener. Currently, this interface is only used to monitor whether a Preview or ImageCapture is lacking when enabling extension modes. CameraX will automatically add an extra Preview or ImageCapture to make the extension functions work well. After that, no error will be reported via this interface. ( I47d9e )
- Exposed new ExtensionsManager getInstance, isExtensionAvailable and getExtensionEnabledCameraSelector public APIs and deprecated old
<EffectName><UseCase>Extender
classes and related APIs. ( I329e6 )
Version 1.0.0-alpha25
2 июня 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha25
and androidx.camera:camera-view:1.0.0-alpha25
are released. Version 1.0.0-alpha25 contains these commits.
Изменения API
- ExperimentalCameraFilter APIs are now out of experimental stage and become formal APIs. They can be used without annotated OptIn. ( I4bc94 )
- Add a utility that transforms coordinates between use cases. Example usage: transforming the coordinates detected in ImageAnalysis use case and highlight the detected object in preview. ( I63ab1 , b/137515129 )
- Removed
CameraView
.CameraView
has been replaced byCameraController
. Please see the migration guide for how to migrate.: ( Id5005 )
Исправления ошибок
- Replaced
ExperimentalUseCaseGroupLifecycle
withExperimentalUseCaseGroup
. ( I3b2ef , b/159033688 )
Version 1.0.0-alpha24
21 апреля 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha24
and androidx.camera:camera-view:1.0.0-alpha24
are released. Version 1.0.0-alpha24 contains these commits.
Исправления ошибок
- Replaced annotation
@Experimental
with@RequiresOptIn
to experimental APIs. For calling experimental APIs, 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
24 марта 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha23
and androidx.camera:camera-view:1.0.0-alpha23
are released. Version 1.0.0-alpha23 contains these commits.
Изменения API
- CameraView is being deprecated. Please use
LifecycleCameraController
instead. See the migration guide ( Idac2c ) - Added FloatRange annotation to setLinearZoom() ( I69971 )
Исправления ошибок
- Pinned camera-view dependencies to rely on 1.0.0 artifacts. Depending on camera-view will not longer cause gradle's dependency resolution to automatically upgrade camera-core, camera-camera2 and camera-lifecycle to the latest 1.1.0 artifacts, though camera-view is still compatible with those artifacts if they are explicitly set to use 1.1.0. ( Ic8fa1 , b/181599852 )
- Fixed Samsung A3 stretched preview in PreviewView. ( Iacb30 , b/180121821 )
- Fixed the issue where if camera selector cannot be set before camera is initialized. ( Ic8bd0 )
Camera Extensions & View Version 1.0.0-alpha22
24 февраля 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha22
and androidx.camera:camera-view:1.0.0-alpha22
are released. Version 1.0.0-alpha22 contains these commits.
Изменения API
- 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
16 декабря 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha20
and androidx.camera:camera-view:1.0.0-alpha20
are released. Version 1.0.0-alpha20 contains these commits.
Releasing to support other camera library artifacts.
Camera-Extensions & Camera-View Version 1.0.0-alpha19
11 ноября 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha19
and androidx.camera:camera-view:1.0.0-alpha19
are released. Version 1.0.0-alpha19 contains these commits.
Исправления ошибок
-
@ExperimentalVideo
annotation was introduced to camera-view. This annotation marks APIs which expose experimental video functionality which is subject to change as the features are fully developed. Any method using these APIs should use the@UseExperimental
annotation withExperimentalVideo
as themarkerClass
. ( I6d729 )
Camera-Extensions Version 1.0.0-alpha18
14 октября 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha18
is released. Version 1.0.0-alpha18 contains these commits.
Исправления ошибок
- Improved the latency of CameraX initialization and bindToLifecycle ( I61dc5 )
-
<UseCase>.getTargetRotation()
will 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
14 октября 2020 г.
androidx.camera:camera-view:1.0.0-alpha18
is released. Version 1.0.0-alpha18 contains these commits.
Releasing to support other camera library artifacts.
Camera-Extensions Version 1.0.0-alpha17
23 сентября 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha17
is released. Version 1.0.0-alpha17 contains these commits.
Исправления ошибок
- Release to support Camera-Core 1.0.0-beta10
Camera-View Version 1.0.0-alpha17
23 сентября 2020 г.
androidx.camera:camera-view:1.0.0-alpha17
is released. Version 1.0.0-alpha17 contains these commits.
Исправления ошибок
- Release to support Camera-Core 1.0.0-beta10
Camera-Extensions Version 1.0.0-alpha16
16 сентября 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha16
is released. Version 1.0.0-alpha16 contains these commits.
Исправления ошибок
- Added method in
ExtensionsManager
to get anExtensions
object which is used to enable and query extensions on Camera instances ( I4fb7e )
Camera-View Version 1.0.0-alpha16
16 сентября 2020 г.
androidx.camera:camera-view:1.0.0-alpha16
is released. Version 1.0.0-alpha16 contains these commits.
Изменения API
- Removed
PreviewView#setDeviceRotationForRemoteDisplayMode()
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 )
Известные проблемы
- In PreviewView,
OnClickListener#onClick()
is not invoked when the end user clicks PreviewView. The touch event is mistakenly consumed by PreviewView#onTouchEvent(). The issue will be fixed in the next release. - The MeteringPoint obtained from
PreviewView#getMeteringPointFactory()
may be wrong if ViewPort is used with PreviewView.
Camera-Extensions Version 1.0.0-alpha15
19 августа 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha15
is released. Version 1.0.0-alpha15 contains these commits.
Исправления ошибок
- The
ExtensionsManager.init()
method now takes in a Context as a parameter instead of having 0 args. ( Ife754 ) Initialization should no longer crash when using a Context that does not return an Application object from
Context.getApplicationContext()
. ( I3d3c9 , b/160817073 )Camera-View Version 1.0.0-alpha15
19 августа 2020 г.
androidx.camera:camera-view:1.0.0-alpha15
is released. Version 1.0.0-alpha15 contains these commits.
Исправления ошибок
-
DisplayOrientedMeteringPointFactory
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
22 июля 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha14
is released. Version 1.0.0-alpha14 contains these commits.
Camera-View Version 1.0.0-alpha14
22 июля 2020 г.
androidx.camera:camera-view:1.0.0-alpha14
is released. Version 1.0.0-alpha14 contains these commits.
Camera-Extensions Version 1.0.0-alpha13
24 июня 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha13
is released. Version 1.0.0-alpha13 contains these commits.
Исправления ошибок
- Added experimental interfaces for filtering cameras by camera ID and CameraCharacteristics. ( I28f61 )
Camera-View Version 1.0.0-alpha13
24 июня 2020 г.
androidx.camera:camera-view:1.0.0-alpha13
is released. Version 1.0.0-alpha13 contains these commits.
Исправления ошибок
- CameraView no longer crashes with an IllegalArgumentException when binding to a LifecycleOwner whose Lifecycle transitions to a DESTROYED state shortly after being bound. Binding Lifecycles in a DESTROYED state will not attempt to open the camera. ( I7c2b8 )
- PreviewView StreamState is now available through CameraView.getPreviewStreamState() ( I21a2b )
Camera-Extensions Version 1.0.0-alpha12
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
10 июня 2020 г.
androidx.camera:camera-view:1.0.0-alpha12
is released. Version 1.0.0-alpha12 contains these commits.
Исправления ошибок
- Add
PreviewView#getBitmap()
API which returns a Bitmap representation of the content displayed on the preview surface. ( I9b500 , b/157659818 )
Camera-Extensions Version 1.0.0-alpha11
27 мая 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha11
is released. Version 1.0.0-alpha11 contains these commits.
Camera-View Version 1.0.0-alpha12
10 июня 2020 г.
androidx.camera:camera-view:1.0.0-alpha12
is released. Version 1.0.0-alpha12 contains these commits.
Новые функции
Изменения API
Исправления ошибок
- Add
PreviewView#getBitmap()
API which returns a Bitmap representation of the content displayed on the preview surface. ( I9b500 , b/157659818 )
Camera-View Version 1.0.0-alpha11
27 мая 2020 г.
androidx.camera:camera-view:1.0.0-alpha11
is released. Version 1.0.0-alpha11 contains these commits.
Изменения API
- Add
PreviewView#getPreviewStreamState
API which allows apps to observe if preview is streaming or not. When the PreviewView is in TEXTURE_VIEW mode, the STREAMING state also guarantees the preview image is visible. ( Ic0906 , b/154652477 ) - Added
PreviewView#setDeviceRotationForRemoteDisplayMode()
API to provide device rotation for transform calculations if the application is running in remote display mode. ( I59b95 , b/153514525 )
Исправления ошибок
- Fixed the preview distortion issue on
FULL/LIMITED/LEVEL_3
cameras running android 7.0 and below. Forced 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
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
15 апреля 2020 г.
androidx.camera:camera-view:1.0.0-alpha010
is released. Version 1.0.0-alpha010 contains these commits.
Исправления ошибок
- Fixes a previous known issue where
PreviewView
's surfaceView implementation wasn't working well on certain devices, and would cause the app to crash after resuming preview. ( I5ed6b )
Camera-Extensions Version 1.0.0-alpha09
1 апреля 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha09
is released. Version 1.0.0-alpha09 contains these commits.
Исправления ошибок
- Updated to support the bug fixes in the
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
, 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.
Известные проблемы
- 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
- 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
26 февраля 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits.
Camera-View Version 1.0.0-alpha08
26 февраля 2020 г.
androidx.camera:camera-view:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits.
Исправления ошибок
- Replaced the
ListenableFuture
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
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
10 февраля 2020 г.
androidx.camera:camera-view:1.0.0-alpha07
is released. Version 1.0.0-alpha07 contains these commits .
Изменения API
-
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
22 января 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha06
is released. Version 1.0.0-alpha06 contains these commits .
Обновления
- Various fixes and updates to support Camera Core & Camera2 changes.
Camera-View Version 1.0.0-alpha06
22 января 2020 г.
androidx.camera:camera-view:1.0.0-alpha06
is released. Version 1.0.0-alpha06 contains these commits .
Обновления
- Various fixes and updates to support Camera Core & Camera2 changes.
Camera-Extensions Version 1.0.0-alpha05
18 декабря 2019 г.
androidx.camera:camera-extensions:1.0.0-alpha05
is released. Version 1.0.0-alpha05 contains these commits .
Исправления ошибок
- Updated to match the internal Camera Core APIs.
Camera-View Version 1.0.0-alpha05
18 декабря 2019 г.
androidx.camera:camera-view:1.0.0-alpha05
is released. Version 1.0.0-alpha05 contains these commits .
Известные проблемы
- The aspect ratio may be incorrect when using PreviewView ( b/146215202 ).
Новые функции
- Implemented a new class called
PreviewView.TextureViewImplementation
that syncs the SurfaceTexture's lifecycle with the camera's usage of the TextureView's surface.
Camera-Extensions Version 1.0.0-alpha04
4 декабря 2019 г.
androidx.camera:camera-extensions:1.0.0-alpha04
is released. Version 1.0.0-alpha04 of camera-extensions contains these commits
Изменения API
Checking for the availability and enabling of an extension now takes in a
CameraSelector
as an input parameter. This needs to be the 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
4 декабря 2019 г.
androidx.camera:camera-view:1.0.0-alpha04
is released. Version 1.0.0-alpha04 of camera-view contains these commits
Изменения API
- A
PreviewView
class is provided for easily displaying the output from the Preview use case in an application. PreviewView
can be included in the layout:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
provides 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
5 сентября 2019 г.
androidx.camera:camera-extensions:1.0.0-alpha02
and androidx.camera:camera-view:1.0.0-alpha02
are released. These are the commits included in camera-extensions:1.0.0-alpha02 and these are the commits included camera-view:1.0.0-alpha02 .
- Added tests to verify
PreviewImageProcessorImpl
has correctly implemented timestamps. - Fix
ExtensionTest
test failure on Nexus 5 (API level 21) and ensure preview is available.
Camera-Extensions and Camera-View Version 1.0.0-alpha01
7 августа 2019 г.
androidx.camera:camera-extensions:1.0.0-alpha01
and androidx.camera:camera-view:1.0.0-alpha01
are released. These are the commits included in camera-extensions:1.0.0-alpha01 and these are the commits included camera-view:1.0.0-alpha01
- New library for future Camera Extensions for accessing effects on supported devices. This library is a work in progress.
- New Camera View class. This library is a work in progress.