КамераX
В этой таблице перечислены все артефакты в группе androidx.camera
.
Артефакт | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
камера-камера2 | 1.3.4 | 1.4.0-rc02 | - | 1.5.0-альфа01 |
ядро камеры | 1.3.4 | 1.4.0-rc02 | - | 1.5.0-альфа01 |
эффекты камеры | - | 1.4.0-rc02 | - | 1.5.0-альфа01 |
расширения камеры | 1.3.4 | 1.4.0-rc02 | - | 1.5.0-альфа01 |
жизненный цикл камеры | 1.3.4 | 1.4.0-rc02 | - | 1.5.0-альфа01 |
камера-mlkit-vision | - | 1.4.0-rc02 | - | 1.5.0-альфа01 |
вид с камеры | 1.3.4 | 1.4.0-rc02 | - | 1.5.0-альфа01 |
камера-видоискатель | - | - | 1.3.0-бета02 | 1.4.0-альфа07 |
камера-видео | 1.3.4 | 1.4.0-rc02 | - | 1.5.0-альфа01 |
Тестирование устройства
CameraX протестирован на многих устройствах в нашей лаборатории. Чтобы просмотреть список устройств, находящихся в настоящее время в лаборатории, см. раздел Устройства, протестированные в лаборатории CameraX .
Объявление зависимостей
Чтобы добавить зависимость от CameraX, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .
Добавьте зависимости для нужных вам артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-alpha01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Котлин
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.5.0-alpha01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Дополнительную информацию см . в документации по системе отслеживания проблем .
Видоискатель камеры Compose, версия 1.0
Версия 1.0.0-альфа02
12 июня 2024 г.
Выпущен androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
. Версия 1.0.0-alpha02 содержит эти коммиты .
Версия 1.0.0-альфа01
14 мая 2024 г.
androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
выпущен. Версия 1.0.0-alpha01 содержит эти коммиты .
Новые возможности
- Новая библиотека. Эта библиотека представляет встроенный видоискатель Compose, который можно использовать с CameraX и Camera2. Компонуемый видоискатель поддерживает различные соотношения сторон и обработку сенсорных событий.
Видоискатель камеры Версия 1.4
Версия 1.4.0-альфа07
12 июня 2024 г.
Выпущены androidx.camera:camera-viewfinder:1.4.0-alpha07
и androidx.camera:camera-viewfinder-core:1.4.0-alpha07
. Версия 1.4.0-alpha07 содержит эти коммиты .
Версия 1.4.0-альфа06
14 мая 2024 г.
Выпущены androidx.camera:camera-viewfinder:1.4.0-alpha06
и androidx.camera:camera-viewfinder-core:1.4.0-alpha06
. Версия 1.4.0-alpha06 содержит эти коммиты .
Изменения API
- Переименуйте перечисления
ImplementationMode
Viewfinder
, чтобы лучше отражать базовые реализации, и добавьте фиксированные константы дляTransformationInfo.sourceRotation
. ( Ic6149 ) - Добавлен
ZoomGestureDetector.ZoomEvent
для инкапсуляции состояний жеста масштабирования. ( I84cdf )
Версия камеры 1.5
Версия 1.5.0-альфа01
4 сентября 2024 г.
Выпущен androidx.camera:camera-*:1.5.0-alpha01
. Версия 1.5.0-alpha01 содержит эти коммиты .
Изменения API
- Предоставьте API для установки настроек композиции для одновременной захвата видео с двух камер. Настройки включают в себя значение альфа для смешивания, смещение по координатам x, y, масштаб ширины и высоты окна отображения кадра камеры. Смещение, ширина и высота указаны в нормализованных координатах устройства. ( Ia2b8a )
- Представлен
CameraProvider.getCameraInfo
как формальный API. ( I901cd ) - Добавлен API
PendingRecording.withAudioEnabled(boolean initialMuted)
для управления начальным состоянием отключения звука. ( I635c3 , б/354829267 )
Исправления ошибок
- Исправлен сбой при
bindToLifecycle
с уничтоженнымLifecycleOwner
. ( I6e6d8 ) - Исправлен предварительный просмотр — черный экран на передней камере при привязке к
VideoCapture
на Motorola Edge 20 Fusion. ( I1fe88 ) - Оптимизирована конфигурация обнаружения жестов масштабирования в
PreviewView
для повышения плавности. ( I04ffc )
Версия камеры 1.4
Версия 1.4.0-rc02
18 сентября 2024 г.
Выпущен androidx.camera:camera-*:1.4.0-rc02
. Версия 1.4.0-rc02 содержит эти коммиты .
Исправления ошибок
- Исправлен сбой при
bindToLifecycle
с уничтоженнымLifecycleOwner
. ( I6e6d8 ) - Добавлена анимация видимости в
ScreenFlashView
дляScreenFlash#apply
, которая также исправляет ошибки, связанные с асинхронным изменением яркости через некоторое время. ( I37cdb ) - Улучшена плавность масштабирования за счет переопределения настроек масштабирования в платформе на поддерживаемых устройствах.
Версия 1.4.0-rc01
7 августа 2024 г.
Выпущен androidx.camera:camera-*:1.4.0-rc01
. Версия 1.4.0-rc01 содержит эти коммиты .
Новые возможности
- Добавлен экспериментальный файл
CameraInfo.getCameraInfo
для предоставления конкретной информации о камере без необходимости привязки вариантов использования к камере. ( I550d1 )
Изменения API
- Добавлены API
PreviewView.getScreenFlash
иPreviewView.setScreenFlashOverlayColor
для случаев, когдаScreenFlashView
не добавлен явно. ( I43945 )
Исправления ошибок
- Исправлены проблемы с экспозицией и цветовым оттенком, когда изображение, снятое с включенной вспышкой, при слабом освещении с привязкой к варианту использования VideoCapture. ( Ic9814 )
- Исправлена проблема, из-за которой прерывание запроса
takePicture
с включенными расширениями могло не дать результата, и следующий запросtakePicture
мог больше не работать. ( Iae78f ) - Исправлена проблема утечки памяти, возникающая при включении расширений. ( Iab276 )
- Устранена неисправность расширений CameraX на таких устройствах, как серии Pixel 7/8 и Samsung Galaxy S24. Проблема, возникшая из-за проблемы преобразования
Camera2OutputConfigImpl
в режиме выпуска, возникла после обновления AGP до 8.5.1 и включения минификации. ( I99598 , б/354824993 )
Версия 1.4.0-бета02
12 июня 2024 г.
Выпущен androidx.camera:camera-*:1.4.0-beta02
. Версия 1.4.0-beta02 содержит эти коммиты .
Изменения API
- Как и в случае с
VideoCapture
, добавьтеsetMirrorMode
для варианта использования предварительного просмотра. Он будет поддерживать включение и выключение зеркального режима для потока предварительного просмотра черезOutputConfiguration.setMirrorMode
из API 33 и выше, для более старых API он будет неактивен. ( I821f4 )
Исправления ошибок
- Исправлена проблема, из-за которой приложения не могли успешно делать снимки на Samsung Tab A8, когда
ImageCapture
выбирает 1920x1080 в комбинации «Preview
+VideoCapture
+ImageCapture
UseCase
. ( I5a463 , б/336925549 ) - Исправлена постоянная запись, которая могла не продолжать запись после переключения камеры. ( Icb0a1 )
Версия 1.4.0-бета01
14 мая 2024 г.
Выпущен androidx.camera:camera-*:1.4.0-beta01
. Версия 1.4.0-beta01 содержит эти коммиты .
Изменения API
- Добавлен
ZoomGestureDetector.ZoomEvent
для инкапсуляции состояний жеста масштабирования. ( I84cdf )
Исправления ошибок
- Исправлена ошибка, из-за которой по-прежнему при захвате и фокусировке касанием не используются значения повторяющегося запроса FPS/режима стабилизации, что может воссоздать сеанс захвата и вызвать проблемы с задержкой или зависание предварительного просмотра на некоторых устройствах. ( I7dc0b )
- Исправлена ошибка, из-за которой на некоторых устройствах нельзя было выбрать высокое разрешение, когда
CameraEffect
включен. (например, 4000x3000 на Samsung A32 5G). ( Ie3ed3 , б/337336152 ) - Исправлен сбой при съемке с помощью функции предварительного просмотра,
ImageCapture
иVideoCapture(UHD)
привязаны к Pixel 4XL API29. ( I5b288 ) - Поддержка виртуальных устройств. Контекст, переданный в
ProcessCameraProvider
сохранит идентификатор устройства, чтобы обеспечить функциональность в среде виртуальных устройств. ( I5ba48 )
Версия 1.4.0-альфа05
17 апреля 2024 г.
Выпущен androidx.camera:camera-*:1.4.0-alpha05
. Версия 1.4.0-alpha05 содержит эти коммиты .
Новые возможности
- Преобразовал
ProcessCameraProvider
в реализацию Kotlin. ( I46d4f ) - Добавлены функции приостановки
ImageCapture.takePicture
, позволяющие вызывать их идиоматическим способом Kotlin. ( I920be )
Изменения API
- Добавьте API формата вывода в
ImageCapture
и добавьте методgetSupportedOutputFormats
вImageCaptureCapabilities
для запроса возможностей устройства. Значение выходного формата по умолчанию —OUTPUT_FORMAT_JPEG
, которое захватывает изображения SDR в формате JPEG. Если устройство поддерживает Ultra HDR и для выходного формата установлено значениеOUTPUT_FORMAT_JPEG_ULTRA_HDR
, CameraX будет захватывать сжатые изображения Ultra HDR в формате JPEG/R. Формат обратно совместим с форматом SDR JPEG и поддерживает HDR-рендеринг контента. Это означает, что в старых приложениях или устройствах изображения отображаются в обычном формате JPEG; в приложениях и устройствах, которые были обновлены для полной поддержки этого формата, изображения отображаются в формате HDR. ( I5de50 ) - Добавьте
PhysicalCameraInfo
вCameraInfo
для запроса информации о физической камере и добавьте установщик/получатель идентификатора физической камеры вCameraSelector
( Ic5b90 ). - Замените
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
наImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
. Значение константы остается прежним. Это для объединения всех констант в одном месте. ( I890bb ) - Новый API
RetryPolicy
позволяет разработчикам настраивать поведение повторных попыток инициализации CameraX. ( I36dd2 ) - Включить создание объекта
ImageCaptureLatencyEstimate
для облегчения тестирования ( Iaba99 ). - Добавьте
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
. При его использованииMlKitAnalyzer
возвращает координаты в системе координат датчика камеры. ( I3ec61 ) - API метаданных открытых расширений. Новые интерфейсы
CameraExtensionsInfo
иCameraExtensionsControl
позволяют приложениям отслеживать и настраивать параметры мощности расширения. Приложения могут получить экземплярCameraExtensionsInfo
илиCameraExtensionsControl
с помощью недавно добавленных методовExtensionsManager#getCameraExtensionsInfo()
илиExtensionsManager#getCameraExtensionsControl()
. ( I28e1a ) - Добавлен
ProcessCameraProvider.awaitInstance
, который является приостанавливаемой версиейProcessCameraProvider.getInstance
( Ib22b9 ). - Добавьте API
PreviewView#getSensorToViewTransform()
. Матрица представляет собой преобразование координат датчика камеры в координатыPreviewView
. Это можно использовать для преобразования координат из одногоUseCase
в другой. Например, преобразование координат обнаруженных объектов вImageAnalysis
в наложениеPreviewView
. ( I947ab ) - Сделайте API-
camera-viewfinder-core
более универсальным, чтобы его можно было использоватьcamera-viewfinder
иcamera-viewfinder-compose
. ( I1e295 ) - Добавьте функцию
getSurface
вViewfinderSurfaceRequest
. ( I781a0 ) - Используйте
camera-viewfinder-core
вcamera-viewfinder
и объявите устаревшимиViewfinderSurfaceRequest
иCameraViewfinder
. ( I6198c ) - Добавлен
ZoomGestureDetector
, который интерпретирует жесты масштабирования, специально настроенные для масштабирования. ( Ифаффбф )
Исправления ошибок
- Исправлена проблема выбора разрешения
ImageAnalysis
, связанная с настройкой целевого разрешения анализатора по умолчанию: целевое разрешение неправильно сохранялось как 640x480, даже если приложения установили другую настройку разрешения анализатора по умолчанию. Если приложения сталкиваются с этой проблемой (1.3.0 ~ 1.3.2) и не могут выполнить обновление для использования более новых выпусков версий, содержащих решение, непосредственная установкаResolutionSelector
с предпочтительным разрешением и соответствующейAspectRatioStrategy
дляUseCase
ImageAnalysis
может обойти эту проблему. . ( I81f72 , б/330091012 ) - Исправлена проблема, из-за которой запрос
takePicture
в очереди мог не выполниться, если текущий запрос не выполнен. ( Ie0801 ) - Сделайте проверку недействительных данных JPEG примененной к устройствам Vivo X60 и X60 Pro. Это может решить проблему с аномально большим изображением на этих устройствах. ( I82247 , б / 288828159 )
- Исправлена проблема с неправильными метаданными изображения JPEG на устройствах Samsung A24. Благодаря исправлению CameraX может успешно сохранять изображение JPEG или возвращать правильные растровые объекты при вызове функции
ImageProxy.toBitmap()
на устройствах Samsung A24. ( I8d6eb , б/309005680 ) - Сделайте проверку недействительных данных JPEG применимой ко всем устройствам Samsung, если размер захваченного изображения превышает 10 МБ. Это может решить аномально большую проблему с iamge на устройствах Samsung. ( Ic2a65 , б/288828159 )
- Удалена поддержка
ImageAnalysis
в расширениях CameraX, поскольку реализации расширений многих OEM-производителей плохо работают сImageAnalysis
и могут вызывать противоречивые проблемы. ( I2d926 )
Версия 1.4.0-альфа04
24 января 2024 г.
Выпущен androidx.camera:camera-*:1.4.0-alpha04
. Версия 1.4.0-alpha04 содержит эти коммиты.
Новые возможности
- Новый артефакт: camera-effects: библиотека для применения эффектов в реальном времени к выходным данным CameraX, включая
Preview
,VideoCapture
и/илиImageCapture
. Этот артефакт содержит реализации OpenGL APICameraEffect
, которые эффективно управляют выводом камеры. -
OverlayEffect
: для рисования наложений с помощью Android Canvas API. Это позволяет приложению наносить водяной знак или выделять обнаруженные объекты на выходах камеры. - API-интерфейсы
DynamicRange
для варианта использования предварительного просмотра: динамический диапазон теперь можно установить для варианта использования предварительного просмотра независимо от варианта использования видео. Это позволяет использовать динамические диапазоны HDR, такие как HLG10, только для предварительного просмотра. ВCameraInfo
также доступны новые API-интерфейсы для запроса того, какие динамические диапазоны поддерживает каждая камера.
Изменения API
-
ScreenFlashUiCompleter
переименован вScreenFlashListener
и перемещенScreenFlashUiCompleter#getExpirationTimeMillis
в параметрexpirationTimeMillis
ScreenFlash#apply
. ( I13944 ) - Добавлены новые API, позволяющие устанавливать динамический диапазон в сценарии использования «Предварительный просмотр» и запрашивать динамические диапазоны, поддерживаемые каждой камерой. Это позволяет использовать динамические диапазоны HDR, такие как HLG10, только в сценарии предварительного просмотра, больше не требуя одновременной привязки
VideoCapture
. ( Если25е3 ) -
getMirroring()
переименован вisMirroring()
( I47063 ). - Добавлена поддержка оценки задержки захвата в реальном времени в CameraX. Расширения камеры позволяют приложениям использовать API, который позволяет оценить, сколько времени займет захват. Оценка учитывает текущие условия окружающей среды, состояние камеры и включает время, затраченное на обработку запросов на многокадровый захват, а также любое дополнительное время на кодирование обработанных буферов, если это необходимо. ( I05c3a )
-
ScreenFlashUiControl
переименован вScreenFlash
,ScreenFlashUiControl#applyScreenFlashUi
вScreenFlash#apply
,ScreenFlashUiControl#clearScreenFlashUi
вScreenFlash#clear
и добавлен методgetScreenFlashUiApplyTimeoutSeconds
вместо прямого предоставленияSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
. ( Iccdd0 )
Исправления ошибок
- Исправлена утечка памяти, из-за которой действия или фрагменты не освобождались при включении расширений ( I14215 ).
- Исправлена проблема, из-за которой
getZoomRatio
неправильно возвращал уменьшенное значение при применении увеличения коэффициента масштабирования. ( I4aa0d , б/317543616 ) - Событие
ImageCapture#ScreenFlash#clear
вызывается немедленно, когдаImageCapture
отсоединяется или закрывается камера, а также исправляет некоторые ошибки, из-за которых оно никогда не вызывается из-за того, что захваты в этих сценариях не выполняются должным образом. ( Если99f9 ) - Исправлен сбой, который происходил, когда жизненный цикл останавливался до завершения запроса
takePicture
( Idf017 , b/306202751 ). - Исправлена проблема, из-за которой предварительный просмотр камеры становился черным, когда на некоторых устройствах включены расширения ( I1ffd0 ).
- Исправлена некорректная продолжительность записи видео на устройствах, использующих SoC Snapdragon 778G. ( If6aa7 , b/316057919 )
Версия 1.4.0-альфа03
13 декабря 2023 г.
Выпущен androidx.camera:camera-*:1.4.0-alpha03
. Версия 1.4.0-alpha03 содержит эти коммиты.
Новые возможности
- Добавлен
CameraInfo.mustPlayShutterSound
для предоставления информации о том, должен ли воспроизводиться звук затвора в соответствии с региональными ограничениями. ( Ифда84 ) - Добавлены
OnImageCapturedCallback.onCaptureStarted
иOnImageSavedCallback.onCaptureStarted
для уведомления, когда камера начала экспонировать кадр. На этом этапе рекомендуется воспроизвести звук затвора или анимацию затвора. ( Ic49b3 ) - В CameraX добавлена поддержка функции Screen Flash для захвата изображения с передней камеры. CameraX позаботится об обработке API на стороне платформы и синхронизирует время с изменениями пользовательского интерфейса приложения по мере необходимости (например, запуск предварительного захвата AE после изменения цвета/яркости экрана приложения). Приложениям потребуется только добавить свои реализации пользовательского интерфейса в интерфейс
ScreenFlashUiControl
предоставляемый CameraX. ( I8ae84 ) - Добавлена поддержка реализации функции Screen Flash на стороне пользовательского интерфейса в CameraX. Приложения смогут получить базовую реализацию
ImageCapture.ScreenFlashUiControl
изPreviewView
или недавно добавленногоScreenFlashView
, который добавит моноцветное наложение и максимизирует яркость экрана во время захвата фотографий со вспышкой. ( I1810e )
Изменения API
- Поддерживает новые функции расширений (постпросмотр и процесс захвата): добавлены API-интерфейсы
ImageCapture#getImageCaptureCapabilities()
для приложений, позволяющие запрашивать возможности постпросмотра и обратного вызова хода процесса захвата. Приложения могут включить постпросмотр с помощьюImageCapture.Builder#setPostviewEnabled()
. Размер постпросмотра можно выбрать с помощьюImageCapture.Builder#setPostviewResolutionSelector()
. При вызовеtakePicture()
onPostviewBitmapAvailable
иonCaptureProcessProgressed
могут быть реализованы вOnImageSavedCallback
илиOnImageCapturedCallback
чтобы получить уведомление о постпросмотре и ходе обработки, если оно поддерживается. ( I5cd88 ) - API для расчета координат, преобразования из датчика в текущий буфер с флагом, указывающим, содержит ли поверхность информацию об ориентации камеры. ( I59096 )
- Предоставьте API для запроса
PreviewCapabitlity
в PreviewUseCase
. ( Ie5b6c ) - Добавлены API для поддержки большего количества качеств
VideoCapture
.Recorder.Builder#setVideoCapabilitiesSource(int)
можно использовать сVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
для создания экземпляраRecorder
, который поддерживает больше качеств, чемVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
. Распространенный случай использования — когда приложение пытается записывать видео UHD, когда это возможно, ноCamcorderProfile
устройства не включает настройки UHD, даже если кодек способен записывать видео UHD. ( Иедбе2 , б/263961771 ) - Добавьте метод получения/установки выходного формата
ImageAnalysis
вCameraController
. ( I9a96c , б/308240643 )
Исправления ошибок
- Из камеры
1.3.1
: улучшена производительностьProcessCameraProvider#bindToLifecycle()
. Основное изменение заключается в оптимизации процесса определения наиболее подходящих комбинаций размеров дляUseCases
. Оптимальные результаты варьируются в зависимости от конкретных комбинацийUseCase
и количества поддерживаемых выходных размеров для целевых устройств. ( I454f2 ) - Разрешить использование
VideoCapture
, когда расширения включены. ( I91f32 ) - Исправлена проблема с большим захваченным изображением JPEG на устройствах серий Samsung A71 и M51. Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют слишком большой размер файла. Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I01afc , б/288828159 )
- Отключите поддержку
ImageAnalysis
на пикселях, чтобы избежать ошибки на пикселях, из-за которой случайно возвращаются непустые поддерживаемые размерыImageAnalysis
. ( I7ec31 ) - Исправлена проблема с производительностью, из-за которой загрузка процессора и энергопотребление увеличивались при включении расширений. ( Ibdccb )
- В
CameraUseInconsistentTimebaseQuirk
добавлен Snapdragon 480. Это устраняет проблему в Android 12 для устройств, использующих этот набор микросхем, из-за которой звук в записях компенсируется количеством времени, в течение которого устройство находится в приостановленном состоянии. ( I58010 )
Версия 1.4.0-альфа02
18 октября 2023 г.
Выпущен androidx.camera:camera-*:1.4.0-alpha02
. Версия 1.4.0-alpha02 содержит эти коммиты.
Изменения API
- Переименуйте API в
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
и переименуйте аргумент. ( I72370 ) - Добавление API для запроса возможностей устройства и включения стабилизации видео/предварительного просмотра. ( I87544 )
- Предоставьте API для настройки максимального времени ожидания повторной попытки открытия камеры. ( I0c642 )
- Выпущен
ProcessCameraProvider.shutdownAsync
в качестве общедоступного API тестирования, позволяющего использовать поставщика камеры процесса в наборах тестов, которым может потребоваться инициализировать CameraX различными способами между тестами. ( I9eca7 ) - Добавьте API для настройки динамического диапазона захвата видео, частоты кадров и режима зеркалирования. ( Ifb8f7 )
- Устаревший
OutputSize
и замените его наResolutionSelector
.ResolutionSelector
— это более комплексный способ выбора разрешения, который соответствует API ядра камеры. ( И93абд , б/286801438 )
Исправления ошибок
- Исправлена проблема с предварительным просмотром черного цвета на Samsung Galaxy S23 Ultra 5G, когда расширения «Боке» или «Ретуширование лица» включены с помощью
ImageAnalysis
на задней камере. ( I2e8b1 ) - Исправлены проблемы с растягиванием предварительного просмотра и
VideoCapture
на Moto E5 Play. ( 73dce2 )
Версия 1.4.0-альфа01
20 сентября 2023 г.
Выпущен androidx.camera:camera-*:1.4.0-alpha01
. Версия 1.4.0-alpha01 содержит эти коммиты.
Изменения API
- Добавьте новый API для доступа к информации об амплитуде звука во время записи. ( Ид4925 )
Исправления ошибок
- Повысьте стабильность расширений, гарантируя, что события инициализации и деинициализации запускаются в правильном порядке. ( Ib3b8e )
- Исправлен сбой конфигурации сеанса захвата из-за превышения поддерживаемой комбинации поверхностей из-за внутреннего добавления дополнительной повторяющейся поверхности. ( Id718c )
- Исправлена проблема с большим захваченным изображением JPEG на устройстве Vivo S16. Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют большой размер файла. Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I79505 , б / 299069235 )
- Исправлена проблема, из-за которой
ImageAnalysis
нельзя было связать сImageCapture
и Preview, когда на некоторых устройствах включены некоторые режимы расширения. Исправление вернет правильное значение, когда приложения запрашивают доступностьImageAnalysis
черезExtensionsManager#isImageAnalysisSupported()
. ( I7d538 ) - Обновите JavaDoc, чтобы оно соответствовало поведению. Вместо немедленного завершения
#setZoomRatio
,#setLinearZoom
и#enableTorch
ждут, пока камера не будет готова. Также добавлена информация о том, как получить максимальное поле зрения с помощью API#takePicture
. ( I23588 )
Версия 1.3
Версия 1.3.4
12 июня 2024 г.
Выпущен androidx.camera:camera-*:1.3.4
. Версия 1.3.4 содержит эти коммиты .
Исправления ошибок
- Исправлена проблема, из-за которой
getZoomRatio
неправильно возвращал уменьшенное значение при применении увеличения коэффициента масштабирования. ( I4aa0d , б/317543616 ) - Исправлена ошибка, из-за которой при захвате изображения/нажатии для фокусировки не использовались значения повторяющегося запроса FPS/режима стабилизации, что могло повторно создать сеанс захвата и вызвать проблемы с задержкой или зависание предварительного просмотра на некоторых устройствах. ( I7dc0b )
- Исправлена проблема, из-за которой частота кадров устанавливалась на более низкое значение при вызове
setTargetFrameRate
сFRAME_RATE_RANGE_UNSPECIFIED
. ( I78c61 )
Версия 1.3.3
17 апреля 2024 г.
Выпущен androidx.camera:camera-*:1.3.3
. Версия 1.3.3 содержит эти коммиты .
Исправления ошибок
- Исправлена проблема выбора разрешения
ImageAnalysis
, связанная с настройкой целевого разрешения анализатора по умолчанию: целевое разрешение неправильно сохранялось как 640x480, даже если приложения установили другую настройку разрешения анализатора по умолчанию. Если приложения сталкиваются с этой проблемой (1.3.0 ~ 1.3.2) и не могут выполнить обновление для использования более новых выпусков версий, содержащих решение, непосредственная установкаResolutionSelector
с предпочтительным разрешением и соответствующейAspectRatioStrategy
для варианта использованияImageAnalysis
может обойти эту проблему. . ( I81f72 , б/330091012 )
Версия 1.3.2
6 марта 2024 г.
Выпущен androidx.camera:camera-*:1.3.2
. Версия 1.3.2 содержит эти коммиты .
Исправления ошибок
- Исправлена проблема с метаданными JPEG на устройствах Samsung A24. CameraX теперь точно сохраняет изображения, а функция
ImageProxy.toBitmap()
возвращает правильные растровые объекты. ( I8d6eb , б/309005680 ) - Удалена опция разрешения 9280x6944 на устройствах Redmi Note 9 Pro из-за проблем. ( Ia23da )
Версия 1.3.1
13 декабря 2023 г.
Выпущен androidx.camera:camera-*:1.3.1
. Версия 1.3.1 содержит эти коммиты.
Исправления ошибок
Улучшена производительность ProcessCameraProvider#bindToLifecycle()
. Основное изменение заключается в оптимизации процесса определения наиболее подходящих комбинаций размеров для UseCases
. Оптимальные результаты варьируются в зависимости от конкретных комбинаций UseCase
и количества поддерживаемых выходных размеров для целевых устройств. ( I454f2 )
Вот некоторые справочные результаты для различных сценариев:
Четыре
UseCases
:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: примерно от 430 до 60 мс.
- Samsung Galaxy S23 Ultra: примерно от 540 до 45 мс.
- Samsung A53 5G: примерно от 115 до 70 мс
Три
UseCases
:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: примерно от 9 до 7 мс.
- Samsung Galaxy S23 Ultra: примерно от 6 до 5 мс.
- Samsung A53 5G: примерно от 32 до 12 мс
В
CameraUseInconsistentTimebaseQuirk
добавлен Snapdragon 480. Это устраняет проблему в Android 12 для устройств, использующих этот набор микросхем, из-за которой звук в записях компенсируется количеством времени, в течение которого устройство находится в приостановленном состоянии. ( I58010 )
Версия 1.3.0
18 октября 2023 г.
Выпущен androidx.camera:camera-*:1.3.0
. Версия 1.3.0 содержит эти коммиты.
Важные изменения с версии 1.2.0
- Функции видео, включая 10-битный HDR , обрезку , зеркальное/незеркальное отображение , отключение/включение звука , установку частоты кадров и многое другое.
- Двойная одновременная камера
- Библиотека эффектов
- Выбор разрешения
- Выбор сверхширокоугольных и телескопических камер
- Переключение камеры во время записи видео (экспериментальная функция)
Версия 1.3.0-rc02
20 сентября 2023 г.
Выпущен androidx.camera:camera-*:1.3.0-rc02
. Версия 1.3.0-rc02 содержит эти коммиты.
Исправления ошибок
- Повысьте стабильность расширений, гарантируя, что события инициализации и деинициализации запускаются в правильном порядке. Исправлены некоторые проблемы с предпросмотром черного цвета при переключении режимов расширений или переключении камер. ( Иддаак )
- Исправлена проблема, из-за которой
ImageAnalysis
нельзя было связать сImageCapture
и Preview, когда на некоторых устройствах включены некоторые режимы расширения. Исправление вернет правильное значение, когда приложения запрашивают доступностьImageAnalysis
черезExtensionsManager#isImageAnalysisSupported()
. ( I7d538 ) - Исправлена проблема, из-за которой записанное видео, аудио и видео не синхронизировались при включении режима зеркального отображения на Xiaomi Poco X3 NFC. ( I20b4c )
Версия 1.3.0-rc01
23 августа 2023 г.
Выпущен androidx.camera:camera-*:1.3.0-rc01
. Версия 1.3.0-rc01 содержит эти коммиты.
Изменения API
- Добавлен
PendingRecording.asPersistentRecording
, позволяющий непрерывно записывать запись, покаVideoCapture
к которому подключено ее записывающее устройство, восстанавливается. ( I517c6 )
Исправления ошибок
- Исправлен сбой, когда поток используется как для
VideoCapture
, так и для предварительного просмотра. Также исправлен черный экран на устройствах LEGACY, когда включен общий доступ к потоку. - Исправлена проблема с большим захваченным изображением JPEG на устройствах серии Samsung S7 (SM-G930T, SM-G930V). Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют большой размер файла. Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I407b0 , б/288828159 )
- Исправлена проблема с большим захваченным изображением JPEG на устройствах серий Samsung S22 (SM-S901B, SM-S901B/DS) и S22+ (SM-S906B). Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют большой размер файла, около 13 МБ на устройстве S22 SM-S901B/DS. Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I73be9 , б/288828159 )
- Исправлена проблема с большим захваченным изображением JPEG на устройствах серий Samsung A5, A52, A70 и A72. Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют слишком большой размер файла (например, около 32 МБ или даже 96 МБ). Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I97c4d , б/288828159 )
- Исправлен сбой при съемке с включенными расширениями ( I698f5 ).
Версия 1.3.0-beta02
26 июля 2023 г.
Выпущен androidx.camera:camera-*:1.3.0-beta02
. Версия 1.3.0-beta02 содержит эти коммиты.
Исправления ошибок
- Используйте фонарик в качестве вспышки для вариантов Pixel 4 и 5, чтобы улучшить качество съемки при слабом освещении ( I56ff5 , b/280221967 )
- Исправлена проблема с большим захваченным изображением JPEG на устройствах серии Samsung A5 (2017). Захваченные изображения JPEG содержат избыточные данные заполнения нулями в сегменте сжатых данных JFIF. Это приводит к тому, что захваченные изображения имеют размер файла около 32 МБ. Эти избыточные данные заполнения нулями будут удалены, чтобы захваченные изображения имели нормальный размер файла изображения. ( I29837 , б / 288828159 )
- Исправлена ошибка, из-за которой повторная попытка не запускалась должным образом в случае сбоя захвата на проблемных устройствах, упомянутых в
CaptureFailedRetryQuirk
. ( I7b589 )
Версия 1.3.0-бета01
21 июня 2023 г.
Выпущен androidx.camera:camera-*:1.3.0-beta01
. Версия 1.3.0-beta01 содержит эти коммиты.
Изменения API
- Имя функции
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
переименовано вsetAllowedResolutionMode
, а константыResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
переименованы вPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
. ( Если84e8 ) - Удалены устаревшие API
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
иVideoCapture.setTargetRotationDegrees(int)
. ( ID8e77 ) - Класс
DynamicRange
представляет динамический диапазон изображений. Это можно использовать для выбора форматов расширенного динамического диапазона в качестве выходных данныхVideoCapture
с помощьюVideoCapture.Builder#setDynamicRange()
. ( Ib0377 ) - В
ExtensionsManager
добавлен API-интерфейсisImageAnalysisSupported
, с помощью которого приложения могут определять, можно ли связать вариант использованияImageAnalysis
вместе с предварительным просмотром иImageCapture
, когда расширения включены. ( I1bc63 ) - Новый класс
VideoCapabilities
, полученный изRecorder
можно использовать для запроса поддерживаемых динамических диапазонов и качества записи видео на устройстве. МетодыgetSupportedQualities()
иisQualitySupported()
классаQualitySelector
устарели. Вместо этого используйте методыgetSupportedQualities()
иisQualitySupported()
VideoCapabilities
. ( I04014 ) -
CameraController#setVideoCaptureTargetQuality()
переименован вsetVideoCaptureQualitySelector
и принимает аргументQualitySelector
, что обеспечивает большую гибкость в настройке качества видео.CameraController#getVideoCaptureTargetQuality()
соответственно изменен наgetVideoCaptureQualitySelector
. ( I520ed ) - Удалена экспериментальная аннотация для функций видео. Функции видео теперь стабильны. ( I1a113 )
Исправления ошибок
- Используйте фонарик в качестве вспышки на моделях Samsung SM-A320, чтобы повысить скорость и качество получаемых изображений при слабом освещении. ( I6a022 , б/286190938 )
- Добавьте поддержку формата
ImageFormat.JPEG
дляImageProxy.toBitmap()
. Если массив байтов JPEG не может быть декодирован, будет выдано исключениеUnsupportedOperationException
. ( I81958 , б / 282057603 )
Версия 1.3.0-альфа07
24 мая 2023 г.
Выпущен androidx.camera:camera-*:1.3.0-alpha07
. Версия 1.3.0-alpha07 содержит эти коммиты.
Новые возможности
- Новый API
VideoCapture.Builder# setTargetFrameRate(Range)
позволяет захватывать видеозаписи с другой частотой кадров, помимо частоты кадров, установленной устройством по умолчанию. Доступную частоту кадров для записей можно запросить через новый APICameraInfo#getSupportedFrameRates()
.
Изменения API
- Константы
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
переименованы вALLOWED_RESOLUTIONS_NORMAL
/SLOW
, а имя функции компоновщикаsetHighResolutionEnabledFlag
переименовано вsetAllowedResolutionMode
. ( Iae817 ) -
CameraInfo#getSupportedFrameRateRanges()
теперь возвращаетSet
а неList
, чтобы лучше представить, что диапазоны неупорядочены. ( I02f43 ) - Добавьте прослушиватель ошибок в
CameraEffect
для обработки неисправимых ошибок ( Ice471 ). - Добавьте общедоступный конструктор в
ResolutionInfo
для лучшей тестируемости ( If6d1c ). - Предоставлен API
UseCase.snapToSurfaceRotation(int)
для замены использованияsetTargetRotationDegrees
и прекращения поддержки APIImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
иVideoCapture.setTargetRotationDegrees(int)
. ( Я9010 ) - Добавлены новые API
Preview#getTargetFrameRate
иPreview.Builder#setTargetFrameRate
позволяющие устанавливать и получать целевую частоту кадров для варианта использования предварительного просмотра ( If4f22 ). -
VideoRecordEvent.Finalize
теперь будет завершаться с кодом ошибкиERROR_RECORDING_GARBAGE_COLLECTED
, когда объектRecording
остановлен из-за сборки мусора. ( Iba974 )
Исправления ошибок
- Исправлено исключение
NullPointerException
, когда размеры кэшированных выходных данных вStreamConfigurationMapCompat
имеют значение NULL. ( Idf124 , б/282025204 ) - Исправлена проблема, из-за которой
Preview.setSurfaceProvider(null)
не приостанавливал предварительный просмотр в расширениях ( Ia903e ). - Исправлена проблема, из-за которой исключение
ConcurrentModificationException
выдавалось при открытии камеры, когда привязаноVideoCapture
. ( Ic8ac4 )
Версия 1.3.0-альфа06
19 апреля 2023 г.
Выпущен androidx.camera:camera-*:1.3.0-alpha06
. Версия 1.3.0-alpha06 содержит эти коммиты.
Новые возможности
- Параллельная камера — это новая функция, представленная в Android 11, которая поддерживает одновременную потоковую передачу с устройств камеры, например, она позволяет устройству одновременно работать как переднюю, так и заднюю камеры. В настоящее время CameraX поддерживает только две одновременные камеры, что позволяет двум камерам работать одновременно, причем для каждой привязано не более двух {@link UseCase}. Максимальное разрешение — 720p или 1440p, более подробную информацию можно найти по следующей ссылке: CameraManager#getConcurrentCameraIds().
- Представляем новый API
ResolutionSelector
, который охватывает следующие функции:- Приложения могут указать соотношение сторон и стратегии разрешения, чтобы выбрать лучшее разрешение для своих нужд.
- Все размеры и параметры соотношения сторон выражаются в координатах датчика устройства камеры.
- Приложения могут реализовать собственный фильтр разрешения, чтобы расположить поддерживаемые размеры в желаемом порядке.
- Приложения также могут включать захват с высоким разрешением для получения изображений с более высоким разрешением. Однако учтите, что использование высокого разрешения может привести к увеличению времени захвата.
- Добавлены API-интерфейсы зеркалирования
VideoCapture
. Видео, записанные с помощьюVideoCapture
по умолчанию не зеркалируются. Однако предварительный просмотр камеры по умолчанию отображается на передней камере. API-интерфейсы зеркалированияVideoCapture
позволяют согласовывать предварительный просмотр с камеры при использовании передней камеры. Существует триMirrorMode
:OFF
,ON
иON_FRONT_ONLY
. Для согласования с предварительным просмотром камеры рекомендуется использоватьON_FRONT_ONLY
, что означает, что зеркальное отображение не включено для задней камеры, но включено для передней камеры.
Изменения API
- Представлен новый API-интерфейс
ResolutionSelector
. Приложения могут указывать соотношение сторон и стратегии разрешения с помощью резервных правил или настраиваемого фильтра разрешения для получения желаемых результатов. Приложения могут указать флаг для включения захвата с высоким разрешением. Это позволит CameraX выбирать более высокое разрешение при съемке фотографий или видео. Однако учтите, что использование высокого разрешения может привести к увеличению времени захвата. ( Ибед95 ) - Диапазоны FPS, поддерживаемые алгоритмом AE, теперь можно запросить с помощью
CameraInfo#getSupportedFrameRateRanges()
. ( Iaa67f ) - Объедините имена всех методов частоты кадров, используя «FrameRate». Исправьте ошибку javadoc в
VideoCapture#getTargetFrameRate()
( I83304 ). - Устаревшие API
setTargetAspectRatio
иsetTargetResolution
устарели. Вместо этого используйте новый 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 , б/194634656 ) - Добавьте API
setTargetFrameRate()
вVideoCapture.Builder
и APIgetTargetFramerate()
вVideoCapture
( I109d4 ). - Сделайте расширение
SurfaceOutput
Closable и скройте открытый конструктор SurfaceOutput.Event
. ( I60ea8 ) - Добавлен
Recording.mute
для динамического отключения или включения звука обрабатываемой записи.RecordingStats
будет содержатьAudioStats.AUDIO_STATE_MUTED
если звук обрабатываемой записи явно отключен. ( Ie17fc ) - Параметр
#setEffects()
стал ненулевым. Добавьте API#clearEffects()
для очистки эффектов. Приложение должно вызвать#clearEffects()
для удаления эффектов. ( I4b4d9 ) - Добавьте второй конструктор для
ViewfinderSurfaceRequest.Builder
, чтобы взять построитель для конструктора копирования ( I621a7 ).
Исправления ошибок
- Исправлена проблема, из-за которой приложения, вызывающие API расширений, могли аварийно завершить работу при закрытии камеры ( Ib27e5 ).
- Исправлена проблема, из-за которой
VideoCapture
не могла работать с передней камерой на некоторых устройствах. Например, на Samsung Galaxy S23 и Xiaomi 2107113SG. ( Ibec7e , б/270656244 ) - Исправлена проблема, из-за которой фотосъемка с использованием файла в общей папке внешнего хранилища всегда завершалась сбоем в Android 10 или более поздних версиях. Обратите внимание, что в Android 10 для съемки с использованием файла в общей папке внешнего хранилища также необходимо установить для
requestLegacyExternalStorage
значение true в теге приложения. ( I11b2c ) - Исправлен сбой
RejectedExecutionException
вDefaultSurfaceProcessor
. Сбой может произойти, еслиVideoCapture
привязан и действие приостановлено. ( Idb46a , b/273713906 )
Версия 1.3.0-альфа05
22 марта 2023 г.
Выпущен androidx.camera:camera-*:1.3.0-alpha05
. Версия 1.3.0-alpha05 содержит эти коммиты.
Изменения API
- Добавлены API вращения
VideoCapture
, включаяVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
иVideoCapture.getTargetRotation()
. API-интерфейсы полезны для приложений, которые блокируют ориентацию устройства. Также добавляютсяImageCapture.setTargetRotationDegrees(int)
иImageAnalysis.setTargetRotationDegrees(int)
. ( Id3ffe , б/205242781 ) - Разрешите
VIDEO_CAPTURE
иPREVIEW|VIDEO_CAPTURE
в качестве цели эффектов. Эффекты, нацеленные наVIDEO_CAPTURE
будут применены к варианту использованияVideoCapture
; Эффекты, предназначенные дляPREVIEW|VIDEO_CAPTURE
будут применены к общему потоку перед копированием в поток предварительного просмотра иVideoCapture
. ( Iee6f3 )
Исправления ошибок
- Из камеры
1.2.2
: исправлена проблема, из-за которой расширения CameraX не работали должным образом, когда proguard включен на некоторых устройствах, таких как Pixel ( I90aa2 ). - Исправлена ошибка
PreviewView
, из-за которой приложение само обрабатывало ориентацию экрана. предварительный просмотр может исказиться при вращении. Это происходит только на определенных устройствах. Его можно воспроизвести на Pixel a4, Pixel 5 и Pixel 6a. ( I14340 , б / 223488673 )
Версия 1.3.0-альфа04
22 февраля 2023 г.
Выпущен androidx.camera:camera-*:1.3.0-alpha04
. Версия 1.3.0-alpha04 содержит эти коммиты.
Новые возможности
Новая функция для поддержки ранее не поддерживаемых комбинаций Surface путем совместного использования одного потока для нескольких вариантов использования.
- Ранее при привязке «Preview, VideoCapture, ImageAnalysis» на аппаратном уровне камеры FULL и ниже или привязке «Preview, VideoCapture, ImageCapture» на аппаратном уровне LEGACY CameraX выдавало
IllegalArgumentException
. - Новое поведение заключается в том, что привязки будут работать без возникновения исключений. Вместо этого CameraX использует OpenGL для копирования общего потока как в Preview, так и в VideoCapture.
- Из-за стоимости копии буфера приложение может столкнуться с увеличением задержки и энергопотребления.
Изменения API
- Добавьте API для преобразования
ImageProxy
вBitmap
. Поддерживаемый форматImageProxy
—ImageFormat.YUV_420_888
иPixelFormat.RGBA_8888
. Если формат недействителен, будет выброшеноIllegalArgumentException
. ( Ic7110 ) - Добавьте
CoroutineCameraViewfinder
для поддержки настройки видоискателя с использованием функций приостановки в Kotlin. ( I657bc ) - Добавьте новый общедоступный конструктор для
ViewfinderSurfaceRequest
. Это обеспечивает гибкость, когда пользователь не может предоставитьCameraCharacteristics
. ( Ie6549 )
Исправления ошибок
- Исправлен сбой расширений, который происходил на некоторых устройствах Samsung при слишком быстрой приостановке/возобновлении приложения ( Iaca26 ).
Версия 1.3.0-альфа03
25 января 2023 г.
Выпущен androidx.camera:camera-*:1.3.0-alpha03
. Версия 1.3.0-alpha03 содержит эти коммиты.
Изменения API
- Добавлен
CameraInfo.getIntrinsicZoomRatio
для предоставления информации об угле обзора относительно камеры по умолчанию. ( Ib300c ) - Добавлен
CameraInfo.getLensFacing
для предоставления информации об объективе. ДобавленCameraSelector#LENS_FACING_EXTERNAL
в качестве экспериментальной функции для выбора внешних камер. ( Icaf3e ) - Добавьте
#setEffect()
вCameraController
, который позволяет добавлять эффекты к выводу камеры. ( I1d21f ) - Добавьте метод
invalidate()
вSurfaceRequest
. Поставщик поверхности может уведомить, что ранее предоставленная поверхность больше не действительна. ( Idc649 ) - Добавьте API
ImageProcessor
. Этот интерфейс предназначен для внедрения эффектов постобработки в конвейерImageCapture
. ( I575c6 ) - Добавлен API
Recorder.Builder.setAspectRatio()
который можно комбинировать сQualitySelector
для поддержки большего разрешения видео. ( I8a082 ) - Добавлен
Recorder.Builder#setTargetVideoEncodingBitRate
для установкиBitRate
целевого кодирования видео иRecorder#getTargetVideoEncodingBitRate
для получения целевого битрейта кодирования видео. ( I5984d )
Исправления ошибок
- Исправлена ошибка
ImageCapture
при отсутствии вспышки и включенном режиме вспышки. ( I9e8b4 , б / 263391112 ) - Исправлена проблема с повреждением изображения JPEG при записи данных о местоположении Exif на некоторых устройствах Samsung Android 12. ( Ib7086 , б / 263747161 , б / 263289024 )
- при установке фонарика/масштабирования до завершения инициализации камеры, например, при вызове
CameraController#enableTorch
, ожидающее действие кэшируется и отправляется после завершения инициализации. ( I11e92 , б/264157663 )
Версия 1.3.0-альфа02
7 декабря 2022 г.
Выпущен androidx.camera:camera-*:1.3.0-alpha02
. Версия 1.3.0-alpha02 содержит эти коммиты.
Изменения API
- добавить новый API для применения эффекта постобработки к выводу предварительного просмотра. ( Ic17d5 )
-
OutputOptions.getDurationLimit
переименован вOutputOptions.getDurationLimitMillis
, аOutputOptions.setDurationLimit
— вOutputOptions.setDurationLimitMillis
. ( I91f0c ) - Добавьте класс
AudioConfig
для управления настройками звука во время записи видео. Аннотация@RequiresPermission
перенесена из функцийstartRecording
вAudioConfig
чтобы избежать ненужных запросов разрешений в случаях, когда звук не нужен. ( I28755 ) - Удалите классы Metadata,
OnVideoSavedCallback
,OutputFileOptions
иOutputFileResults
которые больше не используются после применения нового API захвата видео. ( I38cd8 ) - Примените новый API захвата видео. Методы
getVideoCaptureTargetSize
иsetVideoCaptureTargetSize
заменены методамиgetVideoCaptureTargetQuality
иsetVideoCaptureTargetQuality
соответственно, посколькуsetTargetResolution
больше не поддерживается. ( I2a1d5 )
Исправления ошибок
- Удалите устаревший API
core.VideoCapture
. ( I531e0 ) - Исправлена проблема, из-за которой обратный вызов
onError
не вызывался при съемке изображений без разрешения на хранение. ( I936db , b/244807669 ) - Улучшите качество и надежность расширений камер. Расширения камеры отключены на устройствах Motorola, использующих Camera Extensions версии 1.1.0 и более ранних версий, из-за проблем с поддержкой Bokeh, захватом изображений и предварительным просмотром, которые не возобновляются. ( Id3ce3 )
- Исправлен собственный сбой при включении обрезки видео через
ViewPort
на устаревших устройствах. ( I16b8a , б/251357665 )
Версия 1.3.0-альфа01
9 ноября 2022 г.
Выпущен androidx.camera:camera-*:1.3.0-alpha01
. Версия 1.3.0-alpha01 содержит эти коммиты.
Новые возможности
-
Camera-viewfinder
опубликована официально.Camera-viewfinder
предоставляет базовый виджет видоискателя, который может отображать изображение с камеры для Camera2. Пожалуйста, проверьте пример кода для примера.
Изменения API
- Добавлен
OutputOptions.setDurationLimit
, позволяющий устанавливать ограничение продолжительности видео. Запись будет автоматически завершена при превышении указанного ограничения продолжительности. ( I902a0 ) - Добавить состояние ошибки звука видеозаписи
AudioStats.AUDIO_STATE_SOURCE_ERROR
. Отправляется, когда не удается настроить источник звука или возникает какая-либо ошибка. ( I37410 )
Исправления ошибок
- Добавьте особенность, позволяющую некоторым проблемным устройствам повторить попытку захвата один раз при возникновении сбоев захвата. ( Ид4795 )
- Исправлена проблема с черным экраном в реализации
PreviewView
SurfaceView
наViewPager2
. В рамках исправленияPreviewView
будет повторно использоватьSurfaceView
, если запрошенное разрешение не будет изменено. ( Ib3f27 ) - Поддержка обрезки видео (функция WYSIWYG) при использовании API
ViewPort
илиCameraController
. ( Ifbba8 , b/201085351 ) - Исправлена ошибка, из-за которой видео, снятое передней камерой, не записывалось на Huawei P40 lite. ( I87c57 , б/250807400 )
Версия 1.2
Версия 1.2.3
24 мая 2023 г.
Выпущен androidx.camera:camera-*:1.2.3
. Версия 1.2.3 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема, из-за которой
VideoCapture
не могла работать с передней камерой на некоторых устройствах. Например, на Samsung Galaxy S23 и Xiaomi 2107113SG. ( Ibec7e , б/270656244 )
Версия 1.2.2
22 марта 2023 г.
Выпущен androidx.camera:camera-*:1.2.2
. Версия 1.2.2 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема, из-за которой расширения CameraX не работали должным образом, когда proguard включен на некоторых устройствах, таких как Pixel ( I90aa2 ).
Версия 1.2.1
25 января 2023 г.
androidx.camera:camera-*:1.2.1
выпущен. Версия 1.2.1 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема с повреждением изображения JPEG при записи данных о местоположении Exif на некоторых устройствах Samsung Android 12. ( б/263289024 )
Версия 1.2.0
7 декабря 2022 г.
Выпущен androidx.camera:camera-*:1.2.0
. Версия 1.2.0 содержит эти коммиты.
Важные изменения с версии 1.1.0
- Новая библиотека camera-mlkit-vision. Легко интегрируйте CameraX со многими функциями MLKit, включая сканирование штрих-кода, распознавание лиц, распознавание текста и т. д. Добавлен
MLKitAnalyzer
в качестве новых API. - Новый экспериментальный API с нулевой задержкой. Оптимизирует конвейер захвата для уменьшения задержки при сохранении хорошего качества изображения. Если для режима захвата установлено значение
CAPTURE_MODE_ZERO_SHUTTER_LAG
, ожидается, что задержка между нажатием кнопки спуска затвора и съемкой снимка будет минимальной по сравнению с другими режимами захвата. На устройствах, которые не поддерживаютZERO_SHUTTER_LAG
, произойдет возврат кCAPTURE_MODE_MINIMIZE_LATENCY
. - Устаревший
android.camera.core.VideoCapture
. - Добавлен
setStreamUseCase()
в качестве общедоступного APICamera2Interop
. - Добавлено требование уровня API для
setOutputImageRotationEnabled
. -
ImageAnalysis.Analyzer#getTargetResolutionOverride()
переименован вImageAnalysis.Analyzer#getDefaultTargetResolution()
. - Добавлен API для установки метаданных местоположения в сохраненное видео.
- Исправлена низкая частота кадров при использовании вариантов использования
VideoCapture
и Preview с соотношением сторон 16:9. - Исправлена проблема с предварительным просмотром черного цвета, возникающая, когда расширение BOKEH включено на некоторых устройствах Samsung и пользователь переключает камеры.
- Исправлена проблема с растягиванием
Preview/VideoCapture
Samsung J7 Prime (SM-G610M) и J7 (SM-J710MN) на устройствах уровня API 27. - Отключен обходной путь для горизонтального переворота области автофокусировки передних камер на Samsung Android T, поскольку проблема устранена.
Версия 1.2.0-rc01
24 октября 2022 г.
androidx.camera:camera-*:1.2.0-rc01
выпущен. Версия 1.2.0-rc01 содержит эти коммиты.
Изменения API
- Добавьте API
setStreamUseCase
дляOutputConfiguration
. Пользователь может указать вариант использования потока для сеанса потока, игнорируя внутреннюю логику CameraX и выбирая вариант использования потока для оптимизации в соответствии со своими потребностями. ( Ib1a95 )
Исправления ошибок
- Исправлена проблема с растягиванием
Preview/VideoCapture
Samsung J7 Prime (SM-G610M) и J7 (SM-J710MN) на устройствах уровня API 27. Разрешение 1920x1080 приводит к растягиванию изображенийPreview/VideoCapture
. Добавлен обходной путь, позволяющий не выбирать разрешение 1920x1080 для предварительного просмотра илиVideoCapture
, чтобы избежать проблемы с растягиванием изображения. ( I0e04e ) - Исправлена низкая частота кадров при использовании вариантов использования
VideoCapture
и Preview с соотношением сторон 16:9 на некоторых устройствах Huawei. ( If8c88 , б/223643510 ) - Исправлена ошибка открытия камеры, когда
SurfaceProvider
в Preview не установлен. В рамках исправления предварительный просмотр без установленногоSurfaceProvider
теперь не будет настроен в сеансе захвата камеры. ( I99681 )
Версия 1.2.0-бета02
21 сентября 2022 г.
Выпущен androidx.camera:camera-*:1.2.0-beta02
. Версия 1.2.0-beta02 содержит эти коммиты.
Изменения API
- Добавить требование уровня API для
setOutputImageRotationEnabled
( I26e3e , b/240993561 ).
Исправления ошибок
- Отключен обходной путь для горизонтального переворота области автофокусировки передних камер на Samsung Android T, поскольку проблема устранена. ( I05f69 )
- Исправлена проблема с предварительным просмотром черного цвета, возникающая, когда расширение
BOKEH
включено на некоторых устройствах Samsung и пользователь переключает камеры. ( Если6168 )
Версия 1.2.0-бета01
24 августа 2022 г.
Выпущен androidx.camera:camera-*:1.2.0-beta01
. Версия 1.2.0-beta01 содержит эти коммиты.
Новые возможности
- Новая библиотека
camera-mlkit-vision
. Легко интегрируйте CameraX со многими функциями MLKit, включая сканирование штрих-кода, распознавание лиц, распознавание текста и т. д. Пример кода можно найти здесь . - Новый экспериментальный API с нулевой задержкой . Оптимизирует конвейер захвата для уменьшения задержки при сохранении хорошего качества изображения. Если для режима съемки установлено значение CAPTURE_MODE_ZERO_SHUTTER_LAG, ожидается, что задержка между нажатием кнопки спуска затвора и съемкой снимка будет минимальной по сравнению с другими режимами съемки. На устройствах, которые не поддерживают ZERO_SHUTTER_LAG, произойдет возврат к CAPTURE_MODE_MINIMIZE_LATENCY.
-
ImageAnalysis.Analyzer
иMLKitAnalyzer
сделаны официальными API. - Открытый API для установки метаданных местоположения в сохраненное видео.
- Переименуйте
ImageAnalysis.Analyzer#getTargetResolutionOverride()
вImageAnalysis.Analyzer#getDefaultTargetResolution()
.
Исправления ошибок
- Исправлена проблема с захватом изображения Alps k61v1_basic_ref. Захваченные изображения JPEG из HAL содержат неправильные метаданные Exif. Метаданные Exif не имеют тега 0xffd9 или 0xffda, чтобы
ExifInterface
правильно анализировал атрибуты. Чтобы обойти эту проблему, необходимо захватить изображения в формате YUV и затем сжать их в выходные изображения JPEG. ( I45abb )
Версия 1.2.0-альфа04
27 июля 2022 г.
Выпущен androidx.camera:camera-*:1.2.0-alpha04
. Версия 1.2.0-alpha04 содержит эти коммиты.
Изменения API
- Переименуйте
ImageAnalysis.Analyzer#getTargetResolutionOverride()
вImageAnalysis.Analyzer#getDefaultTargetResolution()
. Поведение также изменено, так что значение, возвращаемое этим методом, может быть переопределено значениемImageAnalysis#setTargetResolution()
. ( Если1d36 ) - Открытый API для установки метаданных местоположения в сохраненное видео. Объект
android.location.Location
можно установить с помощью нового APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
. ( I313a0 , б/204197544 )
Исправления ошибок
- Исправлена проблема с фотографированием при отмене предварительного просмотра ( Ie70b6 , b/235119898 ).
- Исправлен сбой в
Recorder
при попытке записи, когда источник звука недоступен. ( I9f652 )
Версия 1.2.0-альфа03
29 июня 2022 г.
Выпущен androidx.camera:camera-*:1.2.0-alpha03
. Версия 1.2.0-alpha03 содержит эти коммиты.
Изменения API
- Удалена экспериментальная аннотация для
ImageAnalysis.Analyzer
иMLKitAnalyzer
. ( I0ff22 )
Исправления ошибок
- Добавлен таймаут автофокуса по умолчанию 5000 мс, который завершает часть AF с
isFocusSuccessful
false, еслиFocusMeteringAction
не отменен и часть AF не сходится в течение продолжительности. ( Ibc2e3 ) - Исправлена проблема с фотографированием при отмене предварительного просмотра ( I1d3a2 , b/235119898 ).
- Включена расширенная реализация расширителя и обновлена версия интерфейса расширений поддержки CameraX до 1.2 ( I92256 ).
Версия 1.2.0-альфа02
1 июня 2022 г.
Выпущен androidx.camera:camera-*:1.2.0-alpha02
. Версия 1.2.0-alpha02 содержит эти коммиты.
Новые возможности
- Выставьте API-интерфейс CameraX Zero-Shutter Lag как экспериментальный.
Изменения API
- Добавьте новый режим захвата
CAPTURE_MODE_ZERO_SHUTTER_LAG
вImageCapture
и добавьтеisZslSupported
вCameraInfo
для запроса возможностей устройства. РежимCAPTURE_MODE_ZERO_SHUTTER_LAG
призван обеспечить минимальную задержку для мгновенного захвата. Он реализован на основе кольцевого буфера, который кэширует промежуточные результаты захвата для последующей обработки, когда пользователь нажимает кнопки для съемки. Если {@link VideoCapture} привязан, режим вспышки не ВЫКЛЮЧЕН или OEM-расширение включено, этот режим будет отключен автоматически. ( I9ae74 ) - Добавьте метод
ImageAnalysis.getBackgroundExecutor()
( Icc945 ).
Исправления ошибок
- Исправлен метод TakePicture
ImageCapture
, отключающий фонарик на сообщенных устройствах. ( Ib5eb5 , б/228272227 ) - Исправлена ошибка, из-за которой
AssertionError
не обрабатывалась при получении характеристикиCONTROL_ZOOM_RATIO_RANGE
. ( /Ia248a , b/231701345 ).
Версия 1.2.0-альфа01
18 мая 2022 г.
Выпущен androidx.camera:camera-*:1.2.0-alpha01
. Версия 1.2.0-alpha01 содержит эти коммиты.
Новые возможности
- Запущена новая библиотека camera-mlkit-vision
Исправления ошибок
- Исправлена ошибка, из-за которой
QualitySelector
не мог записать видео UHD, если включена резервная стратегия. Проблема возникает, когдаVideoCapture
связана сImageCapture
и Preview на устройстве камеры ПОЛНОГО или более высокого аппаратного уровня. Альтернативная стратегияQualitySelector
приводит к тому, чтоVideoCapture
неправильно получает разрешение FHD. Разрешение UHD фактически поддерживается для этой комбинации вариантов использования и должно быть принято. ( I0e788 , б/230651237 ) - Исправлено исключение
NullPointerException
вImageCapture.takePicture()
. ( I92366 , б/230454568 , б/229766155 ) - Исправлено поведение асинхронной паузы в
androidx.camera.video.Recorder
( Ia8ce8 ).
Камера-Камера2, Камера-Ядро, Жизненный цикл камеры и Камера-Видео Версия 1.1.0
Версия 1.1.0
29 июня 2022 г.
Выпущен androidx.camera:camera-*:1.1.0
. Версия 1.1.0 содержит эти коммиты.
Важные изменения с версии 1.0.0
- Библиотеки Landed View, Extension и Video Capture в качестве первой RC-версии. Начиная с версии 1.1.0-beta01, все библиотеки CameraX будут иметь один и тот же номер версии. Это поможет разработчикам гораздо проще отслеживать версии и уменьшит сложность больших матриц совместимости версий.
- Представлены новые общедоступные API и функции, в том числе:
- Добавьте официальную библиотеку видеокамер для поддержки сценариев использования видеозахвата.
- Возможность преобразования и вращения YUV в RGB (
ImageAnalysis.Builder.setOutputImageRotationEnabled
иsetOutputImageFormat
) - Поддерживайте многооконный режим, позволяя приложениям CameraX возобновлять работу камеры, когда работа камеры прерывается другим приложением и фокус возвращается.
- Обеспечивает правильную работу CameraX на складных устройствах, исправляя некоторые проблемы с предварительным просмотром.
- Добавлен API
CameraState
, который будет доступен через CameraInfo. - Добавлен API
ProcessCameraProvider.getAvailableCameraInfos()
для прямого получения информации о доступных камерах. - Выходной формат JPEG для
ImageCapture#OnImageCapturedCallback
когда расширения включены. - Добавлен API
isFocusMeteringSupported
вCameraInfo
, который позволяет приложениям проверять, поддерживается ли данноеFocusMeteringAction
на текущей камере или нет. - Доступен API
getResolutionInfo
для предоставления информации о разрешении для Preview,ImageCapture
иImageAnalysis
. - Добавлен новый API
ImageCapture.Builder#setJpegQuality
, позволяющий изменять качество сжатия выходного изображения JPEG при съемке изображений. - В общедоступный API добавлен
CameraSelector#filter
для фильтрации спискаCameraInfos
на основеCameraSelector
. - Добавлен
Camera2CameraControl.clearCaptureRequestOptions
для очистки существующих параметров запроса захвата. - Добавлен экспериментальный API для использования
CameraController
с внешними библиотеками обработки изображений. например MLKit - Добавлен экспериментальный API
CameraInfo#getCameraSelector()
, который возвращаетCameraSelector
уникальный для своей камеры. - Превёл несколько экспериментальных API в официальные общедоступные API.
- Аннотация
@Experimental
заменена на@RequiresOptIn
для экспериментальных API. Для вызова экспериментальных API используйте androidx.annotation.OptIn вместо устаревшего androidx.annotation.experimental.UseExperimental. - Продвижение следующих экспериментальных API -интерфейсов к официальным API:
CameraXConfig.Builder#setAvailableCamerasLimiter()
,CameraXConfig.Builder#setMinimumLoggingLevel()
,CameraXconfig.Builder#setSchedulerHandler()
,CameraXConfig#getAvailableCamerasLimiter()
CameraXConfig#getMinimumLoggingLevel()
,CameraXConfig#getCameraExecutor()
,CameraXConfig#getSchedulerHandler()
, -
@ExperimentalCameraFilter
API - экспериментальные API компенсации экспозиции.
- Продвинут экспериментальный API
UseCaseGroup
для ядра камеры, жизненного цикла камеры и видео камеры. ДобавленыViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
иViewPort.Builder#setScaleType
для настройки области просмотра. - Продвинутый жизненный
ExperimentalUseCaseGroupLifecycle
в формальные общедоступные API. - Изменения в существующих API
-
Renamed MediaStoreOutputOptions.getCollection
вMediaStoreOutputOptions.getCollectionUri
. -
ActiveRecording
был переименован в «Recording», чтобы уменьшить многословие. - API создателя
QualitySelector
изменен на API на основе списков.
Исправления ошибок
- Исправлена проблема
YuvToJpegProcessor
EOFException
, когда включен режим расширения и установлен режимImageCapture#CAPTURE_MODE_MAX_QUALITY
. - Исправлена ошибка настройки кодека, поскольку запись видео закрывается.
- Исправлено растянутое соотношение сторон предварительного просмотра/видео при записи в формате FHD.
- Исправлена рассинхронизация аудио/видео после паузы и возобновления на некоторых устройствах.
- Исправлена проблема, из-за которой вспышка срабатывала во время фокусировки касанием (
startFocusAndMetering
), когда режим вспышки автоматический или всегда включен в условиях низкой освещенности.
Версия 1.1.0-rc02
1 июня 2022 г.
androidx.camera:camera-*:1.1.0-rc02
выпущен. Версия 1.1.0-rc02 содержит эти коммиты.
Исправления ошибок
- Исправлено исключение
NullPointerException
вImageCapture.takePicture()
. ( I92366 , б/230454568 , б/229766155 ) - Исправлена ошибка, из-за которой
AssertionError
не обрабатывалась при получении характеристикиCONTROL_ZOOM_RATIO_RANGE
. ( Я248а , б/231701345 )
Версия 1.1.0-rc01
11 мая 2022 г.
androidx.camera:camera-*:1.1.0-rc01
выпущен. Версия 1.1.0-rc01 содержит эти коммиты.
Новые возможности
- Выпуск первой версии RC для камеры-видео, камеры-вида и расширения камеры.
Исправления ошибок
- Исправлена проблема, из-за которой видеокодек не освобождался, когда
VideoCapture<Recorder>
был отключен, что приводило к сбою последующего использованияVideoCapture<Recorder>
при записи с помощьюMediaCodec.CodecException
, особенно на устройствах API 21-22. ( Ie7f68 ) - Исправить захваченные изображения
CameraExtensionsActivity
которые не удаляются вImageCaptureTest
Версия 1.1.0-beta03
6 апреля 2022 г.
Выпущен androidx.camera:camera-*:1.1.0-beta03
. Версия 1.1.0-beta03 содержит эти коммиты.
Изменения API
- Конструктор
CaptureRequestOptions
ограничен. ( I261b6 ) - Добавлен экспериментальный API для использования
CameraController
с внешними библиотеками обработки изображений. например MLKit ( I4ea71 )
Исправления ошибок
- Исправлена проблема, из-за которой предварительный просмотр в
PreviewView
смещался вбок, если действие не перезапускалось после поворота устройств в многооконном режиме. ( I1ea36 , б/223488673 ) - Исправлена проблема с несколькими окнами, из-за которой при переключении фокуса обратно на приложение не удается возобновить работу камеры, когда (1) другое приложение с высоким приоритетом открывает другую камеру (2) устройство является устройством Samsung Android 12. ( I7e9f2 )
- Включено обходное решение для устройств, которые дают сбой при проверке доступности флэш-памяти. Эти устройства не будут иметь фонарик. ( If26a3 , b/216667482 )
- Исправлена проблема
AbstractMethodError
возникавшая, когда приложения использовали расширения и включали proguard. ( I7cbaf , б/222726805 ) - Принудительно отключите режим расширения боке на устройстве Motorola razr 5G, что приведет к проблеме с черным экраном предварительного просмотра. ( I35d49 )
- Исправлена рассинхронизация аудио/видео после паузы и возобновления на некоторых устройствах Samsung до API 29. ( I64622 , b/202798609 , b/202798572 )
- Исправлена рассинхронизация аудио/видео после паузы и возобновления на Sony G3125. ( I2a1a5 , б/202799148 )
- Исправлен сбой, когда устройство записи обнаруживало исключение
InvalidConfigException
. Однако это исправление только предотвращает сбой приложения, но не устраняет причинуInvalidConfigException
. ЕслиRecorder
по-прежнему не удается настроить, приложения получат обратный вызов об ошибке, когда он начнет запись. ( I89c29 , б/213617227 )
Внешний вклад
- обновлено :compose:ui:ui-test api (updateApi) из-за миграции test-coroutines-lib ( I3366d )
Версия 1.1.0-beta02
23 февраля 2022 г.
Выпущен androidx.camera:camera-*:1.1.0-beta02
. Версия 1.1.0-beta02 содержит эти коммиты.
Изменения API
- Добавьте возможность указывать физический идентификатор камеры через Camera2Interop. ( I5aed8 )
Исправления ошибок
- Исправлена проблема с растянутым предварительным просмотром на Oppo Find N ( I7d004 ).
- Исправлена проблема с Galaxy J7 Prime, из-за которой предварительный просмотр искажался. ( I4c500 )
- Используйте совместимый битрейт, чтобы найти видеокодер. ( d969052 )
Версия 1.1.0-бета01
26 января 2022 г.
Выпущен androidx.camera:camera-*:1.1.0-beta01
. Версия 1.1.0-beta01 содержит эти коммиты.
Новые возможности
- Начиная с версии 1.1.0-beta01, все библиотеки CameraX будут иметь один и тот же номер версии. Это поможет разработчикам намного проще отслеживать версии и уменьшит сложность большой матрицы совместимости версий.
Изменения API
- Добавлен
Camera2CameraControl.clearCaptureRequestOptions
для очистки существующих параметров запроса захвата. ( Ifa07d )
Исправления ошибок
- Исправлен сбой при записи видео на некоторых устройствах до Android O (API 26). ( I88fdf , б / 212328261 )
- Исправлена неправильная проблема с регионом автофокусировки при использовании
cameraControl#startFocusAndMetering()
на передней камере, обращенной к объективу, на устройствах Samsung ( Ifbf59 , b/210548792 ). - Используйте фонарик в качестве вспышки на Pixel 3a/Pixel 3a XL, чтобы повысить скорость и качество получаемого изображения в темноте ( Ib12b6 , b/211474332 ).
- Приложениям разрешено возобновлять работу камеры, когда работа камеры прерывается другим приложением с более высоким приоритетом в многооконном режиме и фокус снова переключается на приложение. Обратите внимание, что между сменой фокуса и повторным открытием камеры может пройти некоторая задержка (от 1 до 10 секунд и более) из-за какой-то проблемы с инфраструктурой. ( I4d092 )
Версия 1.1.0-альфа12
15 декабря 2021 г.
Выпущен androidx.camera:camera-*:1.1.0-alpha12
. Версия 1.1.0-alpha12 содержит эти коммиты.
Изменения API
- Удалены ненужные аннотации
@RequiresApi(21)
из внутренних классов/интерфейсов. ( I8e286 , б / 204917951 ) - Константы качества и константы резервной стратегии
QualitySelector
были изменены и теперь представлены объектами классов. Например,QualitySelector.QUALITY_HD
заменяется наQuality.HD
, аQualitySelector.FALLBACK_STRATEGY_LOWER
заменяется на экземпляр, возвращаемыйFallbackStrategy.lowerQualityOrHigherThan(Quality)
. API, используемый для созданияQualitySelector
был изменен на API на основе списков. Новый APIQualitySelector.fromOrderedList(List<Quality>)
будет ссылаться на порядок входного списка качества вместо порядка, созданногоQualitySelector.Procedure
. КлассQualitySelector.Procedure
удален. ( I43343 ) -
PendingRecording.withEventListener()
был удален, и теперь прослушиватель событий необходимо передать вPendingRecording.start()
. Это требование к прослушивателю событий предназначено для поощрения обработки асинхронных ошибок, о которых сообщается в событииVideoRecordEvent.Finalize
. ( I1e71d ) -
ActiveRecording
был переименован вRecording
чтобы уменьшить многословие. ( I77ceb )
Исправления ошибок
- Исправлена проблема, из-за которой фотографии, снятые в режиме
FLASH_AUTO
недоэкспонировались в темноте на Pixel 3a и Pixel 3a XL ( I13f19 , b/205373142 ). - Всегда используйте последний размер экрана для определения
Resolution
предварительного просмотра. ( I4a694 ) - Отфильтрованы камеры, у которых нет
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
. Камеры сREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
имеют минимальный набор возможностей, который поддерживает каждая камера. Камера безREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
может быть камерой с поддержкой специальных функций и не поддерживать стандартный вывод цвета.CameraX
не может поддерживать варианты использованияPreview
,ImageCapture
,ImageAnalysis
илиVideoCapture
для этих камер. Поэтому эти камеры следует отфильтровывать, чтобы предотвратить неправильное использование. ( Ib8cda ) -
CameraSelector#filter
больше не генерирует исключениеIllegalArgumentException
, если набор результатов пуст. ( I27804 ) - Теперь для выбора настроек кодировщика на основе профилей, указанных OEM, используется более интеллектуальная эвристика. ( Iaeef0 )
- Исправлено: при предварительном просмотре цветные линии будут чересстрочными после начала записи видео UHD на Pixel1. ( I833c6 , б / 205340278 )
Версия 1.1.0-альфа11
17 ноября 2021 г.
Выпущен androidx.camera:camera-*:1.1.0-alpha11
. Версия 1.1.0-alpha11 содержит эти коммиты.
Изменения API
- В общедоступный API добавлен CameraSelector#filter для фильтрации списка CameraInfo на основе CameraSelector. ( I105d0 )
Добавьте API setOutputImageRotationEnabled для конфигурации ImageAnaанализа. Пользователь может включить вращение буфера изображения YUV/RGB. Степень вращения — это относительный поворот, рассчитываемый на основе вращения датчика и вращения цели, чтобы изображение оставалось спереди.
Добавьте API setOutputImageRotationEnabled для конфигурации ImageAnaанализа. Пользователь может включить вращение буфера изображения YUV/RGB. Степень вращения — это относительный поворот, рассчитываемый на основе вращения датчика и вращения цели, чтобы изображение оставалось спереди.
Добавьте API
getSensorToBufferTransformMatrix
в ImageInfo. Возвращаемая матрица представляет собой сопоставление координат датчика с координатами буфера, то есть от значенияCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
до(0, 0, image.getWidth, image.getHeight)
. Матрицу можно использовать для сопоставления координат одного {UseCase} с другим. Например, сопоставление координат лица, обнаруженного с помощью ImageAnaанализа, с функцией предварительного просмотра. ( I9ff1e )Добавлен новый API ImageCapture.Builder#setJpegQuality, позволяющий изменять качество сжатия выходного изображения JPEG при съемке. ( I8dcf4 )
MediaStoreOutputOptions.getCollection переименован в MediaStoreOutputOptions.getCollectionUri. ( я16639 )
Исправления ошибок
- Исправлена проблема, из-за которой вспышка срабатывала во время фокусировки касанием (startFocusAndMetering), когда режим вспышки автоматический или всегда включен в условиях низкой освещенности. ( Id4c11 )
- Отключен HDR+ на Pixel 2 XL/Pixel 3 XL в режиме MINIMIZE_LATENCY, чтобы уменьшить задержку. ( Ib6270 , б/203505523 )
Внешний вклад
Версия 1.1.0-альфа10
13 октября 2021 г.
Выпущен androidx.camera:camera-*:1.1.0-alpha10
. Версия 1.1.0-alpha10 содержит эти коммиты.
Новые возможности
- Выпущен
androidx.camera:camera-video:1.1.0-alpha10
в качестве первой официальной альфа-версии для видео. Есть несколько известных проблем, которые будут исправлены в последующих выпусках.
Изменения API
- Добавлена аннотация
@RequiresApi(21)
ко всем классам CameraX и удалена minSdkVersion из AndroidManifest.xml. Это позволит легко интегрировать ядро камеры в приложения, у которых minSdkVersion меньше 21, но которые хотят условно использовать пути кода, основанные на API 21 и выше. Для любого приложения с minSdkVersion 21 или выше это изменение не требует никаких действий. ( Ie7f2e , б/200599470 )
Исправления ошибок
- Создайте исключение InitializationException, чтобы приложение могло корректно обрабатывать ошибку AssertionError, возникшую при создании CameraCharacteristics. ( Ибек79 )
Версия 1.1.0-альфа09
29 сентября 2021 г.
Выпущены androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
и androidx.camera:camera-lifecycle:1.1.0-alpha09
. Версия 1.1.0-alpha09 содержит эти коммиты.
Изменения API
- Аннотация ExperimentalUseCaseGroup удалена, поскольку API больше не являются экспериментальными. ( I01ef5 )
Исправления ошибок
- Исправлена проблема, из-за которой снятые фотографии были размыты в режиме
MAXIMIZE_QUALITY
. ( I173a9 , р/193823892 ) - Исправлена проблема с Samsung Galaxy J5, из-за которой камера зависала после съемки с включенной/автоматической вспышкой в темноте ( I3aab9 ).
- Если для ImageCapture требуется обрезка, выходное обрезанное изображение сжимается с указанным уровнем качества JPEG в соответствии с установленным режимом захвата. Если режим захвата
CAPTURE_MODE_MINIMIZE_LATENCY
, качество сжатия JPEG будет 95. Если режим захватаCAPTURE_MODE_MAXIMIZE_QUALITY
, качество сжатия JPEG будет 100. ( Ieb37c , b/142856426 )
Версия 1.1.0-альфа08
18 августа 2021 г.
Выпущены androidx.camera:camera-camera2:1.1.0-alpha08
, androidx.camera:camera-core:1.1.0-alpha08
и androidx.camera:camera-lifecycle:1.1.0-alpha08
. Версия 1.1.0-alpha08 содержит эти коммиты.
Новые возможности
- Добавьте API setOutputImageFormat для конфигурации анализа изображений. Пользователь может выбрать ImageAnaанализ.OUTPUT_IMAGE_FORMAT_YUV_420_888 или ImageAnaанализ.OUTPUT_IMAGE_FORMAT_RGBA_8888. По умолчанию будет выбран ImageAnaанализ.OUTPUT_IMAGE_FORMAT_YUV_420_888. ( I7902d )
Изменения API
- Аннотация ExperimentalUseCaseGroupLifecycle удалена, поскольку API больше не являются экспериментальными. ( I17b85 )
Исправления ошибок
- Исправлен экран предварительного просмотра на Huawei P20 Lite слишком яркий. Эта проблема возникает только при использовании определенных специальных разрешений предварительного просмотра вместе с большим значением масштабирования. ( Идефце , р/192129158 )
- Исправлена проблема, из-за которой вспышка не работала на некоторых устройствах при установке режима вспышки на FLASH_MODE_ON вскоре после начала съемки. ( Ieb49b )
- Исправлена проблема, из-за которой предварительный просмотр на некоторое время останавливался при съемке изображений, если VideoCapture, ImageCapture и Preview связаны. ( I56197 , р/193864120 )
- Позволяет ImageAnaанализу выбирать разрешение выше 1080p. Устройство уровня LIMITED, указанное выше, может поддерживать разрешение размера RECORD для ImageAnaанализа, когда оно связано с функциями предварительного просмотра и ImageCapture. Компромисс заключается в том, что выбранное разрешение для ImageCapture также должно быть разрешением размера RECORD. Чтобы успешно выбрать разрешение размера ЗАПИСИ для ImageAnaанализа, целевое разрешение размера ЗАПИСИ должно быть установлено как в ImageCapture, так и в ImageAnaанализе. Это указывает на то, что приложение четко понимает компромисс и предпочитает, чтобы ImageAnaанализ имел большее разрешение, а не ImageCapture имел МАКСИМАЛЬНОЕ разрешение. Определения ЗАПИСИ, МАКСИМАЛЬНЫХ размеров и более подробную информацию см. на странице https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Размер ЗАПИСИ относится к максимальному поддерживаемому разрешению записи камеры, определенному CamcorderProfile. МАКСИМАЛЬНЫЙ размер относится к максимальному выходному разрешению устройства камеры для этого формата или целевого объекта из StreamConfigurationMap.getOutputSizes(int). ( I1ee97 , р/192911449 )
- Добавьте информацию Exif к захваченному изображению. ( I01ff0 , б/193342619 )
- В ImageCapture верните URI сохраненного изображения, если местом сохранения является файл. ( Ib5b49 , b/149241379 )
- Исправлена проблема, из-за которой изображения, снятые со вспышкой, на многих устройствах были темными. ( I4e510 )
Версия 1.1.0-альфа07
21 июля 2021 г.
Выпущены androidx.camera:camera-camera2:1.1.0-alpha07
, androidx.camera:camera-core:1.1.0-alpha07
и androidx.camera:camera-lifecycle:1.1.0-alpha07
. Версия 1.1.0-alpha07 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема в Samsung Galaxy Note 5, из-за которой камера зависала после съемки с включенной/автоматической вспышкой в темноте ( If6871 ).
- Исправлена проблема
YuvToJpegProcessor
EOFException, когда включен режим расширения и установлен режимImageCapture#CAPTURE_MODE_MAX_QUALITY
. ( I538бд , б/192017012 )
Версия 1.1.0-альфа06
30 июня 2021 г.
Выпущены androidx.camera:camera-camera2:1.1.0-alpha06
, androidx.camera:camera-core:1.1.0-alpha06
и androidx.camera:camera-lifecycle:1.1.0-alpha06
. Версия 1.1.0-alpha06 содержит эти коммиты.
Изменения API
- Продвижение экспериментальных API компенсации экспозиции для ядра камеры ( I08ee8 ).
- Добавлен API isFocusMeteringSupported в CameraInfo, который позволяет приложениям проверять, поддерживается ли данное действие FocusMeteringAction на текущей камере или нет. ( Ib45ae , р/188606490 )
- Доступен API getResolutionInfo для предоставления информации о разрешении для предварительного просмотра, ImageCapture и ImageAnaанализа. ( I2b613 , б/188600718 )
- Следующие экспериментальные API стали официальными API: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor() , CameraXConfig#getSchedulerHandler(). ( I2ade2 )
- Предоставлен интерфейс CameraProvider для предоставления доступа к набору камер. ( I1a7b1 )
- Продвигайте экспериментальный API UseCaseGroup для ядра камеры, жизненного цикла камеры и видео камеры. Добавлены
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
иViewPort.Builder#setScaleType
для настройки области просмотра. ( I7cee8 )
Версия 1.1.0-альфа05
2 июня 2021 г.
Выпущены androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
и androidx.camera:camera-lifecycle:1.1.0-alpha05
. Версия 1.1.0-alpha05 содержит эти коммиты.
Изменения API
- Удален класс
Camera2CameraFilter
. Предложите выбрать камеру с помощью CameraFilter и получить характеристики CameraCharacteristics или другую информацию, связанную с Camera2, через Camera2CameraInfo, если это необходимо. ( Ib887c ) - API
ExperimentalCameraFilter
уже вышли из экспериментальной стадии и стали формальными API. Их можно использовать без аннотированного согласия. ( I4bc94 ) - Добавлен API состояния камеры, доступный через
CameraInfo#getCameraState()
. ( Я86б4 ) - Добавлен экспериментальный API
CameraInfo#getCameraSelector()
, который возвращает CameraSelector, уникальный для своей камеры ( I77f9f ).
Исправления ошибок
- Исправлена проблема, из-за которой ListenableFuture возвращал setZoomRatio, а setLinearZoom не мог завершиться на некоторых устройствах Android 11 ( I716d7 ).
- Ускорьте переключение камеры и уменьшите частоту возникновения ошибок устройства камеры ( I34c99 ).
- Жизненный цикл ExperimentalUseCaseGroup заменен на ExperimentalUseCaseGroup. ( I3b2ef , б/159033688 )
Версия 1.1.0-альфа04
21 апреля 2021 г.
Выпущены androidx.camera:camera-camera2:1.1.0-alpha04
, androidx.camera:camera-core:1.1.0-alpha04
и androidx.camera:camera-lifecycle:1.1.0-alpha04
. Версия 1.1.0-alpha04 содержит эти коммиты.
Исправления ошибок
- Исправлена утечка памяти, вызванная одновременным доступом нескольких потоков к одной и той же коллекции. Утечка памяти может привести к сохранению действия или фрагмента экземпляром предварительного просмотра. ( I7b4b8 )
- Аннотация
@Experimental
заменена на@RequiresOptIn
для экспериментальных API. Для вызова экспериментальных API, используйтеandroidx.annotation.OptIn
вместо устаревшегоandroidx.annotation.experimental.UseExperimental
. ( IFF226 ) - Фиксированная ImageCapture с Flash On/Auto принимает вымытые изображения на Samsung Galaxy S7. ( I30001 )
- Добавлена камера, который будет выставлен через Camerainfo. ( I75392 )
Версия 1.1.0-альфа03
24 марта 2021 г.
androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
и androidx.camera:camera-lifecycle:1.1.0-alpha03
. Версия 1.1.0-alpha03 содержит эти коммиты.
Исправления ошибок
- Выходной формат JPEG для
ImageCapture#OnImageCapturedCallback
, когда режимы расширений включены. ( I0d7b1 ) - Фиксированная сбой инициализации на устройствах бизонов Umidigi ( i57d9e , b/180818665 )
- Исправлено предварительный просмотр Samsung A3 в PreviewView. ( IACB30 , B/180121821 )
Версия 1.1.0-альфа02
24 февраля 2021 г.
androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
и androidx.camera:camera-lifecycle:1.1.0-alpha02
. Версия 1.1.0-alpha02 содержит эти коммиты.
Изменения API
- Добавлен API
ProcessCameraProvider.getAvailableCameraInfos()
для непосредственного извлечения информации о доступных камерах, которые представляют собой либо все камеры устройства, либо выбранныеCameraSelector
предоставленными вCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
. ( IEAC08 )
Исправления ошибок
- Camerax теперь пытается заставить открыть камеру при первоначальной попытке, это может привести к тому, что Camerax крадет камеру у других клиентов камеры, когда его приложение имеет более высокий приоритет. ( IAB069 , B/175820568 )
- Исправлена сбой роболктрического испытания, когда в CameraxConfig используется SetAlableCameraslimiter. ( ICE307 )
- Это изменение улавливает исключение, когда очередь изображений максимально выведена в воображении. Таким образом, вместо того, чтобы сбой, вы можете заметить, что другие случаи использования заморожены или вялые. Например, замороженный/вялый предварительный просмотр. ( IC12DA , B/175851631 )
- Fixed ExtensionErrorListener сообщать об ошибках, когда связаны только предварительный просмотр или ImageCapture. ( I5ae39 )
- Исправлена регрессия производительности ImageCapture, удалив проверку сохраненного изображения, прежде чем сделать снимок. После внесения этого изменения, если пункт сохранения недействителен, потребуется больше времени, чтобы получить ответ отказа, потому что оно попытается сохранить изображение после того, как фотография будет сделана. ( I1fd4e , b/177061560 )
- Исправлена регрессия производительности ImageCapture с помощью вывода «Файл». ( I5164a , b/177061560 )
- Документация, обновленная, чтобы рекомендовать против использования
ProcessCameraProvider.configureInstance(...)
из кода библиотеки. ( Ib8a9f )
Версия 1.1.0-альфа01
27 января 2021 года
androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
и androidx.camera:camera-lifecycle:1.1.0-alpha01
. Версия 1.1.0-alpha01 содержит эти коммиты.
Исправления ошибок
- Обходной путь включен для прерывистых коррумпированных данных изображения в JPEGS на камере SM-G930T. ( I52001 , B/159831206 )
- Исправлена проблема
IllegalArgumentException
, которая произошла, когда все поддержанные размеры предварительного просмотра меньше 640x480, а размер дисплея больше, чем 640x480. ( I2a63c , b/150506192 ) - Ресурсы в библиотеках без явно объявленных государственных ресурсов (например, через public.xml) в настоящее время являются частными по умолчанию. ( IA1DCC , B/170882230 )
Camera-Camera2, Camera-Core и Camera-Lifecycle Версия 1.0.2
Версия 1.0.2
29 сентября 2021 г.
androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
и androidx.camera:camera-lifecycle:1.0.2
. Версия 1.0.2 содержит эти коммиты.
Исправления ошибок
- Исправьте проблему, в которой снятые фотографии размыты в режиме
MAXIMIZE_QUALITY
. ( I173A9 , B/193823892 ) - Исправлена проблема, которая сняла изображение с помощью Flash, темная на многих устройствах. ( I4e510 )
Camera-Camera2, Camera-Core и Camera-Lifecycle Версия 1.0.1
Версия 1.0.1
21 июля 2021 года
androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
и androidx.camera:camera-lifecycle:1.0.1
. Версия 1.0.1 содержит эти коммиты.
Исправления ошибок
Исправлена проблема, которую
ListenableFuture
возвращенная вsetZoomRatio
иsetLinearZoom
не могут завершить на некоторых устройствах Android 11 ( i716d7 )Исправлена проблема, которую камера застряла в закрытии состояния камеры на некоторых устройствах и вызывает черный предварительный просмотр. ( I34c99 )
Camera-Camera2, Camera-Core и Camera-Lifecycle Версия 1.0.0
Версия 1.0.0
5 мая 2021 г.
androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
и androidx.camera:camera-lifecycle:1.0.0
. Версия 1.0.0 содержит эти коммиты.
Основные особенности версии 1.0.0
- Камера поддерживает предварительный просмотр , ImageCapture и анализ
- Camerax управляет жизненным циклом камеры в простом в использовании API
- Camerax стремится обеспечить уровень совместимости, который решает много проблем в экосистеме Android Camera
Известные проблемы
Версия 1.0.0-RC05
21 апреля 2021 г.
androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
и androidx.camera:camera-lifecycle:1.0.0-rc05
. Версия 1.0.0-RC05 содержит эти коммиты.
Исправления ошибок
- Фиксированная ImageCapture с Flash On/Auto принимает вымытые изображения на Samsung Galaxy S7. ( I30001 )
Версия 1.0.0-RC04
24 марта 2021 г.
androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
и androidx.camera:camera-lifecycle:1.0.0-rc04
. Версия 1.0.0-RC04 содержит эти коммиты.
Исправления ошибок
- Фиксированная сбой инициализации на устройствах бизонов Umidigi ( i57d9e , b/180818665 )
Версия 1.0.0-RC03
24 февраля 2021 г.
androidx.camera:camera-camera2:1.0.0-rc03
, androidx.camera:camera-core:1.0.0-rc03
и androidx.camera:camera-lifecycle:1.0.0-rc03
. Версия 1.0.0-RC03 содержит эти коммиты.
Исправления ошибок
- Ошибка исправления формата в документе
ProcessCameraProvider#getInstance
- Исправлена сбой роболктрического испытания, когда в CameraxConfig используется SetAlableCameraslimiter.
- Исправлена регрессия производительности ImageCapture, удалив проверку сохраненного изображения, прежде чем сделать снимок. После того, как это изменение, если пункт сохранения недействителен, потребуется больше времени, чтобы получить ответ на отказ, потому что оно попытается сохранить изображение после сделанной фотографии
- Это изменение улавливает исключение, когда очередь изображений максимально выведена в воображении. Таким образом, вместо сбоя вы можете заметить, что другие случаи использования заморожены или вялые. Например, замороженный/вялый предварительный просмотр.
- Обходной путь включен для прерывистых коррумпированных данных изображения в JPEGS на камере SM-G930T. ( I52001 , B/159831206 )
- Это изменение улавливает исключение, когда очередь изображений максимально выведена в воображении. Таким образом, вместо того, чтобы сбой, вы можете заметить, что другие случаи использования заморожены или вялые. Например, замороженный/вялый предварительный просмотр. ( IC12DA , B/175851631 )
- Исправлена сбой роболктрического испытания, когда в CameraxConfig используется SetAlableCameraslimiter. ( ICE307 )
- Исправлена регрессия производительности ImageCapture, удалив проверку сохраненного изображения, прежде чем сделать снимок. После внесения этого изменения, если пункт сохранения недействителен, потребуется больше времени, чтобы получить ответ отказа, потому что оно попытается сохранить изображение после того, как фотография будет сделана. ( I1fd4e , b/177061560 )
- Исправлена регрессия производительности ImageCapture с помощью вывода «Файл». ( I5164a , b/177061560 )
Версия 1.0.0-rc02
27 января 2021 года
androidx.camera:camera-camera2:1.0.0-rc02
, androidx.camera:camera-core:1.0.0-rc02
и androidx.camera:camera-lifecycle:1.0.0-rc02
. Версия 1.0.0-rc02 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема нелегаларгументации, когда все размеры поддержанных предварительного просмотра меньше 640x480, а размер дисплея больше 640x480. ( B/150506192 )
Ограничное количество попыток повторного открытия камеры. Пытаясь восстановиться после некоторых проблем при открытии камеры, камеракс больше не будет пытаться вновь открыть камеру на неопределенный срок, вместо этого она остановится после повторения в течение 10 секунд. I435d2
Исправлена проблема
IllegalArgumentException
, которая произошла, когда все поддержанные размеры предварительного просмотра меньше 640x480, а размер дисплея больше, чем 640x480. ( I2a63c , b/150506192 )
Версия 1.0.0-rc01
16 декабря 2020 г.
androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
и androidx.camera:camera-lifecycle:1.0.0-rc01
. Версия 1.0.0-rc01 содержит эти коммиты.
Изменения API
- Изменил Camerafilter и Camera2filter, чтобы принять Camerainfo. ( I6883d )
- Добавлен экспериментальный класс Camera2CamerAcontrol, чтобы динамически позволить динамическому взаимодействию с API Camera2. ( I45cf3 )
- Переименованная Camera2camerainfo #fromcamerainfo до #from. ( Ia2bd6 )
- Добавлено экспериментальное API SetAvailAbleCamerAslimiter в CameraxConfig, чтобы позволить приложениям оптимизировать задержку инициализации, избегая инициализации неиспользованных камер. ( I6cf88 )
- Добавлено экспериментальный метод
CameraXConfig.Builder#setMinimumLoggingLevel()
чтобы позволить установить минимальный уровень журнала для журналов камеры. Когда не установлено, по умолчанию по умолчаниюLog#DEBUG
. ( IC3245 )
Исправления ошибок
- Обходной путь включен для прерывистых коррумпированных данных изображения в JPEGS на камере SM-G930V. ( I5aca5 , b/159831206 )
- Исправлена проблема, которую снимки не получает результатов, когда Flash всегда/включена, а среда темная на устройствах Samsung SM-A716. ( If98b2 , b/172036589 )
- Исправлена вопрос о том, что предварительный просмотр не может быть остановлен, позвонив в
Preview.setSurfaceProvider(null)
. ( I3ac18 ) - Исправлена проблема ориентации при захвате изображений 4: 3 на некоторых устройствах. ( I0e3fb , b/171492111 )
Camera Camera2, Core, & Lifecycle версии 1.0.0-бета12
11 ноября 2020 г.
androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
и androidx.camera:camera-lifecycle:1.0.0-beta12
. Версия 1.0.0-бета12 содержит эти коммиты.
Исправления ошибок
- Отключена Auto Flash на устройствах Samsung A3, чтобы исправить сбой при снимке с режимом Auto Flash AE на устройствах Samsung A3. ( IA5FE3 , B/157535165 )
- Исправлена проблема, в которой предварительный просмотр был растянут на устройствах Nexus 4 под управлением Android L (уровни API 21 и 22). ( I4d407 , b/158749159 )
-
OnImageCapturedCallback#onCaptureSuccess
Base Class Реализация больше не закрывает изображение. Это для предотвращения неожиданного поведения для разработчиков. Разработчики не должны полагаться на Super.oncapturescesse, чтобы закрыть изображение. ( IFBF9C ) - Вариант Androidx экспериментальной аннотации был устарел для обеспечения паритета с котлином. Он был заменен аннотацией Trenyoptin, а Linter, обращенный к Java, был обновлен, чтобы поддержать как новую аннотацию Kotlin, так и новый вариант Androidx. ( I52495 , B/151331381 )
Camera-Camera2 версия 1.0.0-бета11
14 октября 2020 г.
androidx.camera:camera-camera2:1.0.0-beta11
выходит. Версия 1.0.0-бета11 содержит эти коммиты.
Новые возможности
- Поддерживает Android 11
CONTROL_ZOOM_RATIO
API для увеличения устройств Android 11 или более позднего дня, которые содержит действительныйCONTROL_ZOOM_RATIO_RANGE
. ( I62cc6 )
Исправления ошибок
- Исправлена проблема с номером формирования, когда идентификатор камеры является идентификатором камеры. ( IB2228 )
- Улучшение задержки инициализации и Bindtolifecyclecyclecyclecyclecyclecyclecyclecycycle ( i61dc5 )
- Создание USECASS не требует инициализации камеры для завершения. Все специфические конфигурации реализации устанавливаются на USECASE после того, как она прикреплена к экземпляру камеры, который для публичного API -
ProcessCameraProvider.bindToLifecycle()
. ( IA5411 ) -
<UseCase>.getTargetRotation()
вернетSurface.ROTATION_0
, если вы называете, чтобы быть прикрепленным к экземпляру камеры, если только на целевой ротации не было установлено строитель или USECASE. ( I80fcd )
Камера версия 1.0.0-бета11
14 октября 2020 г.
androidx.camera:camera-core:1.0.0-beta11
выпускается. Версия 1.0.0-бета11 содержит эти коммиты.
Новые функции - поддерживает Android 11 CONTROL_ZOOM_RATIO
API для Zoom на устройствах Android 11 или более поздних устройств, которые содержит действительный CONTROL_ZOOM_RATIO_RANGE
. ( I62cc6 )
Исправления ошибок
- Исправлена проблема с номером формирования, когда идентификатор камеры является идентификатором камеры. ( IB2228 )
- Создание USECASS не требует инициализации камеры для завершения. Все специфические конфигурации реализации устанавливаются на USECASE после того, как она прикреплена к экземпляру камеры, который для публичного API -
ProcessCameraProvider.bindToLifecycle()
. ( IA5411 ) -
<UseCase>.getTargetRotation()
вернетSurface.ROTATION_0
, если вы называете, чтобы быть прикрепленным к экземпляру камеры, если только на целевой ротации не было установлено строитель или USECASE. ( I80fcd )
Camera Core Version 1.0.0-Beta10
23 сентября 2020 г.
androidx.camera:camera-core:1.0.0-beta10
выпускается. Версия 1.0.0-бета10 содержит эти коммиты.
Исправления ошибок
- Исправьте ошибку в проверке файла Сохранить место для захвата изображения ( i8c565 , b/167697553 )
Camera-Camera2 Версия 1.0.0-BETA10
23 сентября 2020 г.
androidx.camera:camera-camera2:1.0.0-beta10
выпускается. Версия 1.0.0-бета10 содержит эти коммиты.
Исправления ошибок
- Выпуск для поддержки Camera-Core 1.0.0-BETA10
Camera-Camera2 Версия 1.0.0-BETA09
16 сентября 2020 года
androidx.camera:camera-camera2:1.0.0-beta09
выпускается. Версия 1.0.0-beta09 содержит эти коммиты.
Изменения API
- Вместо того, чтобы предоставлять статические методы, Camera2camerainfo принимает экземпляр Camerainfo при создании для получения информации Camera2. ( I5b844 )
Исправления ошибок
- Фиксированная проблема с целевым соотношением сторон на планшетных устройствах. Размер 16: 9 должен быть выбран, когда целевое соотношение сторон установлено как
AspectRatio.RATIO_16_9
. ( IB7FCF , B/151969438 ) - Бросьте
InitializationException
, чтобы приложение могло изящно обрабатывать AssertionError, произошедший при создании камерахарактеристики. ( I89c8c , b/160524721 ) - Добавлены экспериментальные интерфейсы для эксплуатации ( IF96C7 )
Camera Core Version 1.0.0-BETA09
16 сентября 2020 года
androidx.camera:camera-core:1.0.0-beta09
выходит. Версия 1.0.0-beta09 содержит эти коммиты.
Изменения API
- Исправлена ошибка, в которой ViewPort помечен как не нулевая на usecasegroup. Разработчики должны иметь возможность создавать порт View, не настраивая просмотр. ( IE3D2E )
- Добавлены экспериментальные интерфейсы для
ExposureCompensation
( IF96C7 ) - Разрешить произвольное вращение целевого целевого предварительного просмотра. Информация о преобразовании рассчитывается и возвращается пользователю на лету через новый обратный вызов
TranformationInfoListener
. ( I21470 )
Исправления ошибок
- Исправлена проблема, которая вспыхивает на некоторых устройствах, не выключалась бы. Это происходит, когда режим Flash устанавливается на
FLASH_MODE_ON
, чтобы сфотографироваться, и изменяется наFLASH_MODE_OFF
при запуске вспышки. Симптом похож на режим горелки. ( IB4451 , B/162568128 ) - Принудительный предварительный просмотр для использования TextureView, если включен эффект расширения, и реализация библиотеки поставщиков должна выполнить специальный процесс на выходной поверхности. ( I0c3cc )
- Исправлена утечка активности/фрагмента, когда контекст активности/фрагмента передается в
ProcessCameraProvider.getInstance(Context)
.
Известные проблемы
- При установке Viewport, настройки Crop of ImageCapture могут быть неверным на устройствах, которые вращают буфер изображения в HAL. Это будет исправлено в следующем выпуске.
Camera-Camera2 Версия 1.0.0-BETA08
19 августа 2020 г.
androidx.camera:camera-camera2:1.0.0-beta08
выпускается. Версия 1.0.0-beta08 содержит эти коммиты.
Исправления ошибок
- Оптимизированный Bindtolifecycle быстро запускается по основной потоке. ( I1d57e )
- DisplayerientEdeReeringPointFactory принимает экземпляр CameraInfo вместо камераселектора, поэтому существует прямое отображение, для которой камера будет генерировать точки. Все классы, которые используют DisplayerientEdereeringPointFactory, также принимают экземпляр CAMERAINFO вместо камеры. ( I400c1 )
- Исправлено фиксированное значение достопримечательностей с разрешением. Проблема группировки по размеру размера 16: 9 MOD16 (864x480) выбирается, когда настройка целевого разрешения составляет 2016x1080, а также поддерживается еще один размер 1920x1080 16: 9. ( I53167 , B/159363774 )
- Исправьте проблему CamerAcontrol, где он не может работать в условиях гонки ( I2279F , B/152333890 , B/160714166 )
Camera Core Version 1.0.0-BETA08
19 августа 2020 г.
androidx.camera:camera-core:1.0.0-beta08
выходит. Версия 1.0.0-beta08 содержит эти коммиты.
Изменения API
-
DisplayOrientedMeteringPointFactory
принимает экземплярCameraInfo
вместоCameraSelector
, поэтому существует прямое отображение, для которой камера будет генерировать точки. Все классы, которые используютDisplayOrientedMeteringPointFactory
также принимают экземплярCameraInfo
вместоCameraSelector
. ( I400c1 )
Исправления ошибок
- Для захвата изображения перезаписывайте флаг флип -горизонтального плана в метаданных в зависимости от направления камеры. ( I28499 )
- Инициализация больше не должна сбое при использовании контекста, который не возвращает объект приложения из
Context.getApplicationContext()
. ( I3d3c9 , b/160817073 )
Camera-Camera2 Версия 1.0.0-BETA07
22 июля 2020 г.
androidx.camera:camera-camera2:1.0.0-beta07
выпускается. Версия 1.0.0-beta07 содержит эти коммиты.
Исправления ошибок
- Исправлена проблема, что предварительный просмотр растянулся на устаревшем устройстве Android 5.0. ( I0c03a )
- Исключил некоторые поддержанные размеры JPEG, которые приведут к выпуску Wysiwyg на некоторых устройствах. ( IB5128 )
Camera Core версия 1.0.0-beta07
22 июля 2020 г.
androidx.camera:camera-core:1.0.0-beta07
выпускается. Версия 1.0.0-beta07 содержит эти коммиты.
Изменения API
- Merge
FIT_CENTER
,FIT_START
иFIT_END
Стиль FIT сFIT
.FIT
означает, что возвращенным настройка будет максимально возможным прямым датчиком. ( IA73C3 ) - Preview Crop Rect настроен ViewPort. Только область, покрытая прямоугольником, должна быть видна конечным пользователям. ( I142A4 )
Исправления ошибок
- Исправлена проблема, что предварительный просмотр растянулся на устаревшем устройстве Android 5.0. ( I0c03a )
- Исправлена проблема исключения
ConcurrentModificationException
Exception при рассеянии вариантов использования. ( I371c0 )
Camera-Camera2 Версия 1.0.0-BETA06
24 июня 2020 г.
androidx.camera:camera-camera2:1.0.0-beta06
выпускается. Версия 1.0.0-beta06 содержит эти коммиты.
Изменения API
- Добавлены экспериментальные интерфейсы для фильтрации камер с помощью идентификатора камеры и камерхарактеристики. ( I28f61 )
Исправления ошибок
- Исправлена проблема, в которой StartFocusandemering не может успешно сосредоточиться на Samsung Galaxy S7. ( If3be7 , b/159039233 )
- Исправить камеру не может быть закрыта после того, как уйти с приложения. ( I7a7b3 )
- Исправить повторные переключения камеры Предварительный просмотр при использовании реализации SurfaceView PreviewView ( i920CE )
-
CameraControl#startFocusAndMetering
не удастся, если ни один из указанных пунктов метки не может генерировать допустимые прямоугольники измерения. ( Id53ce )
Camera Core Version 1.0.0-BETA06
24 июня 2020 г.
androidx.camera:camera-core:1.0.0-beta06
выпускается. Версия 1.0.0-beta06 содержит эти коммиты.
Изменения API
- Добавлены экспериментальные интерфейсы для фильтрации камер с помощью идентификатора камеры и камерхарактеристики. ( I28f61 )
Исправления ошибок
- Камеракс теперь можно настроить с помощью
ProcessCameraProvider#configureInstance()
перед вызовомProcessCameraProvider#getInstance()
. Это позволяет настраиватьCameraXConfig
, не требуя реализацииCameraXConfig.Provider
в классе приложения приложения. ( IA1A8D ) -
CameraControl#startFocusAndMetering
не удастся, если ни один из указанных пунктов метки не может генерировать допустимые прямоугольники измерения. ( Id53ce )
Camera-Camera2 Версия 1.0.0-BETA05
10 июня 2020 года
androidx.camera:camera-camera2:1.0.0-beta05
выпускается. Версия 1.0.0-beta05 содержит эти коммиты.
Исправления ошибок
- Исправьте сбой при запуске приложения при инициализации Camerax, в то время как телефон не нарушает режим.
InitializationException
содержитCameraUnavailableException
, которое будет установлено дляListenableFuture
результата интиализации вместо сбоя приложения. ( I9909A , B/149413835 ) - Исправлена аварий при вызове
startFocusAndMetering
на устройствах, которыеCONTROL_AF_STATE
- NULL. ( IFE55E , B/157084254 )
Camera Core Version 1.0.0-BETA05
10 июня 2020 года
androidx.camera:camera-core:1.0.0-beta05
выпускается. Версия 1.0.0-beta05 содержит эти коммиты.
Изменения API
- Исправьте сбой при запуске приложения при инициализации Camerax, в то время как телефон не нарушает режим.
InitializationException
содержитCameraUnavailableException
будет установлена дляListenableFuture
результата интиализации вместо сбоя приложения. ( I9909A , B/149413835 )
Исправления ошибок
- Обновленные Javadocs of
setTargetResolution
иsetTargetRotation
. ( IAE16F )
Camera-Camera2 Версия 1.0.0-BETA04
27 мая 2020 г.
androidx.camera:camera-camera2:1.0.0-beta04
выпускается. Версия 1.0.0-beta04 содержит эти коммиты.
Исправления ошибок
- Разрешено приложения для установки любых параметров запроса Camera2 с помощью
Camera2Interop
не вызывая сбой. Обратите внимание, что если возникают проблемы, возникающие в результате переоценки параметров. Стабильность и поведение не гарантируются при переоценке параметров с использованием Camera2interop. ( IBE5A1 , B/149103700 ) - Авто-инициализация фиксируется при использовании приложения на устройстве, которое использует псевдо-локальный. ( I3bef3 , b/154767663 )
- Преобразованный журнал ошибок, связанный с отдельным вариантом использования, с журналом отладки в Camera2cameraimpl. ( I1A565 , B/154422490 )
- Исправлена проблема, когда снятое изображение иногда слишком темное, хотя Flash запускается. ( I5d9fa , b/149729613 )
- Исправить ошибку, где буфер в
ImageProxy
изImageCapture
не был повторно ( I0C455 , B/153249512 ) - Исправлена проблемы, где только обязательная обработка ImageCapture: (1) не удалось сделать фотографии с Max_Quality; (2) Сгенерировало плохое качество изображения, потому что автоматическая экспозиция не работает. ( I17782 , B/145326998 )
- Улучшенная надежность повторного открытия камеры при отключении камеры с помощью другого процесса или Codepath крадет камеру ( i1fbc3 , b/153714651 )
Camera Core версия 1.0.0-beta04
27 мая 2020 г.
androidx.camera:camera-core:1.0.0-beta04
выпускается. Версия 1.0.0-beta04 содержит эти коммиты.
Изменения API
- Добавляет экспериментальный API,
CameraXConfig.Builder#setSchedulerHandler()
для установки обработчика, используемого внутри, стеком камер камеры. Этот новый API вместе сCameraXConfig.Builder#setCameraExecutor()
должен разрешать полное управление потоками, используемыми стеком камер камеры. ( I7bf32 , b/121160431 )
Исправления ошибок
- Исправляет сбой в
ImageAnalysis
, где доступImageProxy
доступна после того, какImageReaderProxy
был закрыт. Это также делает так, что всеImageProxy
полученныеAnalyzer
должны быть закрыты до того, какImageReaderProxy
будет закрыт. ( I4b299 , b/145956416 , b/154155377 , b/156357269 ) - Удал параметр
CameraInfo
изPreviewView#createSurfaceProvider()
,PreviewView
теперь внутренне извлекает его изSurfaceRequest
. ( If18f0 , b/154652477 ) - Авто-инициализация фиксируется при использовании приложения на устройстве, которое использует псевдо-локальный. ( I3bef3 , b/154767663 )
- Исправлена проблема, когда снятое изображение иногда слишком темное, хотя Flash запускается. ( I5d9fa , b/149729613 )
- Исправлена проблема с использованием
ImageAnalysis
, где несколько вызовов Setanalyzer/Clearanalyzer привели к тому, что анализатор не получил изображения для анализа. ( I6169f , b/151605317 , b/153514544 ) - Исправить ошибку, где буфер в
ImageProxy
изImageCapture
не был повторно ( I0C455 , B/153249512 ) - Исправлена проблема, которую первая камера в поддерживаемом списке от
CameraManager
не всегда выбрана для использования. ( I4c624 , b/153418028 ) - Исправлено прерывистый сбой, вызванный настройкой
Preview.SurfaceProvider
не выпускает ранее запрашиваемую поверхность.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
( i8e4e7 , b/155936225 )
Camera-Camera2 Версия 1.0.0-BETA03
15 апреля 2020 года
androidx.camera:camera-camera2:1.0.0-beta03
выпускается. Версия 1.0.0-beta03 содержит эти коммиты.
Исправления ошибок
- Исправления, чтобы поддержать выпуск
camera-core
Camera Core версия 1.0.0-beta03
15 апреля 2020 года
androidx.camera:camera-core:1.0.0-beta03
выпускается. Версия 1.0.0-beta03 содержит эти коммиты.
Исправления ошибок
- Фиксированная регрессия от Beta03, где вызов
bindToLifecycle()
с нулевымUseCase
S вызовет исключение. Это предотвратило поискCamera
без привязкиUseCase
.
Camera-Camera2 Версия 1.0.0-BETA02
1 апреля 2020 года
androidx.camera:camera-camera2:1.0.0-beta02
выпускается. Версия 1.0.0-beta02 содержит эти коммиты.
Исправления ошибок
- Исправлена
ImageInfo.getRotationDegrees()
изImageProxy
создаваемогоImageCapture
чтобы соответствовать значению вращания ESIF. ( ID4281 , B/150802561 ) - Явное упорядочение зависимостей камеры в
build.gradle
больше не требуется для использования реализации Camerax/Camera2 по умолчанию. В случаях, когда требуется объявление строгие зависимости, все зависимости камерных камер теперь могут быть включены в файл сборки. ( I46e88 ) - Исправлена проблема
IllegalArgumentException
происходящая на устройствах, где размер дисплея меньше 640x480. ( IFE3F2 , B/150506192 ) - Фиксированный
bindToLifecycle
, так что он изменяет USECASE только в том случае, если он успешно связывает. Ранее при вызовеbindToLifecycle
для выполнения расчетов разрешения обновляется USECASE. Теперь ему больше не нужно обновлять USECASE для выполнения расчетов ( i78d9e )
Camera Core версия 1.0.0-beta02
1 апреля 2020 года
androidx.camera:camera-core:1.0.0-beta02
выпускается. Версия 1.0.0-beta02 содержит эти коммиты.
Исправления ошибок
- Исправлена
ImageInfo.getRotationDegrees()
изImageProxy
создаваемогоImageCapture
чтобы соответствовать значению вращания ESIF. ( ID4281 , B/150802561 ) - Фиксированный
bindToLifecycle
, так что он изменяет USECASE только в том случае, если он успешно связывает. Ранее при вызовеbindToLifecycle
для выполнения расчетов разрешения обновляется USECASE. Теперь ему больше не нужно обновлять USECASE для выполнения расчетов ( i78d9e ) - Исправлена проблема, в которой сеанс захвата
Preview
использования не был обновлен, когда поверхность предварительного просмотра изменялась после вызоваPreview.setSurfaceProvider()
более одного раза.
Camera-Camera2 Версия 1.0.0-BETA01
26 февраля 2020 г.
androidx.camera:camera-camera2:1.0.0-beta01
выпускается. Версия 1.0.0-beta01 содержит эти коммиты.
Исправления ошибок
- Переименован в
SurfaceRequest.setSurface(Surface)
кSurfaceRequest.provideSurface(Surface)
иSurfaceRequest.setWillNotComplete()
кSurfaceRequest.willNotProvideSurface()
. ( I224fe ) - Исправлена проблема с соотношением сторон сохраненного изображения, которое не было правильным после изменения целевого значения вращения с использованием
ImageCapture.setTargetRotation()
. ( I474ea , b/148763432 ) - Исправлена инициализация вариантов приложения с прогикой, включенной путем сохранения флага, который устанавливает поставщик
CameraXConfig
. ( I2d6c1 )
Camera Core версия 1.0.0-beta01
26 февраля 2020 г.
androidx.camera:camera-core:1.0.0-beta01
выпускается. Версия 1.0.0-beta01 содержит эти коммиты.
Изменения API
- Заменил
ListenableFuture
наSurfaceRequest.provideSurface()
с помощьюExecutor
иCallback
. Это упрощает API, больше не требуя обработки исключений наprovideSurface()
и обеспечивает соблюдение того, что вызовprovideSurface()
не может быть отменен. Это должно предотвратить аварии на более старых устройствах, вызванных преждевременным выпуском поверхностей. ОбъектSurfaceRequest.Result
теперь используется для отслеживания того, какSurfaceRequest
использует предоставленнуюSurface
. ( I7854b ) - Переименован
SurfaceRequest.setSurface(Surface)
кSurfaceRequest.provideSurface(Surface)
иSurfaceRequest.setWillNotComplete()
вSurfaceRequest.willNotProvideSurface()
. ( I224fe )
Исправления ошибок
- Исправлена проблема с соотношением сторон сохраненного изображения, которое не было правильным после изменения целевого значения вращения с использованием
ImageCapture.setTargetRotation()
. ( I474ea , b/148763432 ) - Исправлена инициализация вариантов приложения с прогикой, включенной путем сохранения флага, который устанавливает поставщик
CameraXConfig
. ( I2d6c1 ) - Обновленная документация для API режима Flash, чтобы включить возможные значения. ( I4a3ec )
Camera-Camera2 Версия 1.0.0-Alpha10
10 февраля 2020 года
androidx.camera:camera-camera2:1.0.0-alpha10
выпускается. Версия 1.0.0-Alpha10 содержит эти коммиты .
Исправления ошибок
- Улучшенная стабильность на устройствах
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
, обеспечивая, чтобыSurface
S сохранялась только для продолжительности использования Camera2. ( I9dac2 ) - Исправлена неэкспенсированная проблема предварительного просмотра на устаревших устройствах путем настройки
CONTROL_AE_TARGET_FPS_RANGE
правильно. ( 1224638 )
Camera Core версия 1.0.0-Alpha10
10 февраля 2020 года
androidx.camera:camera-core:1.0.0-alpha10
выпускается. Версия 1.0.0-Alpha10 содержит эти коммиты .
Изменения API
- Обновленная
ImageCapture
, чтобы позволить сохранение изображений вUri
иOutputStream
. Комбинированные перегруженные методыtakePicture
в одну. Обновленное тестовое приложение для использованияUri
в качестве канонического примера. ( IA3BEC ) -
Preview.PreviewSurfaceProvider
был переименован вPreview.SurfaceProvider
.SurfaceProvider
S больше не требует, чтобы разработчики создавали свою собственнуюListenableFuture
, а предоставлениеSurface
теперь выполняется с помощью нового объектаSurfaceRequest
. МетодPreview.getPreviewSurfaceProvider()
был удален из -за его потенциала для неправильного использования, когдаPreview
сочетается с другими классами, такими какPreviewView
. ( I20105 ) - Добавлен
getTargetRotation()
иgetTargetName()
дляPreview
. ( Iceee7 ) - Добавлен
getTargetRotation()
,getBackpressureStrategy()
иgetImageQueueDepth()
вImageAnalysis
. ( I9d6d9 ) - Добавлен
getTargetRotation()
иgetCaptureMode()
вImageCapture()
( i5bc17 ) - Аргументы, которые ранее были переданы в
ImageCapture.OnImageSavedCallback.onError()
иImageCapture.OnImageCapturedCallback.onError()
теперь были заменены одним аргументомImageCaptureException
, который все еще содержит всю информацию, которая была ранее передана. - Аргумент файла, ранее принятый в
ImageCapture.OnImageSavedCallback.onImageSaved()
был удален. ( I750d2 ) -
Preview
и классыImageCapture
теперь отмечены окончательными. ( I2500b ) - API обновил, с
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
иgetLinearZoom()
методыCameraInfo
объединяющегося вgetZoomState()
, который возвращает экземплярZoomState
. ( IB19FE ) - Снято поля API
OPTION_TARGET_CLASS
иOPTION_TARGET_NAME
изCameraXConfig
, поскольку они предназначены только для внутренней библиотеки. Удаленный конструктор дляCameraXConfig.Builder
. ( I96912 ) - Удалено требование, чтобы приложение должно расширить
Application
для инициализации CAMERAX. Теперь Camerax будет инициализирован с помощью конфигурации Camera2 по умолчанию, если артефактcamera-camera2
включен вbuild.gradle
. ( I58ff5 ) ( B/146923574 )
Camera-Camera2 Версия 1.0.0-Alpha09
22 января 2020 г.
androidx.camera:camera-camera2:1.0.0-alpha09
выпускается. Версия 1.0.0-Alpha09 содержит эти коммиты .
API меняется
Добавьте путь между камерой2 для извлечения идентификатора камеры Camera2. Вы можете извлечь идентификатор камеры из
CameraInfo
используяCamera2CameraInfo.extractCameraId()
. Следующий образец кода показывает, как использовать это:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
Класс
Camera2CameraInfo
требуетExperimentalCamera2Interop
маркетинга.
Camera Core версия 1.0.0-Alpha09
22 января 2020 г.
androidx.camera:camera-core:1.0.0-alpha09
выпускается. Версия 1.0.0-Alpha09 содержит эти коммиты .
API меняется
-
SurfaceOrientedMeteringPointFactory
PARAMATERYuseCaseForSurface
был переименован вuseCaseForAspectRatio
, и эталонная документация была расширена. -
FocusMeteringAction.Builder.from()
Методы заменяются конструкторамиFocusMeteringAction.Builder()
. - Удаленный
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
. Приложения должны использовать конструктор, который принимает параметрDisplay
, и передавать текущий дисплей. - Улучшения Javadoc для фокусировки и измерения API, касающихся
MeteringMode
и 3A -флагов, и использование параметраDisplay
. - Расширил справочную документацию для
setZoomRatio
иsetLinearZoom
.
Исправления ошибок
- Исправлены проблемы при закрытии, затем открывают камеры, что приводит к сбою «предварительного кондиционирования».
- Исправлена
ConcurrentModificationException
, которое могло возникнуть при использовании API -файлов Torch и Zoom. - Исправлена проблема, чтобы теперь выбрать разрешения ближе к запрошенному разрешению, когда доступен размер размеров MOD16.
-
startFocusMetering
иcancelFocusMetering
API теперь ведут себя как задокументированные, с правильным временем и потенциально возвращающими ошибки, когда они возникают. - Фиксированная проблема, когда была запрошена конкретная целевая разрешение с соотношением урожая на устройстве, которое не поддерживает такие размеры. Теперь непредученный размер достаточного разрешения, чтобы связать исходный запрос, будет выбран, когда будет доступен.
Camera-Camera2 Версия 1.0.0-Alpha08
18 декабря 2019 г.
androidx.camera:camera-camera2:1.0.0-alpha08
выпускается. Версия 1.0.0-Alpha08 содержит эти коммиты .
Известные проблемы
- Не все параметры запроса захвата Camera2 работают при использовании Interop Camera2. Если запрошенная опция не поддерживается, сеанс не может запустить, и может возникнуть такая ошибка:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
Исправления ошибок
- Исправлена проблема, в которой просмотр черного экрана произошел после вращения или переключения камеры для уровней API 21 и 22.
Изменения API
- Экспериментальный : добавил путь между камерой 2 для извлечения идентификатора камеры.
Camera Core версия 1.0.0-Alpha08
18 декабря 2019 г.
androidx.camera:camera-core:1.0.0-alpha08
выпускается. Версия 1.0.0-Alpha08 содержит эти коммиты .
Известные проблемы
- Приложения с использованием
PreviewView
илиCameraView
могут иметь неверный предварительный просмотр соотношения сторон. Это происходит после паузы или возобновления на некоторых полных устройствах, таких как Pixel2.
Исправления ошибок
- Обновлено документацию для
FocusMeteringAction
иCameraControl
. - Реализовано
TorchControl
дляenableTorch()
иgetTorchState()
.
Изменения API
- Hid Intdefs и перемещали константы Intdef за пределами определения Intdef.
- Перенос
rotationDegrees
от классаOnImageCaptureCallback
вImageInfo
. - Перенос
rotationDegrees
от классаAnalyzer
вImageInfo
.
Camera-Camera2 Версия 1.0.0-Alpha07
4 декабря 2019 года
androidx.camera:camera-camera2:1.0.0-alpha07
выпускается. Версия 1.0.0-Alpha07 Camera-Camera2 содержит эти коммиты
-
Camera2Config
теперь доступна для использования с инициализацией и настройкой реализации на основе Camera2 для Camerax. Более подробная информация о том, как использовать это в инициализации, находится в разделе Camera Core примечания релиза. - Международный интерфейс Camera2 теперь отмечается как экспериментальный и перемещенный в отдельный пакет,
androidx.camera.camera2.interop.
Camera Core версия 1.0.0-Alpha07
4 декабря 2019 года
androidx.camera:camera-core:1.0.0-alpha07
выпускается. Версия 1.0.0-Alpha07 Camera Core содержит эти коммиты
Обратите внимание, что в этом альфа -выпуске существуют некоторые существенные изменения, когда мы готовимся к бета -версии. Мы рекомендуем вам просмотреть изменения и поделиться любыми отзывами, которые вы можете иметь в группе Google Camerax . Для тех разработчиков, использующих камеру, в приложениях, которые находятся в магазине Play Store, мы рекомендуем ждать официального бета -выпуска перед обновлением библиотеки в ваших приложениях.
API меняется
Важно : инициализация камеры изменилась. Приложения должны реализовать
CameraXConfig.Provider
и использоватьCamera2Config
по умолчанию, предоставленнуюandroidx.camera.camera2
. Типичное использование:import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
Класс камер был удален.
bindToLifecycle()
,unbind()
,unbindAll()
,isBound()
иhasCamera()
ранее предоставленная при вызове класса CAMERAX, теперь доступны черезProcessCameraProvider
.Примечание Percocess
ProcessCameraProvider
получается асинхронно с использованием статического методаProcessCameraProvider.getInstance()
, который возвращает слушаемое будущее, которое обеспечиваетProcessCameraProvider
для завершения. Здесь он показан вonCreate()
для типичного использования. Вы можете разместить вызовы вgetInstance()
позже в жизненном цикле деятельности, чтобы отложить задержку инициализации на более позднее время (например, когда пользовательский действие открывает пользовательский интерфейс камеры).import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }
Слушатель может быть добавлен в
ListenableFuture
, возвращеннойgetInstance()
. Это гарантирует, что поставщик камеры может быть извлечен изFuture
не блокируяFuture.get()
cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
Выбор камеры теперь выполняется селектором камеры, а не для каждого использования
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
CameraProvider.bindToLifecycle
дается владельцу жизненного цикла, селектор камеры и варианты использования, которые затем связаны с данным владельцем жизненного цикла и работают для выбранной камеры.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
Классы использования «конфигурация» удаляются. Вместо этого создайте сценарии непосредственно, настраивая параметры на каждом построителе варианта использования. Например:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
Предварительный обзор был обновлен, чтобы принять поверхность, созданную и управляемой приложением, чтобы обеспечить лучшие практики Android. Настоятельно рекомендуется использовать класс
PreviewView
View, представленное в пакете камеры.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
См. Документация для прикрепления поверхности, управляемой приложением. В этих случаях приложение управляет жизненным циклом поверхности.
ВАЖНО : Реализация метода анализатора
ImageAnalysis
должна вызоватьimage.close()
на полученных изображениях, когда они закончены, используя их. В противном случае, новые изображения не могут быть получены, или камера может задержать, в зависимости от настройки обратного давления. См . Подробнее.ImageAnalysis ImageReaderMode
теперь изменяется на стратегию обратного давленияintdef
.ImageProxy.getImage()
отмечается как экспериментальный. Приложения должны аннотировать использование, например, через@androidx.camera.core.ExperimentalGetImage
Требование аннотации
UIThread
дляAnalyzer
было удалено.Функция
ImageAnalysis.clearAnalyzer()
добавляется для удаления анализатора.Слушатели с более чем 1 методом были переименованы в обратный вызов:
-
ImageCapture.OnImageCapturedListener
теперьImageCapture.OnImageCapturedCallback
-
ImageCapture.OnImageSavedListener
теперьImageCapture.OnImageSavedCallback
-
VideoCapture.OnVideoSavedListener
теперьVideoCapture.OnVideoSavedCallback
-
Enums изменились на Intdef
Были добавлены элементы управления масштабированием:
-
CameraControl.setLinearZoom()
-
CameraControl.setZoomRatio()
-
CameraInfo.getLinearZoom()
-
CameraInfo.getMaxZoomRatio()
-
CameraInfo.getZoomRatio()
-
CameraInfo.hasFlashUnit()
добавляется, чтобы определить, присутствует ли оборудование флэш -факела.CameraInfo.isFlashAvailable()
был удален. Факел переопределяет функциональность вспышки. Более подробная информация включена в справочную документацию .ImageCapture.Metadata
Поля заменяются на get/set/is Accessors.startFocusMetering
иcancelFocusMetering
теперь возвращаютListenableFutures
, которые представляют асинхронную работу вызова.MeteringPoints
в настоящее время функционируют как направления к затратным действиям и производятся заводами. Приложения должны использовать существующие фабрики, а не пользовательские фабрики.
Исправлены проблемы
- Исправлена проблема при снимке возобновления (после предыдущей паузы была сфотографирована в ожидании завершения).
- Известная проблема:
CameraControl.enableTorch()
функциональна, но возвращаемаяListenableFuture<Void>
всегда является непосредственнымcomplete(success)
будущим, даже если нет флэш -единицы. Будущие версии исправят это до окончательного поведения: когда нет флэш -единицы,enableTorch(true)
сразу же не удается (не отправляет запрос наCaptureSession
), аTorchState
остается отключенным. - Известная проблема:
startFocusAndMetering
иcancelFocusAndMetering
Start и отмените измерение фокуса, но верните немедленноcompleted (success)
будущее, не представляющее документированное поведение.FocusMeteringResult
отListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
является поддельным результатом, которыйisFocusSuccessful()
и всегда «ложным», отличающимся от предполагаемого, задокументированного поведения. - Известная проблема: разрабатывается заводская фабрика точек измерения для использования с событиями Touch
PreviewView
. На данный момент приложения, подключающие пользовательские поверхности, могут использовать существующие заводы точек измерения, и в противном случае дляPreviewView
не доступна функциональности с фокусом.
Camera-Camera2 и Camera Core версия 1.0.0-Alpha06
9 октября 2019 года
androidx.camera:camera-camera2:1.0.0-alpha06
и androidx.camera:camera-core:1.0.0-alpha06
выпускаются. Это коммиты, включенные в camera-camera2:1.0.0-alpha06
, и это коммиты, включенные в camera-core:1.0.0-alpha06
.
Новые возможности
Изменения в установке соотношений сторон:
-
setTargetAspectRatioMode()
был добавлен и принимает аргумент перечисления. Это устанавливает режим соотношения сторон с соотношениемRATIO_4_3
илиRATIO_16_9
вместо произвольного соотношения сторон. Это ближе отражает тот факт, что из камеры предоставляются только определенные соотношения сторон, а не какое -либо произвольное соотношение.- В настоящее время единственные доступные коэффициенты - 16: 9 и 4: 3. В случае 1: 1 только определенные устройства имеют это доступно от камеры, а затем только с ограниченными разрешениями. Приложения, проектирующие интерфейс 1: 1 или обработка, должны использовать более гибкий выбор 16: 9 или 4: 3 и обрезать дисплей или обрабатывать субрегион.
- Эти соотношения сторон ориентированы на использование максимальной области датчика.
-
getTargetAspectRatio()
был добавлен в APIS config API -интерфейсы варианта, возвращая соотношение сторон. - The method
setTargetAspectRatio(Rational aspectRatio)
has been changed for ImageCapture 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
August 7, 2019
androidx.camera:camera-camera2:1.0.0-alpha04
and androidx.camera:camera-core:1.0.0-alpha04
are released. Version 1.0.0-alpha04 contains these commits .
Новые возможности
Changes to Aspect Ratio and Resolution selection
CameraX's goal is to successfully initialize a camera session. This means CameraX compromises on resolution/aspect ratios based on device capability, in order to start a capture session as its first goal, and so exact requests may not be honored. Это может быть связано с:
- Devices not supporting the requested resolution
- Compatibility issues such as on LEGACY devices where certain resolutions must be used to operate correctly
- On some devices, certain formats are only available at certain aspect ratios
- A preference for a “nearest mod16” for JPEG or video encoding. See
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
Although CameraX creates and manages the session, you should always check the returned image sizes on the use case output in your code and adjust accordingly.
Some changes have been made for setting resolutions and aspect ratios, intended to make the API more clear:
- Preview use case is now considered to have a default 4:3 aspect ratio when none is set.
- When CameraX internally considers changes to requested resolutions and aspect ratios based on device capability, it first tries to maintain the same aspect ratio (as determined by any of
setTargetAspectRatio
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
June 5, 2019
androidx.camera:camera-core:1.0.0-alpha02
and androidx.camera:camera-camera2:1.0.0-alpha02
are released. Версия 1.0.0-alpha02 содержит эти коммиты .
Исправления ошибок
- Fixed div by zero issue when using emulator
- Fixed NullPointerException/Surface Abandoned error occurring on some devices when quickly taking photos while unbinding and rebinding use cases rapidly.
- Fixed internal issue to ensure capture request updates affect all surfaces consistently
- Stability improvements when restarting use cases in new app instances
- Internal architecture changes to prepare for supporting executors in the API
- Additional Javadoc clarifications on CameraX class and lifecycle management
- Added instrumented testing for Antelope performance test app
- Remove need for '-keepattributes Signature' in app Proguard config
Camera-Camera2 and Camera-Core 1.0.0-alpha01
May 7, 2019
androidx.camera:camera-core:1.0.0-alpha01
and androidx.camera:camera-camera2:1.0.0-alpha01
are released. Версия 1.0.0-alpha01 содержит эти коммиты .
Camera-Lifecycle Version 1.0.0-beta11
14 октября 2020 г.
androidx.camera:camera-lifecycle:1.0.0-beta11
is released. Version 1.0.0-beta11 contains these commits.
Исправления ошибок
-
<UseCase>.getTargetRotation()
вернетSurface.ROTATION_0
, если вы называете, чтобы быть прикрепленным к экземпляру камеры, если только на целевой ротации не было установлено строитель или USECASE. ( I80fcd )
Camera-Lifecycle Version 1.0.0-beta10
23 сентября 2020 г.
androidx.camera:camera-lifecycle:1.0.0-beta10
is released. Version 1.0.0-beta10 contains these commits.
Исправления ошибок
- Release to support Camera-Core 1.0.0-beta10
Camera-Lifecycle Version 1.0.0-beta09
September 16, 2020
androidx.camera:camera-lifecycle:1.0.0-beta09
is released. Версия 1.0.0-beta09 содержит эти коммиты.
Camera-Lifecycle Version 1.0.0-beta08
19 августа 2020 г.
androidx.camera:camera-lifecycle:1.0.0-beta08
is released. Версия 1.0.0-beta08 содержит эти коммиты.
Исправления ошибок
- Initialization should no longer crash when using a Context that does not return an Application object from
Context.getApplicationContext()
. ( I3d3c9 , b/160817073 )
Camera-Lifecycle Version 1.0.0-beta07
22 июля 2020 г.
androidx.camera:camera-lifecycle:1.0.0-beta07
is released. Версия 1.0.0-beta07 содержит эти коммиты.
Camera-Lifecycle Version 1.0.0-beta06
24 июня 2020 г.
androidx.camera:camera-lifecycle:1.0.0-beta06
is released. Версия 1.0.0-beta06 содержит эти коммиты.
Изменения API
- CameraX can now be configured with ProcessCameraProvider#configureInstance() before calling ProcessCameraProvider#getInstance(). Это позволяет настраивать CameraxConfig, не требуя реализации cameraxconfig.provider в классе приложения приложения. ( Ia1a8d )
Camera-Lifecycle Version 1.0.0-beta05
June 10, 2020
androidx.camera:camera-lifecycle:1.0.0-beta05
is released. Версия 1.0.0-beta05 содержит эти коммиты.
Исправления ошибок
- Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An
InitializationException
contains 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. Версия 1.0.0-beta04 содержит эти коммиты.
Camera-Lifecycle Version 1.0.0-beta03
April 15, 2020
androidx.camera:camera-lifecycle:1.0.0-beta03
is released. Версия 1.0.0-beta03 содержит эти коммиты.
Исправления ошибок
- Фиксированная регрессия от Beta03, где вызов
bindToLifecycle()
с нулевымUseCase
S вызовет исключение. This prevented retrieval of 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. Версия 1.0.0-beta01 содержит эти коммиты.
Исправления ошибок
- Fixed documentation to note that when obtaining a
ProcessCameraProvider
during initialization, a default configuration is used and that extendingApplication
is optional. ( I5e395 )
Camera-Lifecycle Version 1.0.0-beta02
April 1, 2020
androidx.camera:camera-lifecycle:1.0.0-beta02
is released. Версия 1.0.0-beta02 содержит эти коммиты.
Исправления ошибок
- Updated to support the bug fixes in the
camera-camera2:1.0.0-beta02
andcamera-core:1.0.0-beta02
artifacts.
Camera-Lifecycle Version 1.0.0-alpha10
February 10, 2020
androidx.camera:camera-lifecycle:1.0.0-alpha10
is released. Version 1.0.0-alpha10 contains these commits .
Изменения API
- Added
@MainThread
annotation to BindToLifecycle, unbind and unbindAll methods. ( I990d2 )
Camera-Lifecycle Version 1.0.0-alpha03
22 января 2020 г.
androidx.camera:camera-lifecycle:1.0.0-alpha03
is released. Version 1.0.0-alpha03 contains these commits .
Обновления
- Various fixes and updates to support Camera Core & Camera2 changes.
Camera-Lifecycle Version 1.0.0-alpha02
December 18, 2019
androidx.camera:camera-lifecycle:1.0.0-alpha02
is released. Версия 1.0.0-alpha02 содержит эти коммиты .
Изменения зависимостей
- Updated to use
androidx.camera:camera-core:1.0.0-alpha08
.
Camera-Lifecycle Version 1.0.0-alpha01
December 4, 2019
androidx.camera:camera-lifecycle:1.0.0-alpha01
is released. Version 1.0.0-alpha01 of camera-lifecycle contains these commits
API notes
- The camera-lifecycle artifact is added, providing
LifeCycleCameraProvider
interface, and an implementation 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
- Удалили ненужные аннотации
@RequiresApi(21)
из внутренних классов/интерфейсов. ( I8e286 , b/204917951 ) - Update api files for camera-extensions artifact. ( If683a , b/161377155 )
Исправления ошибок
- Disallow the app to enable extension modes when binding
VideoCapture
. CameraX Extensions only supportImageCapture
andPreview
. TheVideoCapture
can't be supported yet. If the app bindsVideoCapture
and enables any extension mode, anIllegalArgumentException
will be thrown. ( I0d87b ) -
CameraSelector#filter
больше не бросаетIllegalArgumentException
, когда набор результатов пуст. ( 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
- Добавлена камераселектор#фильтр в публичный API для фильтрации списка камерфос на основе камераселектора. ( I105d0 )
Исправления ошибок
- Fixed a crash when switching extensions mode quickly on certain devices. ( Iebbef )
Version 1.0.0-alpha30
13 октября 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha30
and androidx.camera:camera-view:1.0.0-alpha30
are released. Version 1.0.0-alpha30 contains these commits.
Изменения API
- Добавлено @RequiresApi (21) аннотация ко всем классам камер и MinsDkversion от Androidmanifest.xml. Это позволит легко интегрировать Camera-Core в приложения, которые имеют minsdkversion менее 21, но хотят условного использования путей кода, которые полагаются на API 21 и выше. For any application with minSdkVersion 21 or higher, this change requires no action. ( IE7F2E , B/200599470 )
Исправления ошибок
- Fixed the AbstractMethodError issue which happens when proguard is enabled. ( Iae468 , b/201177844 )
Version 1.0.0-alpha29
29 сентября 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha29
and androidx.camera:camera-view:1.0.0-alpha29
are released. Version 1.0.0-alpha29 contains these commits.
Изменения API
- Экспериментальная аннотация в экспериментации теперь удаляется, когда API больше не экспериментальны. ( I01ef5 )
- remove
RotationProvider#removeAllListeners()
. Please 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
July 21, 2021
androidx.camera:camera-extensions:1.0.0-alpha27
and androidx.camera:camera-view:1.0.0-alpha27
are released. Version 1.0.0-alpha27 contains these commits.
Изменения API
- Promoted the viewport API out of experimental. Remove the experimental annotation of the API. ( I717ea )
- Renamed
CoordinateTransform#getTransform
toCoordinateTransform#transform
and update JavaDoc ( I864ae )
Исправления ошибок
- Fixed
PreviewView PERFORMANCE
mode stretch issue when using it together with Compose UI. ( Ie1137 , b/183864890 )
Version 1.0.0-alpha26
June 30, 2021
androidx.camera:camera-extensions:1.0.0-alpha26
and androidx.camera:camera-view:1.0.0-alpha26
are released. Version 1.0.0-alpha26 contains these commits.
Изменения API
- 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 )
Версия 1.0.0-альфа24
21 апреля 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha24
and androidx.camera:camera-view:1.0.0-alpha24
are released. Версия 1.0.0-alpha24 содержит эти коммиты.
Исправления ошибок
- Заменила аннотация
@Experimental
с@RequiresOptIn
на экспериментальные API. Для вызова экспериментальных API, используйтеandroidx.annotation.OptIn
вместо устаревшегоandroidx.annotation.experimental.UseExperimental
. ( Iff226 ) - Fixed the PreviewView stretched issue on Samsung J5 Prime ( Ib10b6 )
Camera Extensions & View Version 1.0.0-alpha23
24 марта 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha23
and androidx.camera:camera-view:1.0.0-alpha23
are released. Версия 1.0.0-alpha23 содержит эти коммиты.
Изменения API
- CameraView is being deprecated. Please use
LifecycleCameraController
instead. See the migration guide ( Idac2c ) - Added FloatRange annotation to setLinearZoom() ( I69971 )
Исправления ошибок
- Pinned camera-view dependencies to rely on 1.0.0 artifacts. Depending on camera-view will not longer cause gradle's dependency resolution to automatically upgrade camera-core, camera-camera2 and camera-lifecycle to the latest 1.1.0 artifacts, though camera-view is still compatible with those artifacts if they are explicitly set to use 1.1.0. ( Ic8fa1 , b/181599852 )
- Исправлено предварительный просмотр Samsung A3 в PreviewView. ( IACB30 , B/180121821 )
- Fixed the issue where if camera selector cannot be set before camera is initialized. ( Ic8bd0 )
Camera Extensions & View Version 1.0.0-alpha22
24 февраля 2021 г.
androidx.camera:camera-extensions:1.0.0-alpha22
and androidx.camera:camera-view:1.0.0-alpha22
are released. Version 1.0.0-alpha22 contains these commits.
Изменения API
- 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
January 27, 2021
androidx.camera:camera-extensions:1.0.0-alpha21
and androidx.camera:camera-view:1.0.0-alpha21
are released. Version 1.0.0-alpha21 contains these commits.
Releasing to support other camera library artifacts.
Camera Extensions & View Version 1.0.0-alpha20
16 декабря 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha20
and androidx.camera:camera-view:1.0.0-alpha20
are released. Version 1.0.0-alpha20 contains these commits.
Releasing to support other camera library artifacts.
Camera-Extensions & Camera-View Version 1.0.0-alpha19
11 ноября 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha19
and androidx.camera:camera-view:1.0.0-alpha19
are released. Version 1.0.0-alpha19 contains these commits.
Исправления ошибок
-
@ExperimentalVideo
annotation was introduced to camera-view. This annotation marks APIs which expose experimental video functionality which is subject to change as the features are fully developed. Any method using these APIs should use the@UseExperimental
annotation 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()
вернетSurface.ROTATION_0
, если вы называете, чтобы быть прикрепленным к экземпляру камеры, если только на целевой ротации не было установлено строитель или USECASE. ( I80fcd )
Camera-View Version 1.0.0-alpha18
14 октября 2020 г.
androidx.camera:camera-view:1.0.0-alpha18
is released. Version 1.0.0-alpha18 contains these commits.
Releasing to support other camera library artifacts.
Camera-Extensions Version 1.0.0-alpha17
23 сентября 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha17
is released. Version 1.0.0-alpha17 contains these commits.
Исправления ошибок
- 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
September 16, 2020
androidx.camera:camera-extensions:1.0.0-alpha16
is released. Version 1.0.0-alpha16 contains these commits.
Исправления ошибок
- Added method in
ExtensionsManager
to get anExtensions
object which is used to enable and query extensions on Camera instances ( I4fb7e )
Camera-View Version 1.0.0-alpha16
September 16, 2020
androidx.camera:camera-view:1.0.0-alpha16
is released. Version 1.0.0-alpha16 contains these commits.
Изменения API
- 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
принимает экземплярCameraInfo
вместоCameraSelector
, поэтому существует прямое отображение, для которой камера будет генерировать точки. 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
June 10, 2020
androidx.camera:camera-extensions:1.0.0-alpha12
is released. Версия 1.0.0-alpha12 содержит эти коммиты.
Исправления ошибок
- Fix the crash on app startup when initialising CameraX while phone is in Do Not Disturb mode. An
InitializationException
contains aCameraUnavailableException
will be set to theListenableFuture
of the intialization result instead of crashing the application. ( I9909a , b/149413835 )
Camera-View Version 1.0.0-alpha12
June 10, 2020
androidx.camera:camera-view:1.0.0-alpha12
is released. Версия 1.0.0-alpha12 содержит эти коммиты.
Исправления ошибок
- Add
PreviewView#getBitmap()
API which returns a Bitmap representation of the content displayed on the preview surface. ( I9b500 , b/157659818 )
Camera-Extensions Version 1.0.0-alpha11
27 мая 2020 г.
androidx.camera:camera-extensions:1.0.0-alpha11
is released. Версия 1.0.0-alpha11 содержит эти коммиты.
Camera-View Version 1.0.0-alpha12
June 10, 2020
androidx.camera:camera-view:1.0.0-alpha12
is released. Версия 1.0.0-alpha12 содержит эти коммиты.
Новые возможности
Изменения API
Исправления ошибок
- Add
PreviewView#getBitmap()
API which returns a Bitmap representation of the content displayed on the preview surface. ( I9b500 , b/157659818 )
Camera-View Version 1.0.0-alpha11
27 мая 2020 г.
androidx.camera:camera-view:1.0.0-alpha11
is released. Версия 1.0.0-alpha11 содержит эти коммиты.
Изменения API
- Add
PreviewView#getPreviewStreamState
API which allows apps to observe if preview is streaming or not. When the PreviewView is in TEXTURE_VIEW mode, the STREAMING state also guarantees the preview image is visible. ( Ic0906 , b/154652477 ) - Added
PreviewView#setDeviceRotationForRemoteDisplayMode()
API to provide device rotation for transform calculations if the application is running in remote display mode. ( I59b95 , b/153514525 )
Исправления ошибок
- Fixed the preview distortion issue on
FULL/LIMITED/LEVEL_3
cameras running android 7.0 and below. Forced useImplementationMode#TEXTURE_VIEW
mode when the android version is 7.0 or below. ( I83e30 , b/155085307 ) - Removed the
CameraInfo
parameter fromPreviewView#createSurfaceProvider()
,PreviewView
now internally retrieves it from theSurfaceRequest
. ( If18f0 , b/154652477 ) - Fixed the VideoCapture's default aspect ratio to be 16:9 in CameraView. ( Ie6a7b , b/153237864 )
- Fix
PreviewView
black screen issues when swiped outPreview
fragment and then swiped back in ViewPager2. Also fixed the issue whenremoveView(previewview)
and thenaddView(previewView)
. ( Iab555 , b/149877652 , b/147354615 ) - Update the
CameraView#takePicture()
API to allow saving images toUri
andOutputStream
. Update the test app to useUri
as the canonical example. ( Ia2459 , b/153607583 ) - You can set PreviewView's scale type from a XML layout by setting the
ScaleType
attribute. ( I08565 , b/153015659 ) -
CameraView.ScaleType
has been removed. Instead, usePreviewView.ScaleType
to set/get a scale type with CameraView. ( Ia8974 , b/153014831 ) - Give
PreviewView
a background color by default if it doesn't already have one. This prevents content behind it from being visible before the preview stream starts. ( I09fad )
Camera-Extensions Version 1.0.0-alpha10
April 15, 2020
androidx.camera:camera-extensions:1.0.0-alpha10
is released. Версия 1.0.0-alpha10 содержит эти коммиты.
Исправления ошибок
- Fixes to support the release of Camera-Core
Camera-View Version 1.0.0-alpha10
April 15, 2020
androidx.camera:camera-view:1.0.0-alpha010
is released. Version 1.0.0-alpha010 contains these commits.
Исправления ошибок
- Fixes a previous known issue where
PreviewView
's surfaceView implementation wasn't working well on certain devices, and would cause the app to crash after resuming preview. ( I5ed6b )
Camera-Extensions Version 1.0.0-alpha09
April 1, 2020
androidx.camera:camera-extensions:1.0.0-alpha09
is released. Версия 1.0.0-alpha09 содержит эти коммиты.
Исправления ошибок
- Updated to support the bug fixes in the
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
, 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. Версия 1.0.0-alpha09 содержит эти коммиты.
Известные проблемы
- 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. Версия 1.0.0-alpha08 содержит эти коммиты.
Camera-View Version 1.0.0-alpha08
26 февраля 2020 г.
androidx.camera:camera-view:1.0.0-alpha08
is released. Версия 1.0.0-alpha08 содержит эти коммиты.
Исправления ошибок
- Replaced the
ListenableFuture
onSurfaceRequest.provideSurface()
with anExecutor
andCallback
. This simplifies the API by no longer requiring handling of exceptions onprovideSurface()
and enforces that theprovideSurface()
callback cannot be cancelled. This is to prevent crashes on older devices caused by prematurely releasing surfaces. TheSurfaceRequest.Result
object is now used for tracking how aSurfaceRequest
uses the providedSurface
. ( I7854b ) - Renamed
SurfaceRequest.setSurface(Surface)
toSurfaceRequest.provideSurface(Surface)
andSurfaceRequest.setWillNotComplete()
toSurfaceRequest.willNotProvideSurface()
. ( I224fe ) - Fixed initialization of app variants with ProGuard enabled by preserving the flag that sets the default
CameraXConfig
provider. ( I2d6c1 )
Camera-Extensions Version 1.0.0-alpha07
February 10, 2020
androidx.camera:camera-extensions:1.0.0-alpha07
is released. Version 1.0.0-alpha07 contains these commits .
Исправления ошибок
- The arguments that were previously passed in
ImageCapture.OnImageSavedCallback.onError()
andImageCapture.OnImageCapturedCallback.onError()
have now been replaced by a single argumentImageCaptureException
, which still contains all the information that was previously passed. - The file argument previously passed in
ImageCapture.OnImageSavedCallback.onImageSaved()
has been removed. ( I750d2 )
Camera-View Version 1.0.0-alpha07
February 10, 2020
androidx.camera:camera-view:1.0.0-alpha07
is released. Version 1.0.0-alpha07 contains these commits .
Изменения API
-
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
December 18, 2019
androidx.camera:camera-extensions:1.0.0-alpha05
is released. Version 1.0.0-alpha05 contains these commits .
Исправления ошибок
- Updated to match the internal Camera Core APIs.
Camera-View Version 1.0.0-alpha05
December 18, 2019
androidx.camera:camera-view:1.0.0-alpha05
is released. Version 1.0.0-alpha05 contains these commits .
Известные проблемы
- The aspect ratio may be incorrect when using PreviewView ( b/146215202 ).
Новые возможности
- Implemented a new class called
PreviewView.TextureViewImplementation
that syncs the SurfaceTexture's lifecycle with the camera's usage of the TextureView's surface.
Camera-Extensions Version 1.0.0-alpha04
December 4, 2019
androidx.camera:camera-extensions:1.0.0-alpha04
is released. Version 1.0.0-alpha04 of camera-extensions contains these commits
API changes
Checking for the availability and enabling of an extension now takes in a
CameraSelector
as an input parameter. This needs to be the sameCameraSelector
that is used for binding the use case.val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA val builder = ImageCapture.Builder() val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder) if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) { bokehImageCaptureExtender.enableExtension(cameraSelector) } val imageCapture = builder.build() mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
You must initialize extensions before using the extension library.
val availability = ExtensionsManager.init() Futures.addCallback<ExtensionsManager.ExtensionsAvailability>( availability, object : FutureCallback<ExtensionsManager.ExtensionsAvailability> { override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) { // Ready to make extensions calls } override fun onFailure(throwable: Throwable) { // Extensions could not be initialized } }, Executors.newSingleThreadExecutor() )
Camera-View Version 1.0.0-alpha04
December 4, 2019
androidx.camera:camera-view:1.0.0-alpha04
is released. Version 1.0.0-alpha04 of camera-view contains these commits
API changes
- A
PreviewView
class is provided for easily displaying the output from the Preview use case in an application. PreviewView
can be included in the layout:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
provides aPreviewSurfaceProvider
to easily connect a Preview use casepreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
“
ZoomLevel
” is now “ZoomRatio
” in API-namingSome method parameters have changed nullability
Camera-Extensions and Camera-View Version 1.0.0-alpha03
October 9, 2019
androidx.camera:camera-extensions:1.0.0-alpha03
and androidx.camera:camera-view:1.0.0-alpha03
are released. These are the commits included in camera-extensions:1.0.0-alpha03
and these are the commits included in camera-view:1.0.0-alpha03
.
Новые возможности
- Added Context initializer for extensions. Extensions version incremented to 1.1.0
Camera-Extensions and Camera-View Version 1.0.0-alpha02
5 сентября 2019 г.
androidx.camera:camera-extensions:1.0.0-alpha02
and androidx.camera:camera-view:1.0.0-alpha02
are released. These are the commits included in camera-extensions:1.0.0-alpha02 and these are the commits included camera-view:1.0.0-alpha02 .
- Added tests to verify
PreviewImageProcessorImpl
has correctly implemented timestamps. - Fix
ExtensionTest
test failure on Nexus 5 (API level 21) and ensure preview is available.
Camera-Extensions and Camera-View Version 1.0.0-alpha01
August 7, 2019
androidx.camera:camera-extensions:1.0.0-alpha01
and androidx.camera:camera-view:1.0.0-alpha01
are released. These are the commits included in camera-extensions:1.0.0-alpha01 and these are the commits included camera-view:1.0.0-alpha01
- New library for future Camera Extensions for accessing effects on supported devices. This library is a work in progress.
- New Camera View class. This library is a work in progress.