CameraX
В этой таблице перечислены все артефакты в группе androidx.camera.
| Объект | Основная версия | Релиз-кандидат | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| camera-camera2 | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-core | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-compose | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-effects | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-extensions | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-feature-combination-query | - | - | - | 1.5.0-alpha06 |
| camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha06 |
| camera-lifecycle | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-mlkit-vision | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-view | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
| camera-video | 1.6.2 | 1.7.0-rc01 | - | - |
Тестирование устройства
Мы тестируем CameraX на множестве устройств в нашей лаборатории. Список устройств, которые сейчас находятся в лаборатории, можно посмотреть на странице Устройства, протестированные в лаборатории CameraX.
Объявление зависимостей
Чтобы добавить зависимость от CameraX, необходимо добавить в проект репозиторий Google Maven. Подробную информацию можно найти в статье Репозиторий Google Maven.
Добавьте зависимости для нужных артефактов в файл build.gradle приложения или модуля:
Классный
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.7.0-alpha03" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Котлин
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.7.0-alpha03" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
Отзыв
Ваши отзывы помогают нам улучшать Jetpack. Если вы обнаружите новые проблемы или у вас появятся идеи по улучшению этой библиотеки, сообщите нам. Прежде чем сообщать о новых ошибках, изучите уже добавленные. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Дополнительную информацию можно найти в документации по системе отслеживания ошибок.
Camera Viewfinder Compose версии 1.0
Версия 1.0.0-alpha02
12 июня 2024 г.
Выпущены данные "androidx.camera:camera-viewfinder-compose:1.0.0-alpha02". Версия 1.0.0-alpha02 содержит эти коммиты.
Версия 1.0.0-alpha01
14 мая 2024 г.
Выпущены данные "androidx.camera:camera-viewfinder-compose:1.0.0-alpha01". Версия 1.0.0-alpha01 содержит эти коммиты.
Новые функции
- Новая библиотека. В этой библиотеке есть нативная composable-функция Viewfinder, которую можно использовать с CameraX и Camera2. Составной видоискатель поддерживает различные соотношения сторон и обработку событий касания.
Видоискатель камеры, версия 1.4
Версия 1.4.0-alpha07
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-alpha06
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.7
Версия 1.7.0-rc01
21 октября 2026 г.
Выпущены данные "androidx.camera:camera-*:1.7.0-rc01". Версия 1.7.0-rc01 содержит эти коммиты.
Изменения в API
- Интерфейсы
UseCaseCamera2Interop,ImageCaptureCamera2Interop,SessionConfigCamera2InteropиCameraControlCamera2Interopпреобразованы в абстрактные классы. (If654e) - Исправлена проблема с неоднозначностью Camera2Interop V2 (I1bbe5).
Исправление ошибок
- Исправлен сбой на уровне ОС
SIGSEGVв потокеCameraXOpenGL, когдаSurfaceProcessorосвобождал входнойSurfaceTexture, чейSurfaceRequestбыл удален сборщиком мусора до завершения. (I76f73, b/563673593) - Исправлена утечка Surface и сбой на уровне ОС
OpenGL, которые могли происходить во время сборки мусора, когда исполнительCameraEffectилиHandlerThreadзавершал работу до закрытияSurfaceOutputэффекта. (Ifcc19, b/558819242) - Улучшено поведение функции "Усиление при слабом освещении". Теперь при включении этой функции или фонарика применяется правило "последняя настройка имеет приоритет", то есть включение одной функции автоматически отключает другую вместо отклонения запроса. Кроме того, теперь при фотосъемке в режиме "Слабое освещение" можно использовать вспышку. (Ie583f)
- Зависимость
androidx.lifecycle:lifecycle-runtimeобновлена до версии 2.10.0. Эта версия необходима для запуска встроенных проверок времени выполнения жизненного цикла с AGP версии 9.5.0-alpha04 или более поздней. (I99bfd, b/556807521) - Поддержка получения
CameraSelectorна физических камерах изCameraInfo.getPhysicalCameraInfos()и привязкиUseCasesк физическим камерам. При запросеCameraInfoс физическимCameraSelectorтеперь возвращается физическийCameraInfoвместо логическогоCameraInfo. (Ibe7f2) - В Javadoc для
OutputOptions.Builder.setLocationуточнено, что в метаданных видео хранятся только широта и долгота. (I77d3b, b/551348846) - Исправлена ошибка в
ImageAnalysis, из-за которой динамическое изменение поворота выходного изображения или отмена привязки варианта использования могли привести к утечке ресурсов Surface/ImageReader. (I25cef) CameraInfo.getIntrinsicZoomRatio()теперь округляет возвращаемое соотношение до двух десятичных знаков. (Ibe9a8)- Смягчена проверка
HardwareBuffer.isSupportedдля форматаPRIVATEвImageAnalysis, чтобы предотвратить ложноотрицательные сбои на некоторых устройствах. (I347a4, b/545866947) - Исправлен сбой компиляции в новых версиях JDK при разрешении транзитивно импортированных аннотаций типов JSpecify во внутренних полях
CameraX. (I00bb4, b/543937345)
Версия 1.7.0-alpha03
12 августа 2026 г.
Выпущены данные "androidx.camera:camera-*:1.7.0-alpha03". Версия 1.7.0-alpha03 содержит эти коммиты.
Изменения в API
- Устаревшие API Camera2Interop (
Camera2Interop.Extender,Camera2CameraControl,Camera2CameraInfoиCaptureRequestOptions) заменены фабричными методами конфигуратораCamera2Interopи функциями расширения Kotlin. (Ib0845, b/529609261) - Добавлены блоки расширения Kotlin DSL
camera2Interopдляpreview,imageAnalysis,videoCapture,imageCaptureиSessionConfig.Builder, а также функция расширенияCameraControl.applyCamera2InteropAsync. (I51af9, b/529609261) - Добавлены новые фабричные методы конфигуратора
Camera2Interop(forUseCase,forImageCapture,forSessionConfig,forCameraControl) и соответствующие методыsetInterop/applyInteropAsyncвPreview.Builder,ImageCapture.Builder,ImageAnalysis.Builder,VideoCapture.Builder,SessionConfig.BuilderиCameraControl. (I0007b, b/529609261) - Добавлены вспомогательные методы для
Camera2Interopи эквивалентные свойства расширения Kotlin (CameraInfo.cameraId,CameraInfo.cameraCharacteristicsиString.toCameraSelector()), позволяющие получать идентификатор и характеристики камеры Camera2 изCameraInfo. (I11803, b/529609261) - В общедоступные API добавлены
Preview.setMirrorMode,Preview.getMirrorModeиVideoCapture.setMirrorMode, а аннотацияExperimentalMirrorModeудалена. (I4ed60, b/519794349, b/470629643) - Добавлены конструкторы Kotlin DSL
preview{ ... },imageCapture{ ... },imageAnalysis{ ... } иvideoCapture{ ... } для созданияUseCases. (I91df9, b/530013719) - Изменен ImagePlane.buffer, чтобы он был ненулевым ByteBuffer. (I98593)
- В Kotlin DSL объявлены устаревшими методы получения свойств для
SessionConfig.Builder,HighSpeedVideoSessionConfig.BuilderиExtensionSessionConfig.Builder, чтобы обеспечить использование свойств только для записи. (I2875b, b/534570559)
Исправление ошибок
- Исправлена ошибка, из-за которой при связывании нескольких вариантов использования
PreviewсOverlayEffectпроисходил сбой доставки одного потока предварительной версии. (I7a383, b/532577546, b/532924417) - Исправлена ошибка, из-за которой на устройствах
Recording.pause()иRecording.resume()происходил сбой при переключении камер во время непрерывной видеозаписи. I71004, b/532327691, b/367121726 - Исправлены сбои HAL при использовании нулевой задержки затвора (ZSL) во время масштабирования за пределами физической камеры на устройствах с несколькими камерами. (I1c374, b/527782712, b/514757157)
- Исправлена ошибка, из-за которой на устройствах Samsung Galaxy S25, S26 и Fold 7 могла не работать запись видео в формате HDR. (Ic0827, b/529618629)
Версия 1.7.0-alpha02
1 июля 2026 г.
Выпущены данные "androidx.camera:camera-*:1.7.0-alpha02". Версия 1.7.0-alpha02 содержит эти коммиты.
Изменения в API
- В
CameraXViewfinderтеперь поддерживаются встроенные жесты для масштабирования и фокусировки, а также мигание экрана и состояние потока.FocusStateтеперь является общедоступным в viewfinder-core, чтобы можно было отслеживать результаты фокусировки по нажатию. (I66a17, b/522549890) - Добавлен класс
isAutoRotationEnabledвSessionConfig.Builder,HighSpeedVideoSessionConfig.Builder,ExtensionSessionConfig.Builderи представлены функции фабрики Kotlin DSL для них. Это позволяет автоматически устанавливать нужную ориентацию на основе данных от датчиков устройства. (I5b4a3, b/510752515) - В
TransformationInfoдобавлено свойствоTransformationMode, чтобы приложения могли использовать конвейерOpenGLв режимеEMBEDDED. (Id1de1, b/487826941) - В
CameraInfoдобавленыisNightModeIndicatorSupported()иgetNightModeIndicator(), чтобы определять, когда условия окружающей среды соответствуют критериям для ночного режима. (Iae47b, b/499389465) - Добавлены общедоступные API ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE и ImageProxy.getHardwareBuffer() для поддержки ImageAnalysis на основе графического процессора. (I41cb3, b/496022391, b/492934501)
- Метод ExtensionsManager#getExtensionEnabledCameraSelector больше не поддерживается. Чтобы включить режимы расширений, используйте новый ExtensionSessionConfig API. (I2b336, b/473715607)
- Добавлена поддержка визуального оформления кадров при одновременной съемке несколькими камерами. Теперь вы можете настроить:
- Скругленные углы. Используйте setRoundedCornerRatio(float), чтобы применить нормализованное скругление (от 0,0 до 1,0) к краям кадра.
- Границы. Используйте setBorderWidthRatio(float) и setBorderColor(int), чтобы добавить декоративную рамку одинаковой толщины (I18a07, b/366349205).
- Обновлен класс CompositionSettings, чтобы обеспечить неотрицательный порядок по оси Z. Добавлена проверка в ConcurrentCamera.setCompositionSettings, чтобы гарантировать, что метод вызывается с правильным количеством настроек в допустимом режиме композиции. (If660d, b/496951658)
- В CameraExtensionsInfo добавлены методы getNightModeIndicator() и isNightModeIndicatorAvailable(), позволяющие приложениям отслеживать, находится ли текущая среда в условиях ночного режима при использовании расширений камеры. (I62bb4, b/499389465)
- Добавлена поддержка качества видео
QHDв VideoCapture. (I0ac20, b/501305592) - Добавлены
Recorder.Builder.setTargetAudioChannelCount(int)иRecorder.getTargetAudioChannelCount(), чтобы разработчики могли явно задавать количество аудиоканалов. (I6bee0, b/441895100) - Добавлен параметр
Recorder.Builder.setTargetAudioEncodingBitRate(int), позволяющий задавать целевой битрейт кодирования аудио. (I29062, b/241151504) - Добавлен API ConcurrentCamera.setCompositionSettings, позволяющий приложениям динамически обновлять композицию текущей камеры после привязки жизненного цикла. Кроме того, новый API setZOrder в CompositionSettings.Builder позволяет точно управлять порядком рендеринга перекрывающихся видео с камер. (I90528, b/473702287)
- Добавлены API для детального управления форматами кодирования. Теперь разработчики могут узнавать, какие форматы поддерживаются устройством, с помощью экспериментальных функций
Recorder.getSupportedVideoMimeTypes()иgetSupportedAudioMimeTypes(). Предпочтительные форматы можно явно задать с помощьюRecorder.Builder.setVideoMimeType()иsetAudioMimeType(). Кроме того,Recorder.getVideoCapabilities(CameraInfo, String)позволяет запрашивать информацию о возможностях камеры, например о поддерживаемых качествах и динамических диапазонах, для выбранного кодека (I4620e, b/491319384). - Добавлен метод CameraController.setAutoRotationEnabled(boolean), позволяющий отключать автоматическое прослушивание поворота устройства. (Ia0c03, b/449573627)
- Добавлена поддержка блокировки AE/AWB в FocusMeteringAction через новый API setLockingMode. Это также позволяет обновлять области 3A без блокировки фокуса, благодаря чему камера может оставаться в режиме непрерывной автофокусировки при обновлении области фокусировки. (I6416f, b/481624745)
Исправление ошибок
- Удалить требование для
compileSdk 37(If78b4) - Исправлено
CameraXViewfinderпроблем с преобразованием в режимеEMBEDDED, когда конвейерOpenGLвключенCameraXдля привязки большего количестваUseCasesили обработки поверхности. (I3e637, b/487826941) - Обновлены тесты и действия, чтобы использовать ExtensionSessionConfig вместо устаревшего API getExtensionEnabledCameraSelector. (I765d8, b/473715607)
- Исправлена ошибка компиляции "Не удается получить доступ к классу ListenableFuture". (Ic8cba, b/497571473)
- Обновлен compileSdk для Compose до API 37. Это значит, что для использования Compose требуется AGP версии 9.2.0 или более поздней. (Id45cd, b/413674743)
Версия 1.7.0-alpha01
11 марта 2026 г.
Выпущены данные "androidx.camera:camera-*:1.7.0-alpha01". Версия 1.7.0-alpha01 содержит эти коммиты.
Изменения в API
- Добавлен
CameraController.setSessionConfig()API. Это позволяет задать собственный объектSessionConfigдля расширенных конфигурацийUseCase, которые не поддерживаютсяCameraControllerнапрямую. КогдаSessionConfigактивен, другие методы настройки вCameraControllerотключены (I35cf1, b/448525636).
Исправление ошибок
- Библиотеки переведены на Java 11. Это означает, что созданный байт-код будет относиться к Java 11 (версия файла класса 55) и для использования библиотеки может потребоваться десахаризация (If4c2a, b/457821470).
- Исправлена ошибка в
ImageAnalysis, из-за которой изображения не поворачивались правильно, когда поворот выходного изображения включен, а начальный относительный поворот равен 0 градусов. (Id46c2, b/487160584)
Версия камеры 1.6
Версия 1.6.2
26 августа 2026 г.
Выпущены данные "androidx.camera:camera-*:1.6.2". Версия 1.6.2 содержит эти коммиты.
Исправление ошибок
- Исправлен сбой компиляции в новых версиях JDK при разрешении транзитивно импортированных аннотаций типов JSpecify во внутренних полях
CameraX. (I00bb4, b/543937345)
Версия 1.6.1
6 мая 2026 г.
Выпущены данные "androidx.camera:camera-*:1.6.1". Версия 1.6.1 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка компиляции "Не удается получить доступ к классу
ListenableFuture" при использовании CameraX 1.6.0. (Ic8cba, b/497571473)
Версия 1.6.0
25 марта 2026 г.
Выпущены данные "androidx.camera:camera-*:1.6.0". Версия 1.6.0 содержит эти коммиты.
Важные изменения по сравнению с версией 1.5.0
1. Переход на высокопроизводительный унифицированный стек камеры
- Теперь CameraX использует
CameraPipe– тот же современный высокопроизводительный стек, на котором работает камера Pixel. Это упрощает архитектуру и закладывает масштабируемую основу для внедрения передовых функций вычислительной фотографии в экосистему разработчиков.
2. Интеграция с Media3 Muxer
- Теперь CameraX по умолчанию интегрирует Media3 Muxer в API VideoCapture. Переход на новую версию дает следующие преимущества:
- Повышенная производительность. Более эффективная обработка и мультиплексирование видео.
- Устойчивость к сбоям. Улучшенная защита от повреждения видеофайлов, обеспечивающая сохранение данных даже в случае сбоя приложения во время записи.
3. Улучшение группы функций
- Feature Group API теперь поддерживает стабилизацию видео и запись в 4K.
GroupableFeaturesвключаетVIDEO_STABILIZATIONиUHD_RECORDING, чтобы приложения могли включать их вместе с другими функциями.CameraEffectиImageAnalysisвSessionConfigподдерживаются, если включена группа функций.
4. Стабилизирован SessionConfig API.
SessionConfigбольше не является экспериментальным API. Теперь это стабильный общедоступный API, включающийSessionConfigиHighSpeedVideoSessionConfig. Теперь расширения CameraX можно реализовать с помощью нового APIExtensionSessionConfig. Добавлен новый APIisSessionConfigSupported, позволяющий разработчикам запрашивать, поддерживается ли устройством определенная комбинация вариантов использования и функций (например, HDR, стабилизация, определенные разрешения, расширения CameraX или замедленная съемка), прежде чем привязывать ее к жизненному циклу.
Исправление ошибок
- Исправлена ошибка, которая возникала на некоторых устройствах с Android 17 (API 37) или более поздней версии. Когда эти устройства предоставляют новые профили динамического диапазона (например, STANDARD_SMPTE_2094_50(ID 8192)), которые не поддерживаются в CameraX версии 1.5.1 и более ранних, библиотека не может правильно обработать эти идентификаторы, что приводит к ошибке
NullPointerExceptionилиIllegalArgumentExceptionво времяProcessCameraProvider.bindToLifecycle(). Это исправление позволяет CameraX игнорировать нераспознанные профили динамического диапазона, предотвращая сбой и поддерживая прямую совместимость. Чтобы избежать этой проблемы на устройствах с новыми профилями, обновите зависимость CameraX до версии 1.5.2, 1.6.0 или более поздней. Подробную информацию можно найти в описании проблемы 519796838. (Ibd7b5) - Теперь API группы функций предоставляет согласованные результаты, когда
PREVIEW_STABILIZATIONиспользуется сVideoCapture. Это исправляет ошибку, которая приводила к несогласованным результатам, когда вариант использования предварительной версии не был активен. (Ifed82, b/449913903) - Исправлена ошибка, из-за которой были доступны неподдерживаемые предпочтительные функции. Теперь функции правильно фильтруются, если не выполняются необходимые условия использования. (I38db8, b/449532342)
- Исправлена ошибка, из-за которой на Samsung Galaxy S6 видео воспроизводилось с помехами. (I612d9, b/235127608)
- Исправлена ошибка, из-за которой
CameraInfo#isFeatureGroupSupportedмог неправильно возвращать значение true дляPREVIEW_STABILIZATION, еслиSessionConfigв запросе уже был настроен с другими функциями. (I2c355c, b/437816469) - Исключены проблемные размеры выходных данных в формате YUV на устройствах Samsung Z Fold 4. Полученные изображения искажаются при использовании этих размеров. (I776bf, b/460322307)
- Исправлена проблема, возникавшая на устройствах Samsung A53, из-за которой иногда не удавалось сделать снимок с включенной вспышкой, если использовался вариант
VideoCapture. (I0f183, b/458197367) - Исправлена ошибка, из-за которой на некоторых устройствах при использовании вспышки со сверхширокоугольной камерой могли получаться недоэкспонированные снимки. (Ib7530, b/444590340)
- Обновлена зависимость
ExifInterface, чтобы исправить синтаксический анализ JPEG с заполнением0xFF. Это устраняет сбои при фотосъемке на устройствах, где кодировщик JPEG добавляет байты заполнения перед маркерами. (I0eb49)
Версия 1.6.0-rc01
25 февраля 2026 г.
Выпущены данные "androidx.camera:camera-*:1.6.0-rc01". Версия 1.6.0-rc01 содержит эти коммиты.
Версия 1.6.0-beta02
11 февраля 2026 г.
Выпущены данные "androidx.camera:camera-*:1.6.0-beta02". Версия 1.6.0-beta02 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка
ImageCaptureOUTPUT_FORMAT_RAW_JPEG in-memory captureIllegalArgumentException. (Id4eec, b/479990902) - Переход на мультиплексор AndroidX Media3. Это позволило устранить две проблемы: 1) повреждение видео при неожиданных прерываниях или завершении работы приложения; 2) сбои при сохранении видео в дескрипторах прокси-файлов. (I23b63, b/433649708, b/264812009, b/475750115)
Версия 1.6.0-beta01
28 января 2026 г.
Выпущены данные "androidx.camera:camera-*:1.6.0-beta01". Версия 1.6.0-beta01 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка
CameraExtensionsInfoв CameraX 1.6.0-alpha, из-за которой объект LiveData не мог получать обновленные данные. (I2c7a5) - Обновлена зависимость ExifInterface, чтобы включить исправление для синтаксического анализа JPEG с заполнением 0xFF. Это устраняет сбои при фотосъемке на устройствах, где кодировщик JPEG добавляет байты заполнения перед маркерами. (I0eb49)
Версия 1.6.0-alpha02
17 декабря 2025 г.
Выпущены данные "androidx.camera:camera-*:1.6.0-alpha02". Версия 1.6.0-alpha02 содержит эти коммиты.
Новые функции
- Добавлена группируемая функция для обозначения стабилизации видео в конфигурации сеанса. Теперь разработчики могут запрашивать стабилизацию видео как обязательную или предпочтительную функцию, что позволяет использовать ее вместе с другими группируемыми функциями, такими как UHD_RECORDING и PREVIEW_STABILIZATION. (Ic6757, b/419766630)
- Добавлены группируемые функции для обозначения качества видеозаписи в конфигурации сеанса. Теперь разработчики могут запрашивать определенное качество (например, UHD или FHD) как обязательное или предпочтительное, наряду с другими группируемыми функциями, такими как HDR и 60 кадров/с. (Ib5cd3, b/437820285)
- Добавлена поддержка использования
CameraEffectи API групп функций вSessionConfig. (I17f18, b/406370934) - Добавлена поддержка использования
ImageAnalysisи API групп функций вSessionConfig. (I87833, b/406371720)
Изменения в API
- Добавлена функция-сеттер
addUseCaseдляExtensionSessionConfig.Builderи недостающие геттеры дляExtensionSessionConfig. (I71e07, b/453988621) - Добавлен API
ExtensionsManager.getInstance, который является приостанавливающей версиейExtensionsManager.getInstanceAsync(I3a0a9, b/452208792). isFeatureGroupSupportedпереименован вisSessionConfigSupportedи теперь поддерживает любые типыSessionConfig. (I21616, b/448781299)- Сервис "
ExtensionsManager" преобразован в реализацию Kotlin. (I73091, b/452208792) - Добавлен метод
CameraProvider#getCameraInfo(CameraSelector, SessionConfig)для полученияCameraInfo, когдаSessionConfigможет влиять на выбор камеры. Например, при использованииExtensionSessionConfig. (Ic548c, b/451891648) - Доступно
ExtensionSessionConfigAPI. Теперь приложения могут создаватьExtensionSessionConfigи использовать его для создания сеанса расширений. (I6354c, b/448524373) - API
androidx.camera.video.HighSpeedVideoSessionConfigбольше не является экспериментальным и теперь полностью стабилен. (I492d4, b/447558239) - API
androidx.camera.core.SessionConfigбольше не является экспериментальным и теперь полностью стабилен. (Idc87a, b/447558437)
Исправление ошибок
- Исправлен сбой, связанный с
IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object:на устройствах с Android 17 или более поздней версии. (Ibd7b5, b/463465353) - Исключены проблемные размеры выходных данных в формате YUV на устройствах Samsung Z Fold 4. Полученные изображения искажаются при использовании этих размеров. (I776bf, b/460322307)
- Исправлена ошибка, из-за которой параметр
CaptureRequest.FLASH_MODEне применялся, если он был задан через APICamera2Interop. (I0004c, b/459608684) - Исправлена проблема, возникавшая на устройствах Samsung A53, из-за которой иногда не удавалось сделать снимок с включенной вспышкой, если использовался вариант
VideoCapture. (I0f183, b/458197367) - Исправлена ошибка, из-за которой на некоторых устройствах при использовании вспышки со сверхширокоугольной камерой могли получаться недоэкспонированные снимки. (Ib7530, b/444590340)
Версия 1.6.0-alpha01
22 октября 2025 г.
Выпущены данные "androidx.camera:camera-*:1.6.0-alpha01". Версия 1.6.0-alpha01 содержит эти коммиты.
Новые функции
- CameraX перешла на унифицированный высокопроизводительный стек камеры, который также используется в приложении "Камера Pixel". Этот новый стек, известный как
CameraPipe, является результатом сотрудничества команд CameraX и Pixel Camera. Это гарантирует, что все улучшения будут доступны как пользователям CameraX, так и пользователям приложения "Камера" на Pixel.
Изменения в API
- Добавлены новые API для динамического обнаружения добавления/удаления камеры. Подробную информацию вы найдете в документации по
CameraPresenceListenerAPI. (I41ead, b/427182232, b/419441394)
Исправление ошибок
- Теперь API группы функций предоставляет согласованные результаты, когда
PREVIEW_STABILIZATIONиспользуется сVideoCapture. Это исправляет ошибку, которая приводила к несогласованным результатам, когда вариант использованияPreviewне был активен. (Ifed82, b/449913903) - Исправлена ошибка, из-за которой были доступны неподдерживаемые предпочтительные функции. Теперь функции правильно фильтруются, если не выполняются необходимые условия использования. (I38db8, b/449532342)
- Исправлена ошибка, из-за которой на Samsung Galaxy S6 видео воспроизводилось с помехами. (I612d9, b/235127608)
- Исправлена ошибка, из-за которой
CameraInfo#isFeatureGroupSupportedмог неправильно возвращать значение true дляPREVIEW_STABILIZATION, еслиSessionConfigв запросе уже был настроен с другими функциями. (I2c355c, b/437816469)
Версия камеры 1.5
Версия 1.5.3
28 января 2026 г.
Выпущены данные "androidx.camera:camera-*:1.5.3". Версия 1.5.3 содержит эти коммиты.
Исправление ошибок
- Зависимость ExifInterface обновлена до версии 1.4.2. Это устраняет ошибку фотосъемки, которая возникает на устройствах, создающих JPEG-файлы с дополнительными (и разрешенными) байтами 0xFF перед маркером. (I16df4)
Версия 1.5.2
4 декабря 2025 г.
Выпущены данные "androidx.camera:camera-*:1.5.2". Версия 1.5.2 содержит эти коммиты.
Исправление ошибок
- Исправлен сбой, связанный с
IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object:на устройствах с Android 17 или более поздней версии. (Ic9184) - Исправлена ошибка, из-за которой API групп функций возвращал несогласованные результаты, когда функция
PREVIEW_STABILIZATIONдобавлялась со сценарием использованияVideoCapture, но без сценария использованияPreview. (Ifed82) - Исправлена ошибка, из-за которой предпочтительные функции не отфильтровывались, несмотря на отсутствие необходимых вариантов использования для поддержки этих функций. (I38db8)
Версия 1.5.1
8 октября 2025 г.
Выпущены данные "androidx.camera:camera-*:1.5.1". Версия 1.5.1 содержит эти коммиты.
Исправление ошибок
- Поддержка
CameraEffectв режиме одновременного совмещения камер. Эффект будет применен к выходным данным композиции. Обратите внимание, чтоmirrorModeвVideoCaptureбудет игнорироваться, если эффект задан в режиме композиции параллельных камер. (If3d00, b/425565129) - Исправлена ошибка, из-за которой
mirrorModeнеправильно применялся к дополнительной камере в режиме композиции с параллельными камерами. (I686cd, b/446430827) - Поддержка связывания
Preview,ImageCaptureиVideoCaptureв режиме одновременной работы камер без композиции. (Ib410a, b/443009871) - Исправлена ошибка, из-за которой UseCases, такие как
ImageCaptureиVideoCapture, теряли информацию о целевом повороте при повторном создании. Это может привести к неправильной ориентации изображений или видео, если после поворота устройства была изменена такая настройка, какimageCaptureMode. (I477c8, b/444734537) - Исправлена ошибка, из-за которой в режиме предварительного просмотра не удавалось выбрать разрешение 16:9, а в
VideoCapture– записать видео в качестве QUALITY_1080P. Эта проблема возникала при использовании конфигурации разрешения предварительного просмотра по умолчанию, когда была активна внутренняя функцияStreamSharing(например, когда одновременно привязаны четыре UseCase). (I493cb, b/440364875) - Устранена ошибка, из-за которой происходил сбой, когда эффект активировался после закрытия
SurfaceProcessor(I2c450, b/414150174). - Исправлена ошибка в
CameraController, которая вызывалаIllegalStateException, когда начальный UseCase выбирал максимальное разрешение, что впоследствии мешало привязке других UseCase. (Ifb758, b/440374234) - Исключает проблемные размеры выходных данных YUV_420_888 для Nokia 7 Plus, которые вызывают сбой без сообщений об ошибках. (I3af47, b/436524501)
- Исправлена ошибка, из-за которой
CameraInfo#isFeatureGroupSupportedмог неправильно возвращать значение true для функцииPREVIEW_STABILIZATION. Иногда это может происходить при запросе сSessionConfig, который уже был настроен с другими функциями. (I2c355, b/437816469) - Повышена стабильность
CameraXViewfinderна старых уровнях API и устройствах с проблемамиSurfaceViewза счет использованияTextureViewпо умолчанию в таких сценариях. Этот резервный механизм теперь используется по умолчанию, но его можно переопределить программно. (Ieb476, b/437496463) - Исправлена утечка памяти в
PreviewView, из-за которой могла не выполняться сборка мусора в Activity. Это происходит, если новыйSurfaceRequestпоступает до того, как обработан предыдущий. (I4aa0b,b/443112512) - Исправлена ошибка, из-за которой на устройствах Huawei P smart, Infinix Hot 40i и Realme C53 не работала запись в ускоренном и замедленном режимах. (40a668e, b/442984200)
Версия 1.5.0
10 сентября 2025 г.
Выпущены данные "androidx.camera:camera-*:1.5.0". Версия 1.5.0 содержит эти коммиты.
Важные изменения по сравнению с версией 1.4.0
- Высокоскоростная и замедленная съемка. Легко интегрируйте высокоскоростную (120/240 кадров/с) и замедленную съемку с минимальным количеством кода. Подробную информацию можно найти в статьях
Recorder#getHighSpeedVideoCapabilities(CameraInfo)иHighSpeedVideoSessionConfig. SessionConfigиFeatureGroupAPI. НовыйSessionConfigAPI позволяет настраивать сеанс камеры и безопасно включать несколько функций одновременно, в том числе HLG (HDR), Ultra HDR, 60 кадров/с и стабилизацию предпросмотра. Вы также можете задать приоритетную группу функций, чтобы CameraX определила оптимальную поддерживаемую комбинацию. Дополнительную информацию можно найти в статьяхSessionConfig.Builder#setPreferredFeatureGroup,SessionConfig.Builder#setRequiredFeatureGroupиCameraInfo#isFeatureGroupSupported(SessionConfig).- Deterministic Frame Rate API. Устраните ограничения, связанные с
setTargetFrameRate, используяCameraInfo.getSupportedFrameRateRanges(sessionConfig)для запроса иSessionConfig.setExpectedFrameRateRangeдля установки точной и поддерживаемой частоты кадров. - Расширения камеры. Теперь расширения поддерживают формат UltraHDR. Проверьте
ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats()и включите его вImageCapture.Builder.setOutputFormat. Теперь при включенных расширениях учитываются коэффициент масштабирования и возможности стабилизации предварительного просмотра. - Яркость фонарика. Настройте яркость фонарика с помощью
CameraControl.setTorchStrengthLevel. - Режим усиления при слабом освещении(
CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) можно включить с помощью следующих API:CameraInfo#isLowLightBoostSupported,CameraInfo#getLowLightBoostStateиCameraControl#enableLowLightBoostAsync. - Запись видео. Теперь при нехватке места в хранилище во время записи видео появляется сообщение "
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE".PendingRecording.withAudioEnabled(boolean initialMuted)позволяет управлять начальным состоянием отключения звука для аудиозаписи. - Фотосъемка: поддержка форматов DNG (RAW) и JPEG + DNG (RAW) в
ImageCapture. Проверьте, поддерживает лиImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats()формат RAW. Используйте перегруженные APItakePictureс несколькимиOutputFileOptionsдля съемки в формате RAW+DNG. - Анализ изображений: поддержка формата NV21 в
ImageAnalysis. Включите ее с помощьюImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).
Версия 1.5.0-rc01
13 августа 2025 г.
Выпущены данные "androidx.camera:camera-*:1.5.0-rc01". Версия 1.5.0-rc01 содержит эти коммиты.
Исправление ошибок
- Значение minSdk по умолчанию изменено с API 21 на API 23 (Ibdfca, b/380448311, b/435705964, b/435705223).
- Снято ограничение на 10-битный вывод для режима автоэкспозиции при усилении слабого освещения. Теперь приложения могут одновременно включать обе функции на поддерживаемых устройствах. (I5a638)
- Устранена проблема, из-за которой устройства с чипсетами
UniSocзависали при съемке. Проблема возникала, когдаVideoCapture,PreviewиImageCaptureиспользовались одновременно и для всех потоков было установлено разрешение 1280 x 720. (Ia00c4, b/380802479) - Исправлена ошибка, из-за которой при предварительном просмотре показывался черный экран, если для записи в режиме замедленной съемки не была задана высокая частота кадров. (cdf0ff2e9)
- Улучшена обработка ошибок и ведение журнала в
getViewportAspectRatioInt(82fca18).
Версия 1.5.0-beta02
16 июля 2025 г.
Выпущены данные "androidx.camera:camera-*:1.5.0-beta02". Версия 1.5.0-beta02 содержит эти коммиты.
Изменения в API
- Добавлены новые API, позволяющие более интуитивно и точно настраивать или запрашивать группы функций высокого качества, поскольку эти функции могут не поддерживаться в качестве комбинации на всех устройствах. В
SessionConfigтеперь есть новые API, позволяющие указать, какие функции являются обязательными, а какие – предпочтительными. APICameraInfo.isFeatureGroupSupportedпозволяет узнать, поддерживается ли группа функций, прежде чем привязыватьSessionConfig.SessionConfigтакже позволяет настроить прослушиватель, чтобы знать, какие функции в итоге выбраны, когда привязана конфигурация сеанса. (Ie4d60) - Добавлены новые API
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)иCameraInfo.getSupportedFrameRateRanges(SessionConfig), позволяющие разработчикам запрашивать гарантированно поддерживаемые частоты кадров, ограниченные определеннымSessionConfig, а затем применять частоту кадров кSessionConfig. (Ieacf7) - Представлен новый API
SessionConfig, который включает улучшенную абстракцию для настройки вариантов использования, параметров сеанса,CameraEffect,ViewPortи т. д. ПривязкаSessionConfigк LifecycleOwner открывает сеанс камеры, настраивает его с использованием указанных вариантов использования и параметров сеанса, а также применяет назначенныеCameraEffectиViewPort. При обновленииSessionConfigдля того жеLifecycleOwnerможно просто привязать новыйSessionconfig, не вызывая сначала unbind илиunbindAll. (Iedfc3) - Добавлены новые API для записи видео с высокой скоростью и замедленной съемки. Подробную информацию можно найти в документации по API
HighSpeedVideoSessionConfig. (Ia16f3)
Исправление ошибок
- Исправлена ошибка, из-за которой API
ImageCaptureCapabilities#getSupportedOutputFormats()сообщал, что некоторые устройства поддерживают формат RAW, хотя на самом деле это было не так. (Ibcadb) - Исправлена утечка памяти, которая происходит при использовании
PreviewView, включенииCameraEffectили привязке четырех вариантов использования(StreamSharing) (I87468). - Исправлен сбой записи видео, вызванный
AssertionError: недопустимое состояние внутреннего аудио: IDLING. (I38d4b, b/414259796) - Исправлена ошибка, из-за которой при запуске приложения на внешнем дисплее и горизонтальной ориентации устройства предпросмотр в
PreviewViewрастягивался или поворачивался набок (Ia917a). - Исправлена ошибка, из-за которой настройки стабилизации предварительного просмотра не применялись правильно, когда трансляция с камеры передавалась между предварительным просмотром и VideoCapture (I5430e).
CameraXViewfinderтеперь правильно обрабатывает замену поверхности в базовомViewfinder. Это касается ситуаций, когда видоискательEXTERNALна уровне API 28 или ниже перемещается за пределы экрана или когдаCameraXViewfinder(с любымImplementationMode) является частьюmoveableContentOf(). Если базовый объектViewfinderSurfaceSessionне удается сохранить,CameraXViewfinderаннулирует текущий объектSurfaceRequestCameraX, позволяя CameraX использовать новый объектSurface. (I79432)- Исправлена ошибка в Android 10 и 11, из-за которой
EXTERNALCameraXViewfinderмогло выглядеть растянутым или неправильным, поскольку операции преобразования (например, масштабирование или перенос) применялись слишком рано. Теперь система дожидается создания Surface, прежде чем применять эти преобразования на этапе макета, что обеспечивает правильный вывод. (Icc77c) - Функция Composable
CameraXViewfinderтеперь корректно работает сPagerв Compose. Это изменение гарантирует, что Composable-функция может быть успешно сброшена путем реализации обратного вызоваonResetдляAndroidView, поддерживающего реализацииEMBEDDEDиEXTERNAL. (I0d9be) - Исправлена утечка владельца жизненного цикла, которая происходит при отмене привязки вариантов использования к владельцу жизненного цикла без отключения поставщика камеры.
Версия 1.5.0-beta01
7 мая 2025 г.
Выпущены данные "androidx.camera:camera-*:1.5.0-beta01". Версия 1.5.0-beta01 содержит эти коммиты.
Изменения в API
- Для проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздней версии (Idb6b5).
- Теперь в видоискателе можно использовать
ContentScaleи Alignment, чтобы масштабировать и размещать отображаемую поверхность в ее контейнере, аналогично тому, как работаетandroidx.compose.foundation.Image. (Ibcea3) - Для всех аргументов
TransformationInfoтеперь заданы значения по умолчанию. Это позволит создавать видоискатели безTransformationInfo, в которых по умолчанию будет задан поворот источника на 0, без зеркального отображения источника и без прямоугольника кадрирования. (I2b1b2) - Добавлен поставщик камеры
LifecycleCameraProvider, экземпляр которого можно создать с разными конфигурациями для функций, таких как доступ к камере виртуального устройства путем настройки с настраиваемым контекстом. (Ia2992)
Исправление ошибок
- Исправлена проблема с зависанием предварительного просмотра при использовании
ImageAnalysisс другим потоком, использующимTEMPLATE_RECORDна устройстве Samsung SM-E556B. (Ic0e62, b/409478042) - Исправлена проблема с зависанием предварительного просмотра при использовании
ImageAnalysisс другим потоком, использующимTEMPLATE_RECORD, на устройстве Samsung SM-M556B. (Ic1a6a, b/395822788) - Исправлена ошибка, из-за которой на устройствах Pixel с Android 15 при изменении масштаба в ночном режиме
AssertErrorвозникали проблемы с расширениями. (I27a5d, b/401460276) - Исправлена ошибка, из-за которой ML Kit Analyzer возвращал неверные координаты граничной рамки при использовании
CameraController. (Iae91b, b/409808510)
Версия 1.5.0-alpha06
26 февраля 2025 г.
Выпущены данные "androidx.camera:camera-*:1.5.0-alpha06". Версия 1.5.0-alpha06 содержит эти коммиты.
Изменения в API
- Добавлены
CameraInfo.getTorchStrengthLevel,CameraInfo.getMaxTorchStrengthLevelиCameraControl.setTorchStrengthLevel, чтобы можно было настраивать яркость фонарика (I00878). - Добавлен новый API
CameraController#setTapToFocusAutoCancelDuration, позволяющий пользователям управлять автоматической отменой событий фокусировки по нажатиюPreviewView. По умолчанию CameraX отменяет события фокусировки через 5 секунд (то есть фокус камеры сбрасывается). Этот API позволяет изменить длительность или полностью отключить автоматическую отмену. (Icf59a) FLASH_STATE_READYпереименован вNOT_FIRED, а другиеFlashStateназваний констант упрощены для удобства чтения. (I8771d)- Добавлен Low Light Boost API. Устройства с Android 15 или более поздней версии могут поддерживать усиление при слабом освещении. Эта функция позволяет автоматически корректировать яркость предварительного просмотра, видео или потоков анализа изображений в условиях низкой освещенности. Приложения могут использовать новый API, чтобы: 1. Чтобы проверить доступность функции, используйте
CameraInfo#isLowLightBoostSupported. 2. ИспользуйтеCameraControl#enableLowLightBoostAsync, чтобы включить режим, если устройства его поддерживают. 3. ИспользуйтеCameraInfo#getLowLightBoostState, чтобы отслеживать состояние усиления при слабом освещении. (I937ed) - Добавлены классы совместимости, чтобы ускорить запросы, не связанные с camera2, в camera-feature-combination-query. (Ie97ee)
- Для событий фокусировки по нажатию
CameraControllerновый APIgetTapToFocusInfoState()теперь также предоставляет соответствующую позицию нажатия, возвращаяLiveDataклассаTapToFocusInfo, а предыдущий APILiveData<Integer>, возвращающийgetTapToFocusState(), устарел и заменен новым API. (I238d2)
Исправление ошибок
- Исправлена ошибка, из-за которой стабилизация предварительного просмотра не применялась, когда она была включена с помощью расширений. (I24ad7)
- Исправлена ошибка, из-за которой событие состояния фокуса
CameraControllerне сбрасывалось обратно наTAP_TO_FOCUS_NOT_STARTED, когда CameraX автоматически отменяла событие фокуса, которое по умолчанию происходит через 5 секунд. (I31954) - Исправлена ошибка, из-за которой предварительный просмотр зависал при использовании нулевой задержки затвора после нескольких снимков из-за невыпущенных ресурсов изображений. (Ic3c2a)
- Исправлена ошибка, из-за которой на некоторых устройствах видео в формате UHD воспроизводились с красным оттенком, если в конвейере использовался
OpenGL. (Idcedc)
Версия 1.5.0-alpha05
15 января 2025 г.
Выпущены данные "androidx.camera:camera-*:1.5.0-alpha05". Версия 1.5.0-alpha05 содержит эти коммиты.
Изменения в API
- Добавьте
VideoCapture.getSelectedQuality(), чтобы узнать выбранное качество на основеQualitySelector. (I70508, b/204288986) - Если фотосъемка выполняется с помощью API
ImageCapture.OnImageCapturedCallback, то объект ImageInfo в возвращенномImageProxyтеперь можно использовать, чтобы узнать, сработала ли вспышка, через новый APIImageInfo.getFlashState(). (Id2c61, b/380527406) - Добавлена поддержка формата вывода
OUTPUT_IMAGE_FORMAT_NV21дляImageAnalysis. (I484ab) - Удалено экспериментальное примечание для артефакта
featurecombinationquery(I4427f). - Настройте диапазон коэффициентов масштабирования, разрешенный для
CameraControl, по характеристикам, относящимся к расширениям, когда включен режим расширений. (I85af1)
Исправление ошибок
- Значение
compileSdkизменено на 35, чтобы использовать API, связанные с Android 15. В приложениях, использующих библиотеки CameraX, также потребуется обновить параметр конфигурацииcompileSdk. (Ic80cd) - Теперь в этой библиотеке используются аннотации JSpecify nullness, которые относятся к типу type-use. Разработчикам, использующим Kotlin, следует применять следующий аргумент компилятора, чтобы обеспечить правильное использование:
-Xjspecify-annotations=strict(это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). (Idc6c6, b/326456246)
Версия 1.5.0-alpha04
11 декабря 2024 г.
Выпущены данные "androidx.camera:camera-*:1.5.0-alpha04". Версия 1.5.0-alpha04 содержит эти коммиты.
Изменения в API
ImageCapture.Builder#setOutputFormatиImageCaptureCapabilities#getSupportedOutputFormatsтеперь являются стабильными API (Ieb04a).- Добавьте
VideoCapture.getResolutionInfo(), чтобы получать информацию о разрешении, когдаVideoCaptureпривязан к жизненному циклу. (Icb478) PreviewView.getScreenFlashиPreviewView.setScreenFlashOverlayColorтеперь доступны как стабильные API. (I74fee)
Исправление ошибок
- Исправлена ошибка, из-за которой на устройстве Vivo 1610 не удавалось сделать снимок со вспышкой в темноте. (I366f4)
- Исправлена ошибка, из-за которой на Redmi Note 6 Pro фонарик неожиданно выключался после фотосъемки. (I2e0e8, b/377144569)
- Исправлена проблема, из-за которой на устройствах Pixel с Android 15 в ночном режиме в расширениях не удавалось сделать фото, пока камера не фокусировалась на ближайшем объекте. (I228d4)
- Исправлена ошибка, из-за которой не работала фотосъемка, когда включены расширения и
VideoCapture. (I5c745) - Включена поддержка фотосъемки
UltraHDRдля расширений, если устройство поддерживает эту функцию. (I48300) - Исправлена проблема с таймингом вспышки при фотосъемке с
CameraEffectна устройствах TCL. (I7698c)
Версия 1.5.0-alpha03
30 октября 2024 г.
Выпущены данные "androidx.camera:camera-*:1.5.0-alpha03". Версия 1.5.0-alpha03 содержит эти коммиты.
Изменения в API
- Добавлены API выходных форматов для RAW и RAW + JPEG
ImageCapture, проверка возможностей устройства выполняется вImageCaptureCapabilities#getSupportedOutputFormats.OUTPUT_FORMAT_RAW– для съемки в формате RAW (Adobe DNG), аOUTPUT_FORMAT_RAW_JPEG– для одновременной съемки в форматах RAW и JPEG. Новый APIImageCapture#takePictureиспользуется для одновременной фотосъемки. Он должен предоставлять дваOutputFileOptions: первый – для изображения RAW, а второй – для изображения JPEG. (Ib0f3d)
Исправление ошибок
- Исправлена проблема с недоэкспонированием видео и предпросмотра на устройствах TCL, когда включен режим
VideoCapture. (Id7a64) - Исправлена ошибка, из-за которой вызов
startFocusMeteringсPreviewView.getMeteringPointFactoryне позволял получить правильные координаты датчика, когда включен эффект или когда привязаны четыре варианта использования (совместное использование потока). (I916c5, b/345993685) - Исправлена ошибка, из-за которой событие
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEне запускалось, если при записи видео не хватало места в хранилище. (I35779, b/356399842)
Версия 1.5.0-alpha02
2 октября 2024 г.
Выпущены данные "androidx.camera:camera-*:1.5.0-alpha02". Версия 1.5.0-alpha02 содержит эти коммиты.
Новые функции
- Новые API для запроса функций камеры, поддерживаемых устройством. Например, можно ли одновременно включить HDR и 60 кадров/с. В нее входят два артефакта: camera-feature-combination-query и camera-feature-combination-query-play-services.
Это совместимая версия API
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupportedcamera2 с дополнительными данными, предоставляемыми сервисами Google Play.
Исправление ошибок
- Исправлена проблема с целевой частотой кадров
Preview/VideoCaptureна устройствах уровня LEGACY. Целевая частота кадров, заданная с помощью APIsetTargetFrameRateилиCamera2Interop, всегда перезаписывалась значением, предоставленнымAeFpsRangeLegacyQuirk. После этого библиотека CameraX будет учитывать значение, заданное через APIsetTargetFrameRateилиCamera2Interop. (Ie2d32) - Добавлены функции вспышки, фонарика и 3A для фотосъемки с помощью
CameraEffect. Фотосъемка с использованиемCameraEffectдолжна выполняться с той же предварительной и последующей обработкой (например, срабатыванием вспышки, конвергенцией 3A и т. д.), что и безCameraEffect. (I5ff30) - Исключены проблемные размеры выходных данных для
ImageAnalysisна устройстве Samsung SM-A057G. Если вImageAnalysisиспользуется разрешение 1920 x 1440 или выше, предварительный просмотр будет недоступен. Чтобы избежать этой проблемы, на устройстве SM-A057G было применено исправлениеExcludedSupportedSizesQuirk. (I63dfe, b/365877975) - Исправлена проблема с целевой частотой кадров
Preview/VideoCapture, возникавшая, когда внутренний механизм передачи потока был включен для передачи потока вPreviewиVideoCapture. (I4fdac) - Добавлено временное решение проблемы с неверными метаданными изображений JPEG на устройствах Samsung S10e и S10+. После исправления CameraX может успешно сохранять изображения JPEG, а при вызове функции
ImageProxy.toBitmap()на этих устройствах могут возвращаться правильные объекты Bitmap, если возникает проблема с неправильными метаданными изображений JPEG. (Iae493, b/356428987) - Отключены расширения для задней камеры Samsung A52s с идентификатором 0, поскольку при съемке HDR-изображений могут происходить сбои на уровне ОС, а при настройке сеансов съемки в режимах BOKEH или FACE_RETOUCH могут возникать ошибки. (I03ec9, b/364152642)
- Исправлена ошибка, из-за которой событие
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEне запускалось, если при записи видео не хватало места в хранилище. (Ia5b4f, b/356399842) - Исправлена ошибка, из-за которой не удавалось записать второе видео на Oppo A5 (CPH1931). (I181d6)
Версия 1.5.0-alpha01
4 сентября 2024 г.
Выпущены данные "androidx.camera:camera-*:1.5.0-alpha01". Версия 1.5.0-alpha01 содержит эти коммиты.
Новые функции
- Выпущен новый артефакт
camera-composeдля адаптера CameraX Viewfinder Compose, который показывает поток предварительного просмотра изSurfaceRequestCameraX изcamera-core. (I8666e) - Добавлена новая composable-функция
CameraXViewfinder, которая адаптируетSurfaceRequestCameraX для composable-функцииViewfinder. (I4770f)
Изменения в API
- Предоставить API для настройки композиции при одновременной видеозаписи с двух камер. Настройки включают значение альфа-канала для смешивания, смещение по координатам X и Y, а также масштаб ширины и высоты окна отображения кадра камеры. Смещение, ширина и высота указываются в нормализованных координатах устройства. (Ia2b8a)
CameraProvider.getCameraInfoтеперь является официальным API. (I901cd)- Добавлен API
PendingRecording.withAudioEnabled(boolean initialMuted)для управления исходным состоянием отключения звука. (I635c3, b/354829267)
Исправление ошибок
- Исправлена ошибка, возникающая при вызове
bindToLifecycleс удаленнымLifecycleOwner. (I6e6d8) - Исправлена ошибка, из-за которой при подключении к
VideoCaptureна Motorola Edge 20 Fusion на экране предварительного просмотра с фронтальной камеры показывался черный экран. (I1fe88) - Оптимизирована конфигурация для распознавания жестов масштабирования в
PreviewView, чтобы повысить плавность. (I04ffc)
Версия камеры 1.4
Версия 1.4.2
26 марта 2025 г.
Выпущены данные "androidx.camera:camera-*:1.4.2". Версия 1.4.2 содержит эти коммиты.
Исправление ошибок
- Исправлена проблема с зависанием предварительного просмотра при использовании
ImageAnalysisс другим потоком, использующимTEMPLATE_RECORD, на Samsung Galaxy M55. (Ic1a6a, b/395822788)
Версия 1.4.1
11 декабря 2024 г.
Выпущены данные "androidx.camera:camera-*:1.4.1". Версия 1.4.1 содержит эти коммиты.
Исправление ошибок
- Исправлена проблема, из-за которой на устройствах Pixel с Android 15 в ночном режиме в расширениях не удавалось сделать фото, пока камера не фокусировалась на ближайшем объекте. (I228d4)
- Устранена проблема, из-за которой
ImageCapture#takePictureне работал, если расширения были включены иVideoCaptureбыл связан с ними. (I5c745)
Версия 1.4.0
30 октября 2024 г.
Выпущены данные "androidx.camera:camera-*:1.4.0". Версия 1.4.0 содержит эти коммиты.
Важные изменения с версии 1.3.0
В CameraX 1.4.0 вас ждет много интересного. Сведения о подписке:
Главная функция: 10-битное HDR-видео
- Снимайте потрясающие HDR-фото и видео.
- Поддерживает кодирование HLG и 10-битное HEVC.
- Используйте предварительный просмотр 10-битного HDR и запрашивайте возможности устройства.
- Работает с изображениями
UltraHDRи HDR-видео на все большем количестве устройств.
Другие полезные функции
- Расширения Kotlin: добавлены функции приостановки
takePictureиawaitInstance. - Эффекты в реальном времени. Применяйте эффекты, например водяные знаки и выделение объектов.
- CameraController API: новые элементы управления для настройки видеозаписи.
- Стабилизация предпросмотра. Проверяйте возможности устройства и включайте стабилизацию.
- Улучшения VideoCapture: более точный контроль качества и доступ к более высоким разрешениям.
- Интеграция расширений CameraX: простая интеграция с
VideoCaptureи новыми функциямиImageCapture. - Shutter Sound API. Позволяет легко проверять региональные требования к звуку затвора.
- Вспышка экрана. Улучшает качество фотографий, сделанных на фронтальную камеру при слабом освещении.
- API метаданных Camera Extensions. Поддерживающие API для настройки интенсивности расширений и получения уведомлений о текущем режиме расширений в
ExtensionMode#AUTO. Дополнительную информацию об исправленных ошибках можно найти в объявлениях о бета-версии и кандидате на релиз.
Версия 1.4.0-rc04
16 октября 2024 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-rc04". Версия 1.4.0-rc04 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка, из-за которой при вызове
startFocusMeteringсPreviewView.getMeteringPointFactoryне получалось получить правильные координаты датчика, когда включен эффект или когда привязаны четыре варианта использования (совместное использование потока). (I916c5, b/345993685)
Версия 1.4.0-rc03
2 октября 2024 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-rc03". Версия 1.4.0-rc03 содержит эти коммиты.
Исправление ошибок
- Добавлены функции вспышки, фонарика и 3A для фотосъемки с помощью
CameraEffect. Фотосъемка с использованиемCameraEffectдолжна выполняться с той же предварительной и последующей обработкой (например, срабатыванием вспышки, конвергенцией 3A и т. д.), что и безCameraEffect. (I5ff30) - Оптимизировано масштабирование щипком в
PreviewView(I04ffc). - Отделите Ultra HDR от возможности 10-битного вывода, поскольку для поддержки Ultra HDR устройствам больше не требуется возможность 10-битного вывода. (I96ff2, I0c3b3)
Версия 1.4.0-rc02
18 сентября 2024 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-rc02". Версия 1.4.0-rc02 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка, возникающая при вызове
bindToLifecycleс удаленнымLifecycleOwner. (I6e6d8) - Добавлена анимация видимости в
ScreenFlashViewдляScreenFlash#apply. Это также устраняет ошибки, связанные с асинхронным изменением яркости. (I37cdb) - Улучшена плавность масштабирования за счет переопределения настроек масштабирования в фреймворке на поддерживаемых устройствах.
Версия 1.4.0-rc01
7 августа 2024 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-rc01". Версия 1.4.0-rc01 содержит эти коммиты.
Новые функции
- Добавлен экспериментальный метод
CameraInfo.getCameraInfo, позволяющий получать информацию о камере без привязки к ней вариантов использования. (I550d1)
Изменения в API
- Добавлены API
PreviewView.getScreenFlashиPreviewView.setScreenFlashOverlayColorдля случаев, когдаScreenFlashViewне добавляется явным образом. (I43945)
Исправление ошибок
- Исправлены проблемы с экспозицией и оттенком цвета при фотосъемке со вспышкой в условиях низкой освещенности, когда используется VideoCapture. (Ic9814)
- Исправлена ошибка, из-за которой при прерывании запроса к
takePictureс включенными расширениями не удавалось получить результат, а следующий запрос кtakePictureмог не работать. (Iae78f) - Исправлена ошибка утечки памяти, которая возникала при включении расширений. (Iab276)
- Исправлена ошибка в работе расширений CameraX на устройствах Pixel 7/8 и Samsung Galaxy S24. Проблема, связанная с преобразованием
Camera2OutputConfigImplв режиме выпуска, возникла после обновления AGP до версии 8.5.1 и включения минификации. (I99598, b/354824993)
Версия 1.4.0-beta02
12 июня 2024 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-beta02". Версия 1.4.0-beta02 содержит эти коммиты.
Изменения в API
- Как и в случае с
VideoCapture, добавьтеsetMirrorModeдля предварительного просмотра. Он будет поддерживать включение и отключение зеркального режима для потока предварительного просмотра черезOutputConfiguration.setMirrorModeиз API 33 и более поздних версий. Для более ранних версий API он не будет работать. (I821f4)
Исправление ошибок
- Исправлена ошибка, из-за которой приложения не могли делать снимки на Samsung Tab A8, когда
ImageCaptureвыбирает разрешение 1920 x 1080 в комбинацииPreview+VideoCapture+ImageCaptureUseCase. (I5a463, b/336925549) - Исправлена ошибка, из-за которой непрерывная запись могла прерываться при переключении камеры. (Icb0a1)
Версия 1.4.0-beta01
14 мая 2024 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-beta01". Версия 1.4.0-beta01 содержит эти коммиты.
Изменения в API
- Добавлен класс
ZoomGestureDetector.ZoomEvent, который инкапсулирует состояния жеста масштабирования. (I84cdf)
Исправление ошибок
- Исправлена ошибка, из-за которой при съемке фото и фокусировке по нажатию не использовались значения частоты кадров и режима стабилизации из повторяющегося запроса. Это могло приводить к повторному созданию сеанса съемки и задержкам или зависанию предварительного просмотра на некоторых устройствах. (I7dc0b)
- Исправлена ошибка, из-за которой на некоторых устройствах нельзя было выбрать высокое разрешение, если включен параметр
CameraEffect. (например, 4000 x 3000 на Samsung A32 5G). (Ie3ed3, b/337336152) - Исправлен сбой, возникавший при съемке фото с предварительным просмотром, когда
ImageCaptureиVideoCapture(UHD)связаны на Pixel 4XL API29. (I5b288) - Поддержка виртуальных устройств. Контекст, передаваемый в
ProcessCameraProvider, будет сохранять идентификатор устройства, чтобы обеспечить работу в среде виртуального устройства. (I5ba48)
Версия 1.4.0-alpha05
17 апреля 2024 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-alpha05". Версия 1.4.0-alpha05 содержит эти коммиты.
Новые функции
- Сервис "
ProcessCameraProvider" преобразован в реализацию Kotlin. (I46d4f) - Добавлены функции приостановки
ImageCapture.takePicture, позволяющие вызывать их в идиоматическом стиле Kotlin. (I920be)
Изменения в API
- Добавьте API выходного формата в
ImageCaptureи методgetSupportedOutputFormatsвImageCaptureCapabilitiesдля запроса возможностей устройства. По умолчанию используется значениеOUTPUT_FORMAT_JPEG, при котором изображения SDR сохраняются в формате JPEG. Если устройство поддерживает Ultra HDR и в качестве выходного формата заданOUTPUT_FORMAT_JPEG_ULTRA_HDR, CameraX будет снимать сжатые изображения Ultra HDR в графическом формате JPEG/R. Он обратно совместим с форматом SDR JPEG и поддерживает рендеринг HDR-контента. Это значит, что в старых приложениях и на старых устройствах изображения будут отображаться как обычные JPEG, а в приложениях и на устройствах, которые полностью поддерживают формат, – как HDR. (I5de50) - Добавлен метод
PhysicalCameraInfoвCameraInfoдля запроса информации о физической камере, а также методы получения и установки идентификатора физической камеры вCameraSelector(Ic5b90). - Замените
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCEDнаImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. Значение константы остается неизменным. Это нужно, чтобы собрать все константы в одном месте. (I890bb) - Новый API
RetryPolicyпозволяет разработчикам настраивать повторные попытки инициализации CameraX. (I36dd2) - Включено создание объекта
ImageCaptureLatencyEstimateдля упрощения тестирования (Iaba99). - Добавьте атрибут
ImageAnalysis#COORDINATE_SYSTEM_SENSOR. В этом случаеMlKitAnalyzerвозвращает координаты в системе координат датчика камеры. (I3ec61) - Добавлен API метаданных расширений. Новые интерфейсы
CameraExtensionsInfoиCameraExtensionsControlпозволяют приложениям отслеживать и корректировать настройки мощности расширения. Приложения могут получить экземплярCameraExtensionsInfoилиCameraExtensionsControlс помощью недавно добавленных методовExtensionsManager#getCameraExtensionsInfo()илиExtensionsManager#getCameraExtensionsControl(). (I28e1a) - Добавлен метод
ProcessCameraProvider.awaitInstance, который является приостанавливающей версией методаProcessCameraProvider.getInstance(Ib22b9). - Добавьте API
PreviewView#getSensorToViewTransform(). Матрица представляет собой преобразование координат датчика камеры в координатыPreviewView. Это можно использовать для преобразования координат из одной системыUseCaseв другую. Например, преобразование координат обнаруженных объектов вImageAnalysisв оверлейPreviewView. (I947ab) - Сделайте API
camera-viewfinder-coreболее общим, чтобы его можно было использовать вcamera-viewfinderиcamera-viewfinder-compose. (I1e295) - Добавить функцию
getSurfaceвViewfinderSurfaceRequest. (I781a0) - Используйте
camera-viewfinder-coreвcamera-viewfinderи прекратите поддержкуViewfinderSurfaceRequestиCameraViewfinder. (I6198c) - Добавлен класс
ZoomGestureDetector, который интерпретирует жесты масштабирования, специально настроенные для действия "сведение/разведение пальцев". (Ifafbf)
Исправление ошибок
- Исправлена ошибка, из-за которой в
ImageAnalysisцелевое разрешение по умолчанию оставалось равным 640 x 480, даже если в приложениях было задано другое значение. Если в приложениях возникает эта проблема (версии 1.3.0–1.3.2) и вы не можете перейти на более новую версию, в которой она устранена, вы можете обойти проблему, напрямую задавResolutionSelectorс нужным разрешением и соответствующимAspectRatioStrategyдляImageAnalysisUseCase. (I81f72, b/330091012) - Исправлена ошибка, из-за которой запрос
takePictureв очереди мог не выполняться, если текущий запрос не выполнен. (Ie0801) - Добавлена проверка недопустимых данных JPEG для устройств Vivo X60 и X60 Pro. Это может решить проблему с аномально большими изображениями на таких устройствах. (I82247, b/288828159)
- Исправлена проблема с неверными метаданными изображений JPEG на устройствах Samsung A24. После исправления CameraX может успешно сохранять изображения JPEG, а при вызове функции
ImageProxy.toBitmap()на устройствах Samsung A24 возвращаются правильные объекты Bitmap. (I8d6eb, b/309005680) - Проверка недопустимых данных JPEG применяется ко всем устройствам Samsung, если размер снятого изображения превышает 10 МБ. Это может решить проблему с аномально большими изображениями на устройствах Samsung. (Ic2a65, b/288828159)
- Удалена поддержка
ImageAnalysisв расширениях CameraX, поскольку реализации расширений многих OEM-производителей плохо работают сImageAnalysisи могут вызывать проблемы с совместимостью. (I2d926)
Версия 1.4.0-alpha04
24 января 2024 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-alpha04". Версия 1.4.0-alpha04 содержит эти коммиты.
Новые функции
- Новый артефакт camera-effects – библиотека для применения эффектов в реальном времени к выходным данным CameraX, включая
Preview,VideoCaptureи/илиImageCapture. Этот артефакт содержит реализации OpenGL для APICameraEffect, который эффективно обрабатывает выходные данные камеры. OverlayEffect– для рисования оверлеев с помощью Canvas API для Android. Это позволяет приложению добавлять водяные знаки или выделять обнаруженные объекты на изображениях с камеры.- API
DynamicRangeдля предварительного просмотра. Теперь динамический диапазон можно задавать для предварительного просмотра независимо от видео. Это позволяет использовать динамические диапазоны HDR, такие как HLG10, только для предварительного просмотра. ВCameraInfoтакже доступны новые API, позволяющие запрашивать, какие динамические диапазоны поддерживает каждая камера.
Изменения в API
- Параметр
ScreenFlashUiCompleterпереименован вScreenFlashListener, а параметрScreenFlashUiCompleter#getExpirationTimeMillisперемещен в параметрexpirationTimeMillisсобытияScreenFlash#apply. (I13944) - Добавлены новые API, позволяющие задавать динамический диапазон для предварительного просмотра и запрашивать динамические диапазоны, поддерживаемые каждой камерой. Это позволяет использовать динамические диапазоны HDR, такие как HLG10, только для предварительного просмотра, больше не требуя одновременной привязки
VideoCapture. (If25e3) - Название
getMirroring()изменено наisMirroring()(I47063). - В CameraX добавлена поддержка оценки задержки при съемке фотографий в реальном времени. Расширения камеры позволяют приложениям использовать API, который оценивает, сколько времени займет съемка. При расчете учитываются текущие условия окружающей среды, состояние камеры, время, затраченное на обработку запросов на многокадровую съемку, и, если необходимо, дополнительное время на кодирование обработанных буферов. (I05c3a)
- Метод
ScreenFlashUiControlпереименован вScreenFlash,ScreenFlashUiControl#applyScreenFlashUi– вScreenFlash#apply,ScreenFlashUiControl#clearScreenFlashUi– вScreenFlash#clear. Вместо прямого доступа кSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDSдобавлен методgetScreenFlashUiApplyTimeoutSeconds. (Iccdd0)
Исправление ошибок
- Исправлена утечка памяти, из-за которой действия или фрагменты не освобождались, когда расширения были включены (I14215).
- Исправлена ошибка, из-за которой
getZoomRatioнеправильно возвращал уменьшенное значение при увеличении масштаба. (I4aa0d, b/317543616) - Событие
ImageCapture#ScreenFlash#clearвызывается сразу после отмены привязкиImageCaptureили закрытия камеры. Также исправлены некоторые ошибки, из-за которых событие не вызывалось, поскольку в этих сценариях съемка не завершалась должным образом. (If99f9) - Исправлен сбой, который происходил, когда жизненный цикл останавливался до завершения запроса
takePicture(Idf017, b/306202751). - Исправлена ошибка, из-за которой на некоторых устройствах при включении расширений предварительный просмотр камеры становился черным (I1ffd0).
- Исправлена ошибка, из-за которой на устройствах с однокристальной системой Snapdragon 778G неправильно определялась продолжительность видеозаписи (If6aa7, b/316057919).
Версия 1.4.0-alpha03
13 декабря 2023 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-alpha03". Версия 1.4.0-alpha03 содержит эти коммиты.
Новые функции
- Добавлен метод
CameraInfo.mustPlayShutterSound, который позволяет узнать, должен ли воспроизводиться звук затвора в соответствии с региональными ограничениями. (Ifda84) - Добавлены
OnImageCapturedCallback.onCaptureStartedиOnImageSavedCallback.onCaptureStartedдля уведомления о том, что камера начала экспонировать кадр. Рекомендуется воспроизвести звук затвора или показать анимацию затвора. (Ic49b3) - В CameraX добавлена поддержка функции мигания экрана при фотосъемке на фронтальную камеру. CameraX будет обрабатывать API на стороне фреймворка и синхронизировать время с изменениями в интерфейсе приложения (например, триггер предварительной съемки AE после изменения цвета или яркости экрана приложения). Разработчикам приложений нужно будет только добавить реализации на стороне интерфейса в интерфейс
ScreenFlashUiControl, предоставляемый CameraX. (I8ae84) - Добавлена поддержка реализации функции мигания экрана на стороне пользовательского интерфейса в CameraX. Приложения смогут получить базовую реализацию
ImageCapture.ScreenFlashUiControlизPreviewViewили недавно добавленногоScreenFlashView, который будет добавлять одноцветный оверлей и увеличивать яркость экрана до максимума во время съемки с миганием экрана. (I1810e)
Изменения в API
- Поддержка новых функций расширений(предварительный просмотр и ход съемки). Добавлены API
ImageCapture#getImageCaptureCapabilities(), позволяющие приложениям запрашивать возможности обратного вызова для предварительного просмотра и хода съемки. Приложения могут включить показ рекламы после просмотра с помощьюImageCapture.Builder#setPostviewEnabled(). Размер изображения можно выбрать с помощьюImageCapture.Builder#setPostviewResolutionSelector(). При вызовеtakePicture()можно реализоватьonPostviewBitmapAvailableиonCaptureProcessProgressedвOnImageSavedCallbackилиOnImageCapturedCallback, чтобы получать уведомления о ходе обработки и последующем просмотре, если они поддерживаются. (I5cd88) - Добавлены API для расчета преобразования координат из датчика в текущий буфер с флагом, указывающим, содержит ли Surface информацию об ориентации камеры (I59096).
- Предоставьте доступ к API для запроса
PreviewCapabitlityв предварительной версииUseCase. (Ie5b6c) - Добавлены API для поддержки дополнительных качеств
VideoCapture.Recorder.Builder#setVideoCapabilitiesSource(int)можно использовать сVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES, чтобы создать экземплярRecorder, который поддерживает больше качеств, чемVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. Распространенный пример – когда приложение пытается записать видео в формате UHD, но вCamcorderProfileустройства нет настроек UHD, хотя кодек поддерживает запись видео в формате UHD. (Iedbe2, b/263961771) - Добавьте геттер/сеттер формата вывода
ImageAnalysisвCameraController. (I9a96c, b/308240643)
Исправление ошибок
- Камера
1.3.1: улучшена работаProcessCameraProvider#bindToLifecycle(). Основное изменение заключается в оптимизации процесса определения наиболее подходящих комбинаций размеров дляUseCases. Оптимальные результаты зависят от конкретных комбинацийUseCaseи количества поддерживаемых размеров выходных данных для целевых устройств. (I454f2) - Разрешить использовать
VideoCapture, когда расширения включены. (I91f32) - Исправлена проблема с большими JPEG-изображениями на устройствах Samsung A71 и M51. В сегменте сжатых данных JFIF полученных изображений JPEG содержатся лишние нули. Это приводит к тому, что полученные изображения имеют экстремальный размер файла. Эти лишние нули будут удалены, чтобы размер графических файлов стал нормальным. (I01afc, b/288828159)
- Отключите поддержку
ImageAnalysisна устройствах Pixel, чтобы избежать ошибки, из-за которой на них случайно возвращаются непустые поддерживаемые размерыImageAnalysis. (I7ec31) - Устранена проблема производительности, из-за которой при включенных расширениях увеличивалась нагрузка на ЦП и энергопотребление. (Ibdccb)
- В
CameraUseInconsistentTimebaseQuirkдобавлен Snapdragon 480. Это устраняет проблему на устройствах с Android 12, использующих этот чипсет, когда звук в записях смещается на время, в течение которого устройство находится в приостановленном состоянии. (I58010)
Версия 1.4.0-alpha02
18 октября 2023 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-alpha02". Версия 1.4.0-alpha02 содержит эти коммиты.
Изменения в API
- Переименуйте API в
setCameraOpenRetryMaxTimeoutInMillisWhileResumingи переименуйте аргумент. (I72370) - Добавление API для запроса возможностей устройства и включения стабилизации видео и предварительного просмотра. (I87544)
- Предоставить API для настройки максимального времени ожидания при повторной попытке открыть камеру. (I0c642)
- Выпущен общедоступный API
ProcessCameraProvider.shutdownAsyncдля тестирования, позволяющий использовать поставщика камер в наборах тестов, в которых может потребоваться инициализировать CameraX разными способами между тестами. (I9eca7) - Добавлены API для настройки динамического диапазона, частоты кадров и зеркального режима при записи видео. (Ifb8f7)
- Прекратить поддержку
OutputSizeи заменить наResolutionSelector.ResolutionSelector– это более комплексный способ выбора разрешений, который совместим с API camera-core. (I93abd, b/286801438)
Исправление ошибок
- Исправлена проблема черного изображения при предварительном просмотре на Samsung Galaxy S23 Ultra 5G при включенном расширении "Боке" или "Ретушь лица" с
ImageAnalysisна основной камере. (I2e8b1) - Исправлена ошибка, из-за которой на Moto E5 Play растягивалось изображение в режиме предварительного просмотра и
VideoCapture. (73dce2)
Версия 1.4.0-alpha01
20 сентября 2023 г.
Выпущены данные "androidx.camera:camera-*:1.4.0-alpha01". Версия 1.4.0-alpha01 содержит эти коммиты.
Изменения в API
- Добавлен новый API для доступа к информации об амплитуде звука во время записи. (Id4925)
Исправление ошибок
- Повышена стабильность расширений за счет того, что события инициализации и деинициализации запускаются в правильном порядке. (Ib3b8e)
- Исправлена ошибка конфигурации сеанса захвата, возникавшая из-за превышения поддерживаемого количества комбинаций поверхностей, которое было вызвано добавлением дополнительной повторяющейся поверхности. (Id718c)
- Исправлена проблема с большими JPEG-изображениями, снятыми на устройство Vivo S16. В сегменте сжатых данных JFIF полученных изображений JPEG содержатся лишние нули. Это приводит к тому, что полученные изображения имеют большой размер файла. Эти лишние нули будут удалены, чтобы размер графических файлов стал нормальным. (I79505, b/299069235)
- Исправлена ошибка, из-за которой
ImageAnalysisне удавалось связать сImageCaptureи предварительным просмотром, когда на некоторых устройствах были включены определенные режимы расширения. После исправления приложения будут получать правильное значение при запросе доступностиImageAnalysisчерезExtensionsManager#isImageAnalysisSupported(). (I7d538) - Обновите JavaDoc, чтобы он соответствовал поведению. Вместо немедленного завершения
#setZoomRatio,#setLinearZoomи#enableTorchожидают, пока камера будет готова. Также добавлена информация о том, как получить максимальное поле зрения с помощью#takePictureAPI. (I23588)
Версия 1.3
Версия 1.3.4
12 июня 2024 г.
Выпущены данные "androidx.camera:camera-*:1.3.4". Версия 1.3.4 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка, из-за которой
getZoomRatioнеправильно возвращал уменьшенное значение при применении увеличивающегося коэффициента масштабирования. (I4aa0d, b/317543616) - Исправлена ошибка, из-за которой при съемке фото и фокусировке по нажатию не использовались значения частоты кадров и режима стабилизации из повторяющегося запроса. Это могло приводить к повторному созданию сеанса съемки и задержкам или зависанию предпросмотра на некоторых устройствах. (I7dc0b)
- Исправлена ошибка, из-за которой частота кадров устанавливалась на более низкое значение при вызове
setTargetFrameRateсFRAME_RATE_RANGE_UNSPECIFIED. (I78c61)
Версия 1.3.3
17 апреля 2024 г.
Выпущены данные "androidx.camera:camera-*:1.3.3". Версия 1.3.3 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка, из-за которой в
ImageAnalysisцелевое разрешение по умолчанию оставалось равным 640 x 480, даже если в приложениях было задано другое значение. Если в приложениях возникает эта проблема (версии 1.3.0–1.3.2) и вы не можете перейти на более новую версию, в которой она устранена, вы можете обойти проблему, напрямую задавResolutionSelectorс нужным разрешением и соответствующимAspectRatioStrategyдляImageAnalysisUseCase. (I81f72, b/330091012)
Версия 1.3.2
6 марта 2024 г.
Выпущены данные "androidx.camera:camera-*:1.3.2". Версия 1.3.2 содержит эти коммиты.
Исправление ошибок
- Исправлена проблема с метаданными JPEG на устройствах Samsung A24. Теперь CameraX сохраняет изображения правильно, а функция
ImageProxy.toBitmap()возвращает корректные объекты Bitmap. (I8d6eb, b/309005680) - Из-за проблем с разрешением 9280 x 6944 оно больше не доступно на устройствах 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 содержит эти коммиты.
Исправление ошибок
- Повышена стабильность расширений за счет того, что события инициализации и деинициализации запускаются в правильном порядке. Это исправило некоторые проблемы с черным экраном предварительного просмотра при переключении режимов расширений или камер. (Iddaac)
- Исправлена ошибка, из-за которой
ImageAnalysisне удавалось связать сImageCaptureи предварительным просмотром, когда на некоторых устройствах были включены определенные режимы расширения. После исправления приложения будут получать правильное значение при запросе доступностиImageAnalysisчерезExtensionsManager#isImageAnalysisSupported(). (I7d538) - Исправлена проблема, из-за которой аудио и видео в записанном ролике не синхронизировались, когда на Xiaomi Poco X3 NFC был включен зеркальный режим. (I20b4c)
Версия 1.3.0-rc01
23 августа 2023 г.
Выпущены данные "androidx.camera:camera-*:1.3.0-rc01". Версия 1.3.0-rc01 содержит эти коммиты.
Изменения в API
- Добавлен метод
PendingRecording.asPersistentRecording, позволяющий непрерывно записывать, покаVideoCapture, к которому прикреплен Recorder, повторно привязывается. (I517c6)
Исправление ошибок
- Исправлен сбой, возникавший, когда поток передавался и в
VideoCapture, и в предварительную версию. Также исправлена проблема с черным экраном на устаревших устройствах при включенной демонстрации экрана. - Исправлена проблема с большими изображениями JPEG, снятыми на устройствах серии Samsung S7 (SM-G930T, SM-G930V). В сегменте сжатых данных JFIF полученных изображений JPEG содержатся лишние нули. Это приводит к тому, что полученные изображения имеют большой размер файла. Эти лишние нули будут удалены, чтобы размер графических файлов стал нормальным. (I407b0, b/288828159)
- Исправлена проблема с большими изображениями JPEG, снятыми на устройствах Samsung S22 (SM-S901B, SM-S901B/DS) и S22+ (SM-S906B). В сегменте сжатых данных JFIF полученных изображений JPEG содержатся лишние нули. Из-за этого размер файлов изображений на устройстве S22 SM-S901B/DS составляет около 13 МБ. Эти лишние нули будут удалены, чтобы размер графических файлов стал нормальным. (I73be9, b/288828159)
- Исправлена проблема с большими изображениями JPEG на устройствах Samsung серий A5, A52, A70 и A72. В сегменте сжатых данных JFIF полученных изображений JPEG содержатся лишние нули. Из-за этого размер файлов с изображениями получается слишком большим (около 32 или даже 96 МБ). Эти лишние нули, заполняющие данные, будут удалены, чтобы захваченные графические файлы имели нормальный размер. (I97c4d, b/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). В сегменте сжатых данных JFIF полученных изображений JPEG содержатся лишние нули. Размер файла с изображением составляет около 32 МБ. Эти лишние нули, заполняющие данные, будут удалены, чтобы захваченные графические файлы имели нормальный размер. (I29837, b/288828159)
- Исправлена ошибка, из-за которой не запускалась повторная попытка в случае сбоя съемки на проблемных устройствах, указанных в
CaptureFailedRetryQuirk. (I7b589)
Версия 1.3.0-beta01
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(If84e8). - Удалены устаревшие API
ImageAnalysis.setTargetRotationDegrees(int),ImageCapture.setTargetRotationDegrees(int)иVideoCapture.setTargetRotationDegrees(int). (Id8e77) - Класс
DynamicRangeпредставляет динамический диапазон изображений. Это можно использовать для выбора форматов HDR в качестве выходных данныхVideoCaptureчерезVideoCapture.Builder#setDynamicRange(). (Ib0377) - В
ExtensionsManagerдобавлен APIisImageAnalysisSupported, с помощью которого приложения могут определять, можно ли связать вариант использования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, b/286190938)
- Добавлена поддержка формата
ImageFormat.JPEGдляImageProxy.toBitmap(). Если массив байтов JPEG не удается декодировать, будет выдано исключениеUnsupportedOperationException. (I81958, b/282057603)
Версия 1.3.0-alpha07
24 мая 2023 г.
Выпущены данные "androidx.camera:camera-*:1.3.0-alpha07". Версия 1.3.0-alpha07 содержит эти коммиты.
Новые функции
- Новый API
VideoCapture.Builder# setTargetFrameRate(Range)позволяет записывать видео с частотой кадров, отличной от установленной по умолчанию. Доступные значения частоты кадров для записи можно запросить через новый APICameraInfo#getSupportedFrameRates().
Изменения в API
- Константы
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONпереименованы в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)объявлены устаревшими. (Ia9010) - Добавлены новые API
Preview#getTargetFrameRateиPreview.Builder#setTargetFrameRate, позволяющие задавать и получать целевую частоту кадров для предварительного просмотра (If4f22). - Теперь
VideoRecordEvent.Finalizeбудет завершаться с кодом ошибкиERROR_RECORDING_GARBAGE_COLLECTED, если объектRecordingостановлен из-за сборки мусора. (Iba974)
Исправление ошибок
- Исправлена ошибка
NullPointerException, возникавшая, когда размеры кешированных выходных данных вStreamConfigurationMapCompatбыли равны null. (Idf124, b/282025204) - Исправлена ошибка, из-за которой
Preview.setSurfaceProvider(null)не приостанавливал предпросмотр в расширениях (Ia903e). - Исправлена ошибка, из-за которой при открытии камеры возникало исключение
ConcurrentModificationException, если привязаноVideoCapture. (Ic8ac4)
Версия 1.3.0-alpha06
19 апреля 2023 г.
Выпущены данные "androidx.camera:camera-*:1.3.0-alpha06". Версия 1.3.0-alpha06 содержит эти коммиты.
Новые функции
- Параллельная съемка – это новая функция, появившаяся в Android 11. Она позволяет одновременно вести трансляцию с нескольких камер, например с фронтальной и основной. В настоящее время 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 выбирать более высокое разрешение при съемке фото и видео. Однако обратите внимание, что при высоком разрешении съемка может занимать больше времени. (Ibed95) - Диапазоны частоты кадров, поддерживаемые алгоритмом автоматической экспозиции, теперь можно запрашивать через
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#getOutputImageNonNull (Ib9c60). - Добавлены API для дублирования
VideoCapture, в том числеVideoCapture.Builder.setMirrorMode(int)иVideoCapture.getMirrorMode(). API полезны для приложений, в которых запись видео должна соответствовать стандартному поведению предварительного просмотра камеры, то есть предварительный просмотр основной камеры не зеркальный, а предварительный просмотр фронтальной камеры зеркальный. (I713b6, b/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).
Исправление ошибок
- Исправлена ошибка, из-за которой приложения, вызывающие Extensions API, могли аварийно завершать работу при закрытии камеры (Ib27e5).
- Исправлена ошибка, из-за которой
VideoCaptureне работало с фронтальной камерой на некоторых устройствах. Например, на Samsung Galaxy S23 и Xiaomi 2107113SG. (Ibec7e, b/270656244) - Исправлена ошибка, из-за которой на устройствах с Android 10 и более поздними версиями ОС не удавалось сделать снимок, используя файл в общедоступной папке внешнего хранилища. Обратите внимание, что в Android 10 для съемки фотографий с помощью File в общедоступной папке внешнего хранилища также требуется установить для
requestLegacyExternalStorageзначение true в теге приложения. (I11b2c) - Исправлена ошибка
RejectedExecutionException, которая приводила к сбою вDefaultSurfaceProcessor. Сбой может произойти, когдаVideoCaptureпривязан, а действие приостановлено. (Idb46a, b/273713906)
Версия 1.3.0-alpha05
22 марта 2023 г.
Выпущены данные "androidx.camera:camera-*:1.3.0-alpha05". Версия 1.3.0-alpha05 содержит эти коммиты.
Изменения в API
- Добавлены API поворота
VideoCapture, включаяVideoCapture.Builder.setTargetRotation(int),VideoCapture.setTargetRotation(int),VideoCapture.setTargetRotationDegrees(int)иVideoCapture.getTargetRotation(). Эти API полезны для приложений, которые блокируют ориентацию устройства. Также добавленыImageCapture.setTargetRotationDegrees(int)иImageAnalysis.setTargetRotationDegrees(int). (Id3ffe, b/205242781) - Разрешить
VIDEO_CAPTUREиPREVIEW|VIDEO_CAPTUREв качестве цели эффектов. Эффекты, предназначенные дляVIDEO_CAPTURE, будут применены к UseCaseVideoCapture. Эффекты, предназначенные дляPREVIEW|VIDEO_CAPTURE, будут применены к общему потоку перед копированием в поток предварительного просмотра и потокVideoCapture. (Iee6f3)
Исправление ошибок
- Камера
1.2.2. Исправлена ошибка, из-за которой расширения CameraX не работали должным образом, когда на некоторых устройствах, например Pixel, был включен ProGuard (I90aa2). - Исправлена ошибка в
PreviewView, из-за которой при повороте экрана изображение в режиме предпросмотра могло искажаться, если приложение само управляет ориентацией экрана. Это происходит только на некоторых устройствах. Проблема воспроизводится на Pixel 4a, Pixel 5 и Pixel 6a. (I14340, b/223488673)
Версия 1.3.0-alpha04
22 февраля 2023 г.
Выпущены данные "androidx.camera:camera-*:1.3.0-alpha04". Версия 1.3.0-alpha04 содержит эти коммиты.
Новые функции
Новая функция, которая позволяет поддерживать ранее несовместимые комбинации Surface, передавая один поток в несколько UseCase.
- Ранее при привязке 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-alpha03
25 января 2023 г.
Выпущены данные "androidx.camera:camera-*:1.3.0-alpha03". Версия 1.3.0-alpha03 содержит эти коммиты.
Изменения в API
- Добавлено поле
CameraInfo.getIntrinsicZoomRatio, позволяющее указать угол обзора относительно камеры по умолчанию. (Ib300c) - Добавлено свойство
CameraInfo.getLensFacing, позволяющее указывать, куда направлен объектив. Добавлена экспериментальная функцияCameraSelector#LENS_FACING_EXTERNALдля выбора внешних камер. (Icaf3e) - Добавьте
#setEffect()вCameraController, чтобы можно было добавлять эффекты к изображению с камеры. (I1d21f) - Добавьте метод
invalidate()вSurfaceRequest. Поставщик Surface может сообщить, что ранее предоставленная поверхность больше недействительна. (Idc649) - Добавьте API
ImageProcessor. Этот интерфейс предназначен для добавления эффектов постобработки в конвейерImageCapture. (I575c6) - Добавлен API
Recorder.Builder.setAspectRatio(), который можно использовать вместе сQualitySelectorдля поддержки большего количества разрешений видео. (I8a082) - Добавлен метод
Recorder.Builder#setTargetVideoEncodingBitRateдля настройки целевой кодировки видеоBitRateи методRecorder#getTargetVideoEncodingBitRateдля получения целевого битрейта кодировки видео. (I5984d)
Исправление ошибок
- Исправлена ошибка, из-за которой
ImageCaptureне работала, если вспышка была включена, но отсутствовала. (I9e8b4, b/263391112) - Исправлена проблема с повреждением изображений JPEG при записи данных о местоположении Exif на некоторых устройствах Samsung с Android 12. (Ib7086, b/263747161, b/263289024)
- Если вы задаете фонарик или масштаб до завершения инициализации камеры, например вызываете
CameraController#enableTorch, ожидающее действие кешируется и отправляется после завершения инициализации. (I11e92, b/264157663)
Версия 1.3.0-alpha02
7 декабря 2022 г.
Выпущены данные "androidx.camera:camera-*:1.3.0-alpha02". Версия 1.3.0-alpha02 содержит эти коммиты.
Изменения в API
- добавьте новый API для применения эффекта постобработки к выходным данным предварительного просмотра. (Ic17d5)
OutputOptions.getDurationLimitпереименован в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 с версией расширений 1.1.0 и более ранними из-за проблем с поддержкой боке, фотосъемкой и возобновлением предпросмотра. (Id3ce3)
- Исправлен сбой на уровне ОС, возникавший при кадрировании видео с помощью
ViewPortна устаревших устройствах. (I16b8a, b/251357665)
Версия 1.3.0-alpha01
9 ноября 2022 г.
Выпущены данные "androidx.camera:camera-*:1.3.0-alpha01". Версия 1.3.0-alpha01 содержит эти коммиты.
Новые функции
Camera-viewfinderhas been published officially.Camera-viewfinderпредоставляет базовый виджет видоискателя, который может показывать видеопоток с камеры для Camera2. Пример можно найти в образце кода.
Изменения в API
- Добавлено поле
OutputOptions.setDurationLimit, позволяющее задать ограничение на продолжительность видео. Если вы превысите указанный лимит, запись будет автоматически завершена. (I902a0) - Добавить состояние ошибки аудиозаписи
AudioStats.AUDIO_STATE_SOURCE_ERROR. Отправляется, если не удается настроить источник аудио или возникает ошибка. (I37410)
Исправление ошибок
- Добавлена функция, позволяющая некоторым проблемным устройствам повторить попытку записи в случае сбоя. (Id4795)
- Устранена проблема с черным экраном при реализации
PreviewViewSurfaceViewнаViewPager2. В рамках исправленияPreviewViewбудет повторно использоватьSurfaceView, если запрошенное разрешение не изменилось. (Ib3f27) - Добавлена поддержка кадрирования видео (функция WYSIWYG) при использовании API
ViewPortилиCameraController. (Ifbba8, b/201085351) - Исправлена ошибка, из-за которой на Huawei P40 lite не записывалось видео с фронтальной камеры. (I87c57, b/250807400)
Версия 1.2
Версия 1.2.3
24 мая 2023 г.
Выпущены данные "androidx.camera:camera-*:1.2.3". Версия 1.2.3 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка, из-за которой
VideoCaptureне работало с фронтальной камерой на некоторых устройствах. Например, на Samsung Galaxy S23 и Xiaomi 2107113SG. (Ibec7e, b/270656244)
Версия 1.2.2
22 марта 2023 г.
Выпущены данные "androidx.camera:camera-*:1.2.2". Версия 1.2.2 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка, из-за которой расширения CameraX не работали должным образом, когда на некоторых устройствах, например Pixel, был включен ProGuard (I90aa2).
Версия 1.2.1
25 января 2023 г.
Выпущены данные "androidx.camera:camera-*:1.2.1". Версия 1.2.1 содержит эти коммиты.
Исправление ошибок
- Исправлена проблема с повреждением изображений JPEG при записи данных о местоположении Exif на некоторых устройствах Samsung с Android 12. (b/263289024)
Версия 1.2.0
7 декабря 2022 г.
Выпущены данные "androidx.camera:camera-*:1.2.0". Версия 1.2.0 содержит эти коммиты.
Важные изменения с версии 1.1.0
- Новая библиотека camera-mlkit-vision. Легко интегрируйте CameraX со многими функциями MLKit, включая сканирование штрихкодов, распознавание лиц, распознавание текста и т. д. Добавлены новые API
MLKitAnalyzer. - Новый экспериментальный API для съемки без задержки затвора. Оптимизирует конвейер захвата, чтобы уменьшить задержку и сохранить хорошее качество изображения. В режиме
CAPTURE_MODE_ZERO_SHUTTER_LAGзадержка между нажатием кнопки спуска затвора и съемкой должна быть минимальной по сравнению с другими режимами. На устройствах, которые не поддерживаютZERO_SHUTTER_LAG, будет использоватьсяCAPTURE_MODE_MINIMIZE_LATENCY. - Прекращена поддержка функции
android.camera.core.VideoCapture. - Добавлен общедоступный API
Camera2Interop(setStreamUseCase()). - Добавлено требование к уровню API для
setOutputImageRotationEnabled. - Название "
ImageAnalysis.Analyzer#getTargetResolutionOverride()" изменено на "ImageAnalysis.Analyzer#getDefaultTargetResolution()". - Добавлен API для добавления географических метаданных в сохраненное видео.
- Исправлена низкая частота кадров при использовании
VideoCaptureи предварительного просмотра с соотношением сторон 16:9. - Исправлена проблема с черным экраном предварительного просмотра, которая возникала, когда на некоторых устройствах Samsung было включено расширение BOKEH и пользователь переключал камеры.
- Исправлена проблема с растягиванием
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. При разрешении 1920 x 1080 изображенияPreview/VideoCaptureрастягиваются. Добавлено временное решение, позволяющее не выбирать разрешение 1920 x 1080 для предварительного просмотра илиVideoCapture, чтобы избежать растягивания изображения. (I0e04e) - Исправлена низкая частота кадров при использовании
VideoCaptureи предварительного просмотра с соотношением сторон 16:9 на некоторых устройствах Huawei. (If8c88, b/223643510) - Исправлена ошибка, из-за которой не открывалась камера, если не было задано значение
SurfaceProviderдля предварительного просмотра. В рамках исправления предварительный просмотр без заданного значенияSurfaceProviderтеперь не будет настраиваться в сеансе съемки. (I99681)
Версия 1.2.0-beta02
21 сентября 2022 г.
Выпущены данные "androidx.camera:camera-*:1.2.0-beta02". Версия 1.2.0-beta02 содержит эти коммиты.
Изменения в API
- Добавлено требование к уровню API для
setOutputImageRotationEnabled(I26e3e, b/240993561).
Исправление ошибок
- Отключен обходной путь для горизонтального отражения области автофокусировки фронтальных камер на устройствах Samsung с Android T, так как проблема была устранена. (I05f69)
- Исправлена проблема с черным экраном предварительного просмотра, которая возникала, когда на некоторых устройствах Samsung было включено расширение
BOKEHи пользователь переключал камеры. (If6168)
Версия 1.2.0-beta01
24 августа 2022 г.
Выпущены данные "androidx.camera:camera-*:1.2.0-beta01". Версия 1.2.0-beta01 содержит эти коммиты.
Новые функции
- Новая библиотека
camera-mlkit-vision. CameraX легко интегрируется со многими функциями ML Kit, включая сканирование штрихкодов, распознавание лиц и текста. Образец кода - Новый экспериментальный API Zero-Shutter Lag. Оптимизирует конвейер захвата, чтобы уменьшить задержку и сохранить хорошее качество изображения. Если для режима съемки задано значение 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-alpha04
27 июля 2022 г.
Выпущены данные "androidx.camera:camera-*:1.2.0-alpha04". Версия 1.2.0-alpha04 содержит эти коммиты.
Изменения в API
- Переименовать
ImageAnalysis.Analyzer#getTargetResolutionOverride()вImageAnalysis.Analyzer#getDefaultTargetResolution(). Поведение также изменено, чтобы значение, возвращаемое этим методом, можно было переопределить значениемImageAnalysis#setTargetResolution(). (If1d36) - Добавлен API для добавления географических метаданных в сохраненное видео. Объект
android.location.Locationможно задать с помощью нового APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location). (I313a0, b/204197544)
Исправление ошибок
- Исправлена ошибка, из-за которой не удавалось сделать снимок, если предварительный просмотр не был привязан (Ie70b6, b/235119898).
- Исправлен сбой в
Recorderпри попытке записи, когда источник аудио недоступен. (I9f652)
Версия 1.2.0-alpha03
29 июня 2022 г.
Выпущены данные "androidx.camera:camera-*:1.2.0-alpha03". Версия 1.2.0-alpha03 содержит эти коммиты.
Изменения в API
- Удалена аннотация experimental для
ImageAnalysis.AnalyzerиMLKitAnalyzer. (I0ff22)
Исправление ошибок
- Добавлено время ожидания автофокуса по умолчанию (5000 мс). Если
FocusMeteringActionне отменено и автофокус не сработал за это время, тоisFocusSuccessfulбудет иметь значение false. (Ibc2e3) - Исправлена ошибка, из-за которой не удавалось сделать снимок, если предварительный просмотр не был привязан (I1d3a2, b/235119898).
- Включена реализация расширенного экстендера и обновлена версия интерфейса расширений поддержки CameraX до 1.2 (I92256).
Версия 1.2.0-alpha02
1 июня 2022 г.
Выпущены данные "androidx.camera:camera-*:1.2.0-alpha02". Версия 1.2.0-alpha02 содержит эти коммиты.
Новые функции
- Добавлен экспериментальный API 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, b/228272227) - Исправлена ошибка, из-за которой
AssertionErrorне обрабатывался при получении характеристикиCONTROL_ZOOM_RATIO_RANGE(/Ia248a, b/231701345).
Версия 1.2.0-alpha01
18 мая 2022 г.
Выпущены данные "androidx.camera:camera-*:1.2.0-alpha01". Версия 1.2.0-alpha01 содержит эти коммиты.
Новые функции
- Запущена новая библиотека camera-mlkit-vision
Исправление ошибок
- Исправлена ошибка, из-за которой
QualitySelectorне записывал видео в формате UHD, когда была включена резервная стратегия. Проблема возникает, когдаVideoCaptureсвязан сImageCaptureи предварительным просмотром на устройстве с камерой уровня FULL или выше. Резервная стратегияQualitySelectorприводит к тому, чтоVideoCaptureнеправильно получает разрешение FHD. Разрешение UHD поддерживается для этого сочетания и должно быть принято. (I0e788, b/230651237) - Исправлено
NullPointerExceptionнаImageCapture.takePicture(). (I92366, b/230454568, b/229766155) - Исправлено поведение асинхронной паузы в
androidx.camera.video.Recorder(Ia8ce8).
Camera-Camera2, Camera-Core, Camera-Lifecycle и Camera-Video версии 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. Начиная с версии 1.1.0-beta01, все библиотеки CameraX будут иметь одинаковый номер версии. Это упростит отслеживание версий и уменьшит сложность матриц совместимости.
- Добавлены новые общедоступные API и функции, в том числе:
- Добавьте официальную библиотеку camera-video, чтобы поддерживать сценарии использования видеозаписи.
- Возможность преобразования YUV в RGB и поворота (
ImageAnalysis.Builder.setOutputImageRotationEnabledиsetOutputImageFormat). - Поддержка многооконного режима, позволяющая приложениям CameraX возобновлять работу камеры, когда она прерывается другим приложением и фокус возвращается.
- Исправлены некоторые проблемы с предварительным просмотром, чтобы обеспечить корректную работу CameraX на складных устройствах.
- Добавлен API
CameraState, который будет доступен через CameraInfo. - Добавлен API
ProcessCameraProvider.getAvailableCameraInfos()для прямого получения информации о доступных камерах. - Вывод в формате JPEG для
ImageCapture#OnImageCapturedCallback, когда включены расширения. - В
CameraInfoдобавлен APIisFocusMeteringSupported, который позволяет приложениям проверять, поддерживается лиFocusMeteringActionтекущей камерой. - Добавлен API
getResolutionInfo, который предоставляет информацию о разрешении для предварительного просмотра,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 стали официальными:
CameraXConfig.Builder#setAvailableCamerasLimiter(),CameraXConfig.Builder#setMinimumLoggingLevel(),CameraXconfig.Builder#setSchedulerHandler(),CameraXConfig#getAvailableCamerasLimiter(),CameraXConfig#getMinimumLoggingLevel(),CameraXConfig#getCameraExecutor(),CameraXConfig#getSchedulerHandler(), - API:
@ExperimentalCameraFilter - экспериментальные API экспокоррекции.
- Экспериментальный API
UseCaseGroupдля camera-core, camera-lifecycle и camera-video стал стабильным. Добавлены метатегиViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectionиViewPort.Builder#setScaleTypeдля настройки области просмотра. ExperimentalUseCaseGroupLifecycleтеперь является официальным общедоступным API.- Изменения в существующих API
Renamed MediaStoreOutputOptions.getCollectionв организациюMediaStoreOutputOptions.getCollectionUri.ActiveRecordingпереименован в "Запись", чтобы сократить длину названия.- API для создания
QualitySelectorзаменен на API на основе списков.
Исправление ошибок
- Исправлена ошибка
YuvToJpegProcessorEOFException, возникавшая, когда был включен режим расширения и задан режим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, b/230454568, b/229766155) - Исправлена ошибка, из-за которой
AssertionErrorне обрабатывался при получении характеристикиCONTROL_ZOOM_RATIO_RANGE. (Ia248a, b/231701345)
Версия 1.1.0-rc01
11 мая 2022 г.
Выпущены данные "androidx.camera:camera-*:1.1.0-rc01". Версия 1.1.0-rc01 содержит эти коммиты.
Новые функции
- Выпуск первой версии-кандидата для camera-video, camera-view и camera-extension.
Исправление ошибок
- Исправлена ошибка, из-за которой видеокодек не освобождался, когда
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, b/223488673) - Исправлена ошибка многооконного режима, из-за которой при переключении фокуса обратно на приложение не удавалось возобновить работу камеры, если: 1) другое приложение с высоким приоритетом открывало другую камеру; 2) использовалось устройство Samsung с Android 12. (I7e9f2)
- Добавлено временное решение для устройств, на которых происходит сбой при проверке доступности вспышки. На этих устройствах фонарик будет недоступен. (If26a3, b/216667482)
- Исправлена ошибка
AbstractMethodError, которая возникала, когда приложения использовали расширения и включали ProGuard. (I7cbaf, b/222726805) - Принудительно отключен режим боке на Motorola razr 5G, из-за которого экран предпросмотра становился черным. (I35d49)
- Исправлена ошибка, из-за которой на некоторых устройствах Samsung с API ниже 29 после паузы и возобновления воспроизведения аудио и видео не синхронизировались. (I64622, b/202798609, b/202798572)
- Исправлена ошибка, из-за которой на устройствах Sony G3125 аудио и видео не синхронизировались после паузы и возобновления воспроизведения. (I2a1a5, b/202799148)
- Исправлена ошибка, из-за которой происходил сбой, когда Диктофон сталкивался с
InvalidConfigException. Однако это исправление только предотвращает сбой приложения, но не устраняет причину ошибкиInvalidConfigException. Если настроитьRecorderпо-прежнему не удается, приложения будут получать обратный вызов с ошибкой при начале записи. (I89c29, b/213617227)
Внешний вклад
- Обновлен API :compose:ui:ui-test (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-beta01
26 января 2022 г.
Выпущены данные "androidx.camera:camera-*:1.1.0-beta01". Версия 1.1.0-beta01 содержит эти коммиты.
Новые функции
- Начиная с версии 1.1.0-beta01, все библиотеки CameraX будут иметь одинаковый номер версии. Это упростит отслеживание версий и позволит избежать путаницы с совместимостью.
Изменения в API
- Добавлен метод
Camera2CameraControl.clearCaptureRequestOptionsдля очистки существующих параметров запроса на запись. (Ifa07d)
Исправление ошибок
- Исправлена ошибка, из-за которой происходил сбой при записи видео на некоторых устройствах с версией Android ниже 8.0(API 26). (I88fdf, b/212328261)
- Исправлена проблема с неправильной областью автофокусировки при использовании
cameraControl#startFocusAndMetering()на фронтальной камере устройств Samsung (Ifbf59, b/210548792). - Использование фонарика в качестве вспышки на Pixel 3a и Pixel 3a XL для повышения скорости съемки и качества изображения в темноте (Ib12b6, b/211474332).
- Приложения могут возобновлять работу камеры, если она была прервана другим приложением с более высоким приоритетом в многооконном режиме и фокус вернулся к приложению. Обратите внимание, что из-за проблем с фреймворком между сменой фокуса и повторным открытием камеры может пройти от 1 до 10 секунд или больше. (I4d092)
Версия 1.1.0-alpha12
15 декабря 2021 г.
Выпущены данные "androidx.camera:camera-*:1.1.0-alpha12". Версия 1.1.0-alpha12 содержит эти коммиты.
Изменения в API
- Удалены ненужные аннотации
@RequiresApi(21)из внутренних классов и интерфейсов. (I8e286, b/204917951) - Константы качества и резервной стратегии
QualitySelectorтеперь представлены объектами класса. Например,QualitySelector.QUALITY_HDзаменяется наQuality.HD, аQualitySelector.FALLBACK_STRATEGY_LOWER– на экземпляр, возвращаемыйFallbackStrategy.lowerQualityOrHigherThan(Quality). API, используемый для созданияQualitySelector, был изменен на API на основе списков. Новый 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)
- Исправлена ошибка, из-за которой на Pixel 1 при начале записи видео в формате UHD на экране предварительного просмотра появлялись цветные полосы. (I833c6, b/205340278)
Версия 1.1.0-alpha11
17 ноября 2021 г.
Выпущены данные "androidx.camera:camera-*:1.1.0-alpha11". Версия 1.1.0-alpha11 содержит эти коммиты.
Изменения в API
- В общедоступный API добавлен метод CameraSelector#filter, позволяющий фильтровать список CameraInfo на основе CameraSelector. (I105d0)
Добавлен API setOutputImageRotationEnabled для конфигурации ImageAnalysis. Пользователь может включить поворот для буфера изображений YUV/RGB. Угол поворота – это относительный поворот, рассчитанный на основе поворота датчика и целевого поворота, чтобы изображение оставалось впереди.
Добавлен API setOutputImageRotationEnabled для конфигурации ImageAnalysis. Пользователь может включить поворот для буфера изображений YUV/RGB. Угол поворота – это относительный поворот, рассчитанный на основе поворота датчика и целевого поворота, чтобы изображение оставалось впереди.
Добавлен API
getSensorToBufferTransformMatrixв ImageInfo. Возвращаемая матрица представляет собой сопоставление координат датчика с координатами буфера, то есть от значенияCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZEдо(0, 0, image.getWidth, image.getHeight). Матрицу можно использовать для сопоставления координат из одного {UseCase} с другим. Например, сопоставление координат лица, обнаруженного с помощью ImageAnalysis, с предварительным просмотром. (I9ff1e)Добавлен новый API ImageCapture.Builder#setJpegQuality, позволяющий изменять качество сжатия выходного изображения JPEG при съемке. (I8dcf4)
Метод MediaStoreOutputOptions.getCollection переименован в MediaStoreOutputOptions.getCollectionUri. (I16639)
Исправление ошибок
- Исправлена ошибка, из-за которой вспышка срабатывала при фокусировке по нажатию (startFocusAndMetering), если был выбран режим "Авто" или "Всегда включена" в условиях низкой освещенности. (Id4c11)
- Отключен режим HDR+ на Pixel 2 XL и Pixel 3 XL в режиме MINIMIZE_LATENCY для уменьшения задержки. (Ib6270, b/203505523)
Внешний вклад
Версия 1.1.0-alpha10
13 октября 2021 г.
Выпущены данные "androidx.camera:camera-*:1.1.0-alpha10". Версия 1.1.0-alpha10 содержит эти коммиты.
Новые функции
- Выпущена первая альфа-версия
androidx.camera:camera-video:1.1.0-alpha10для видео. Существует несколько известных проблем, которые будут устранены в следующих выпусках.
Изменения в API
- Добавлена аннотация
@RequiresApi(21)для всех классов CameraX, а minSdkVersion удален из AndroidManifest.xml. Это позволит легко интегрировать camera-core в приложения, у которых для атрибута minSdkVersion задано значение ниже 21, но которые хотят условно использовать пути выполнения, зависящие от API 21 и выше. Если у вас приложение с minSdkVersion 21 или выше, никаких действий не требуется. (Ie7f2e, b/200599470)
Исправление ошибок
- Вызовите InitializationException, чтобы приложение могло корректно обработать AssertionError, возникшую при создании CameraCharacteristics. (Ibec79)
Версия 1.1.0-alpha09
29 сентября 2021 г.
Выпущены androidx.camera:camera-camera2:1.1.0-alpha09, androidx.camera:camera-core:1.1.0-alpha09 и androidx.camera:camera-lifecycle:1.1.0-alpha09. Версия 1.1.0-alpha09 содержит эти коммиты.
Изменения в API
- Аннотация ExperimentalUseCaseGroup удалена, поскольку API больше не являются экспериментальными. (I01ef5)
Исправление ошибок
- Устраните проблему, из-за которой фотографии, сделанные в режиме "
MAXIMIZE_QUALITY", получаются размытыми. (I173a9, b/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-alpha08
18 августа 2021 г.
Выпущены androidx.camera:camera-camera2:1.1.0-alpha08, androidx.camera:camera-core:1.1.0-alpha08 и androidx.camera:camera-lifecycle:1.1.0-alpha08. Версия 1.1.0-alpha08 содержит эти коммиты.
Новые функции
- Добавлен API setOutputImageFormat для настройки анализа изображений. Пользователь может выбрать ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 или ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. По умолчанию будет выбран ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888. (I7902d)
Изменения в API
- Аннотация ExperimentalUseCaseGroupLifecycle удалена, поскольку API больше не являются экспериментальными. (I17b85)
Исправление ошибок
- Исправлена ошибка, из-за которой экран предварительного просмотра был слишком ярким на Huawei P20 Lite. Эта проблема возникает только в том случае, если определенные разрешения предварительного просмотра используются вместе с большим значением масштаба. (Idefce, b/192129158)
- Исправлена ошибка, из-за которой вспышка не работала на некоторых устройствах, если режим FLASH_MODE_ON был включен незадолго до съемки. (Ieb49b)
- Исправлена ошибка, из-за которой предварительный просмотр приостанавливался на некоторое время при съемке фотографий, если VideoCapture, ImageCapture и Preview были связаны. (I56197, b/193864120)
- Позволяет ImageAnalysis выбирать разрешение выше 1080p. Устройство уровня LIMITED может поддерживать разрешение RECORD для ImageAnalysis, если оно связано с Preview и ImageCapture. Компромисс заключается в том, что выбранное разрешение для ImageCapture также должно быть разрешением размера RECORD. Чтобы выбрать разрешение RECORD для ImageAnalysis, необходимо установить целевое разрешение RECORD как для ImageCapture, так и для ImageAnalysis. Это означает, что приложение четко понимает компромисс и предпочитает, чтобы ImageAnalysis имел большее разрешение, а не ImageCapture имел МАКСИМАЛЬНОЕ разрешение. Определения RECORD, MAXIMUM и другие сведения можно найти на странице https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Размер RECORD – это максимальное разрешение записи, поддерживаемое камерой, которое определяется CamcorderProfile. Максимальный размер – это максимальное разрешение, которое камера может выдать для этого формата или цели из StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
- Добавьте информацию EXIF к снятому изображению. (I01ff0, b/193342619)
- В ImageCapture возвращается URI сохраненного изображения, если местом сохранения является файл. (Ib5b49, b/149241379)
- Исправлена ошибка, из-за которой на многих устройствах снимки со вспышкой получались темными. (I4e510)
Версия 1.1.0-alpha07
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).
- Исправлена ошибка
YuvToJpegProcessorEOFException, возникавшая, когда включен режим расширения и задан режимImageCapture#CAPTURE_MODE_MAX_QUALITY. (I538bd, b/192017012)
Версия 1.1.0-alpha06
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 экспокоррекции для camera-core (I08ee8).
- В CameraInfo добавлен API isFocusMeteringSupported, который позволяет приложениям проверять, поддерживается ли FocusMeteringAction на текущей камере. (Ib45ae, b/188606490)
- Добавлен API getResolutionInfo, который предоставляет информацию о разрешении для Preview, ImageCapture и ImageAnalysis. (I2b613, b/188600718)
- Следующие экспериментальные API стали официальными: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler() (I2ade2).
- Добавлен интерфейс CameraProvider, предоставляющий доступ к набору камер. (I1a7b1)
- Продвижение экспериментального UseCaseGroup API для camera-core, camera-lifecycle и camera-video. Добавлены метатеги
ViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectionиViewPort.Builder#setScaleTypeдля настройки области просмотра. (I7cee8)
Версия 1.1.0-alpha05
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) ExperimentalCameraFilterAPI больше не являются экспериментальными и стали официальными. Их можно использовать без аннотации OptIn. (I4bc94)- Добавлен API состояния камеры, доступный через
CameraInfo#getCameraState(). (Ia86b4) - Добавлен экспериментальный API
CameraInfo#getCameraSelector(), который возвращает CameraSelector, уникальный для своей камеры (I77f9f).
Исправление ошибок
- Исправлена ошибка, из-за которой ListenableFuture, возвращаемый в setZoomRatio и setLinearZoom, не мог завершиться на некоторых устройствах Android 11 (I716d7).
- Ускорена смена камер и снижена частота ошибок камеры (I34c99).
- Класс ExperimentalUseCaseGroupLifecycle заменен на ExperimentalUseCaseGroup. (I3b2ef, b/159033688)
Версия 1.1.0-alpha04
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 содержит эти коммиты.
Исправление ошибок
- Исправлена утечка памяти, вызванная одновременным доступом нескольких потоков к одной коллекции. Из-за утечки памяти объект Activity или Fragment может остаться в экземпляре Preview. (I7b4b8)
- Аннотация
@Experimentalзаменена на@RequiresOptInдля экспериментальных API. Для вызова экспериментальных API используйтеandroidx.annotation.OptInвместо устаревшегоandroidx.annotation.experimental.UseExperimental. Iff226 - Исправлена ошибка, из-за которой при съемке на Samsung Galaxy S7 с включенной или автоматической вспышкой получались блеклые изображения. (I30001)
- Добавлен API CameraState, который будет доступен через CameraInfo. (I75392)
Версия 1.1.0-alpha03
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 BISON (I57d9e, b/180818665).
- Исправлена ошибка, из-за которой на устройствах Samsung A3 изображение в PreviewView растягивалось. (Iacb30, b/180121821)
Версия 1.1.0-alpha02
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 заберет камеру у других клиентов, если у приложения CameraX более высокий приоритет. (Iab069, b/175820568)
- Исправлена ошибка, из-за которой тест Robolectric завершался сбоем, если в CameraXConfig использовался метод setAvailableCamerasLimiter. (Ice307)
- Это изменение перехватывает исключение, когда очередь изображений в ImageAnalysis заполнена. Поэтому вместо сбоя вы можете заметить, что другие функции зависают или работают медленно. Например, это может происходить с предварительным просмотром. (Ic12da, b/175851631)
- Исправлена ошибка, из-за которой ExtensionsErrorListener сообщал об ошибках, когда привязаны только Preview или ImageCapture. (I5ae39)
- Исправлена проблема с производительностью ImageCapture: теперь место сохранения изображения не проверяется перед съемкой. Если после этого изменения место сохранения будет недействительным, ответ об ошибке будет получен позже, поскольку попытка сохранить изображение будет предпринята после того, как будет сделана фотография. (I1fd4e, b/177061560)
- Исправлена регрессия производительности ImageCapture с OutputFileOptions типа File. (I5164a, b/177061560)
- В документацию добавлена рекомендация не использовать
ProcessCameraProvider.configureInstance(...)из кода библиотеки. (Ib8a9f)
Версия 1.1.0-alpha01
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 содержит эти коммиты.
Исправление ошибок
- Добавлено временное решение для периодического повреждения данных изображений в формате JPEG на задней камере SM-G930T. (I52001, b/159831206)
- Устранена
IllegalArgumentExceptionпроблема, которая возникала, когда все поддерживаемые размеры предварительного просмотра были меньше 640 x 480, а размер экрана – больше 640 x 480. (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) - Исправлена ошибка, из-за которой на многих устройствах фотографии со вспышкой получались темными. (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
- CameraX поддерживает предварительный просмотр, съемку и анализ.
- CameraX управляет жизненным циклом камеры с помощью простого в использовании API.
- CameraX предоставляет уровень совместимости, который устраняет многие проблемы в экосистеме камер Android.
Известные проблемы
- Ознакомьтесь со списком известных проблем.
Версия 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 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка, из-за которой при съемке на 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 BISON (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) - Исправлена ошибка, из-за которой тест Robolectric завершался сбоем, если в CameraXConfig использовался метод setAvailableCamerasLimiter.
- Исправлена проблема с производительностью ImageCapture: теперь место сохранения изображения не проверяется перед съемкой. Если после этого изменения место сохранения будет недействительным, ответ об ошибке будет получен позже, поскольку попытка сохранить изображение будет предпринята после того, как будет сделана фотография.
- Это изменение перехватывает исключение, когда очередь изображений в ImageAnalysis заполнена. Поэтому вместо сбоя вы можете заметить, что другие функции работают медленно или зависают, например предварительный просмотр.
- Добавлено временное решение для периодического повреждения данных изображений в формате JPEG на задней камере SM-G930T. (I52001, b/159831206)
- Это изменение перехватывает исключение, когда очередь изображений в ImageAnalysis заполнена. Поэтому вместо сбоя вы можете заметить, что другие функции зависают или работают медленно. Например, это может происходить с предварительным просмотром. (Ic12da, b/175851631)
- Исправлена ошибка, из-за которой тест Robolectric завершался сбоем, если в CameraXConfig использовался метод setAvailableCamerasLimiter. (Ice307)
- Исправлена проблема с производительностью ImageCapture: теперь место сохранения изображения не проверяется перед съемкой. Если после этого изменения место сохранения будет недействительным, ответ об ошибке будет получен позже, поскольку попытка сохранить изображение будет предпринята после того, как будет сделана фотография. (I1fd4e, b/177061560)
- Исправлена регрессия производительности ImageCapture с OutputFileOptions типа File. (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 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка IllegalArgumentException, которая возникала, когда все поддерживаемые размеры предварительного просмотра были меньше 640 x 480, а размер экрана – больше 640 x 480. (b/150506192)
Ограничить количество попыток повторного открытия камеры. При попытке устранить некоторые проблемы, возникающие при открытии камеры, CameraX больше не будет пытаться открыть камеру бесконечно. Вместо этого попытки прекратятся через 10 секунд. I435d2
Устранена проблема с
IllegalArgumentException, которая возникала, когда все поддерживаемые размеры для предварительного просмотра были меньше 640 x 480, а размер экрана – больше 640 x 480. (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, позволяющий динамически взаимодействовать с Camera2 API. (I45cf3)
- Метод Camera2CameraInfo#fromCameraInfo переименован в #from. (Ia2bd6)
- В CameraXConfig добавлен экспериментальный API setAvailableCamerasLimiter, который позволяет приложениям оптимизировать задержку инициализации, не инициализируя неиспользуемые камеры. (I6cf88)
- Добавлен экспериментальный метод
CameraXConfig.Builder#setMinimumLoggingLevel(), позволяющий задать минимальный уровень ведения журналов CameraX. Если значение не задано, по умолчанию используетсяLog#DEBUG. (Ic3245)
Исправление ошибок
- Добавлено временное решение для периодического повреждения данных изображений в формате JPEG на задней камере SM-G930V. (I5aca5, b/159831206)
- Исправлена ошибка, из-за которой на устройствах Samsung SM-A716 не удавалось получить результаты при съемке со вспышкой в темноте. (If98b2, b/172036589)
- Исправлена ошибка, из-за которой предварительный просмотр нельзя было остановить с помощью вызова
Preview.setSurfaceProvider(null). (I3ac18) - Исправлена проблема с ориентацией при съемке изображений 4:3 на некоторых устройствах. (I0e3fb, b/171492111)
Camera Camera2, Core и Lifecycle версии 1.0.0-beta12
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-beta12 содержит эти коммиты.
Исправление ошибок
- Отключена автоматическая вспышка на устройствах Samsung A3, чтобы устранить сбой при съемке с автоматической вспышкой в режиме AE. (Ia5fe3, b/157535165)
- Исправлена ошибка, из-за которой изображение в режиме предварительного просмотра растягивалось на устройствах Nexus 4 с Android L (уровни API 21 и 22). (I4d407, b/158749159)
OnImageCapturedCallback#onCaptureSuccessбазовый класс больше не закрывает изображение. Это сделано для того, чтобы предотвратить неожиданное поведение для разработчиков. Разработчикам не следует полагаться на super.onCaptureSuccess для закрытия изображения. (Ifbf9c)- Вариант androidx аннотации Experimental был объявлен устаревшим, чтобы обеспечить паритет с Kotlin. Вместо нее теперь используется аннотация RequiresOptIn, а линтер для Java был обновлен и теперь поддерживает как новую аннотацию Kotlin, так и новый вариант androidx. (I52495, b/151331381)
Camera-Camera2 версии 1.0.0-beta11
14 октября 2020 г.
Выпущены данные "androidx.camera:camera-camera2:1.0.0-beta11". Версия 1.0.0-beta11 содержит эти коммиты.
Новые функции
- Поддерживает API
CONTROL_ZOOM_RATIOдля Android 11, чтобы использовать масштабирование на устройствах с Android 11 или более поздней версии, на которых есть действительныйCONTROL_ZOOM_RATIO_RANGE. (I62cc6)
Исправление ошибок
- Исправлена ошибка NumberFormatException, возникавшая, когда идентификатор камеры не был целым числом. (Ib2228)
- Уменьшена задержка при инициализации CameraX и bindToLifecycle (I61dc5).
- Для создания UseCases не требуется инициализация CameraX. Все конфигурации, относящиеся к реализации, задаются в UseCase после его подключения к экземпляру Camera, который для общедоступного API является
ProcessCameraProvider.bindToLifecycle(). (Ia5411) <UseCase>.getTargetRotation()вернетSurface.ROTATION_0, если будет вызван до подключения к экземпляру Camera, за исключением случаев, когда targetRotation задан в Builder или UseCase. (I80fcd)
Camera-Core версии 1.0.0-beta11
14 октября 2020 г.
Выпущены данные "androidx.camera:camera-core:1.0.0-beta11". Версия 1.0.0-beta11 содержит эти коммиты.
Новые функции
- Поддержка API CONTROL_ZOOM_RATIO для масштабирования на устройствах с Android 11 или более поздней версией, содержащих действительный CONTROL_ZOOM_RATIO_RANGE. (I62cc6)
Исправление ошибок
- Исправлена ошибка NumberFormatException, возникавшая, когда идентификатор камеры не был целым числом. (Ib2228)
- Для создания UseCases не требуется инициализация CameraX. Все конфигурации, относящиеся к реализации, задаются в UseCase после его подключения к экземпляру Camera, который для общедоступного API является
ProcessCameraProvider.bindToLifecycle(). (Ia5411) <UseCase>.getTargetRotation()вернетSurface.ROTATION_0, если будет вызван до подключения к экземпляру Camera, за исключением случаев, когда targetRotation задан в Builder или UseCase. (I80fcd)
Camera-Core версии 1.0.0-beta10
23 сентября 2020 г.
Выпущены данные "androidx.camera:camera-core:1.0.0-beta10". Версия 1.0.0-beta10 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка проверки места сохранения файла при фотосъемке (I8c565, b/167697553).
Camera-Camera2 версии 1.0.0-beta10
23 сентября 2020 г.
Выпущены данные "androidx.camera:camera-camera2:1.0.0-beta10". Версия 1.0.0-beta10 содержит эти коммиты.
Исправление ошибок
- Выпуск с поддержкой 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)
Исправление ошибок
- Исправлена проблема с целевым соотношением сторон на планшетах. Если целевое соотношение сторон –
AspectRatio.RATIO_16_9, выберите размер 16:9. (Ib7fcf, b/151969438) - Вызовите
InitializationException, чтобы приложение могло корректно обработать ошибку AssertionError, возникшую при создании CameraCharacteristics. (I89c8c, b/160524721) - Добавлены экспериментальные интерфейсы для ExposureCompensation (If96c7).
Camera-Core версии 1.0.0-beta09
16 сентября 2020 г.
Выпущены данные "androidx.camera:camera-core:1.0.0-beta09". Версия 1.0.0-beta09 содержит эти коммиты.
Изменения в API
- Исправлена ошибка, из-за которой область просмотра помечалась как ненулевая в UseCaseGroup. Разработчики должны иметь возможность создавать область просмотра, не задавая ее. (Ie3d2e)
- Добавлены экспериментальные интерфейсы для
ExposureCompensation(If96c7). - Разрешить произвольный поворот цели для предварительного просмотра. Информация о преобразовании рассчитывается и возвращается пользователю в реальном времени с помощью нового обратного вызова
TranformationInfoListener. (I21470)
Исправление ошибок
- Исправлена ошибка, из-за которой на некоторых устройствах не выключалась вспышка. Это происходило, если при съемке был выбран режим
FLASH_MODE_ON, а во время срабатывания вспышки он менялся наFLASH_MODE_OFF. Проблема похожа на включенный режим фонарика. (Ib4451, b/162568128) - Принудительное использование TextureView в PreviewView, если включен эффект расширения и реализация библиотеки поставщика требует специальной обработки выходной поверхности. (I0c3cc)
- Устранена утечка activity/fragment, когда контекст activity/fragment передается в
ProcessCameraProvider.getInstance(Context).
Известные проблемы
- Если задан ViewPort, прямоугольник кадрирования ImageCapture может быть неправильным на устройствах, которые поворачивают буфер изображения в HAL. В следующей версии проблема будет устранена.
Camera-Camera2 версии 1.0.0-beta08
19 августа 2020 г.
Выпущены данные "androidx.camera:camera-camera2:1.0.0-beta08". Версия 1.0.0-beta08 содержит эти коммиты.
Исправление ошибок
- Оптимизирован метод bindToLifecycle для быстрого выполнения в основном потоке. (I1d57e)
- DisplayOrientedMeteringPointFactory принимает экземпляр CameraInfo вместо CameraSelector, поэтому существует прямое сопоставление с тем, для какой камеры фабрика будет генерировать точки. Все классы, использующие DisplayOrientedMeteringPointFactory, также принимают экземпляр CameraInfo вместо CameraSelector. (I400c1)
- Исправлена ошибка, из-за которой при автоматическом выборе разрешения с соотношением сторон 16:9 и кратностью 16 выбирался размер 864 x 480, если целевое разрешение было 2016 x 1080 и поддерживался другой размер 1920 x 1080 с соотношением сторон 16:9. (I53167, b/159363774)
- Исправлена ошибка, из-за которой CameraControl не работал в состоянии гонки (I2279f, b/152333890, b/160714166).
Camera-Core версии 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)
- Инициализация больше не должна приводить к сбою при использовании контекста, который не возвращает объект Application из
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
- Объедините
FIT_CENTER,FIT_STARTиFIT_ENDсFIT.FITозначает, что возвращенный прямоугольник кадрирования будет максимально возможным прямоугольником датчика. (Ia73c3) - Прямоугольник кадрирования предварительного просмотра настраивается областью просмотра. Конечным пользователям должна быть видна только область, ограниченная рамкой кадрирования. (I142a4)
Исправление ошибок
- Исправлена проблема, из-за которой изображение в режиме предварительного просмотра растягивалось на устройствах с Android 5.0. (I0c03a)
- Исправлена ошибка, из-за которой при отмене привязки вариантов использования возникало исключение
ConcurrentModificationException. (I371c0)
Camera-Camera2 версии 1.0.0-beta06
24 июня 2020 г.
Выпущены данные "androidx.camera:camera-camera2:1.0.0-beta06". Версия 1.0.0-beta06 содержит эти коммиты.
Изменения в API
- Добавлены экспериментальные интерфейсы для фильтрации камер по идентификатору и характеристикам. (I28f61)
Исправление ошибок
- Исправлена ошибка, из-за которой startFocusAndMetering не удавалось сфокусироваться на Samsung Galaxy S7. (If3be7, b/159039233)
- Исправлена ошибка, из-за которой камера не закрывалась после выхода из приложения (I7a7b3).
- Исправлена ошибка, из-за которой многократное переключение камеры нарушало работу предварительного просмотра при использовании реализации SurfaceView для PreviewView (I920ce).
CameraControl#startFocusAndMeteringне сработает, если ни один из указанных объектов MeteringPoint не сможет сгенерировать допустимые прямоугольники замера. (Id53ce)
Camera-Core версии 1.0.0-beta06
24 июня 2020 г.
Выпущены данные "androidx.camera:camera-core:1.0.0-beta06". Версия 1.0.0-beta06 содержит эти коммиты.
Изменения в API
- Добавлены экспериментальные интерфейсы для фильтрации камер по идентификатору и характеристикам. (I28f61)
Исправление ошибок
- Теперь CameraX можно настроить с помощью
ProcessCameraProvider#configureInstance()перед вызовомProcessCameraProvider#getInstance(). Это позволяет настраиватьCameraXConfigбез необходимости реализовыватьCameraXConfig.Providerв классе Application приложения. (Ia1a8d) CameraControl#startFocusAndMeteringне сработает, если ни один из указанных объектов MeteringPoint не сможет сгенерировать допустимые прямоугольники замера. (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 версии 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)
Исправление ошибок
- Обновлены Javadoc для
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)
- Исправлена ошибка, из-за которой иногда получались слишком темные снимки, даже если использовалась вспышка. (I5d9fa, b/149729613)
- Исправлена ошибка, из-за которой буфер в
ImageProxyизImageCaptureне перематывался (I0c455, b/153249512). - Исправлены ошибки, возникавшие при привязке только ImageCapture: 1) не удавалось сделать снимки с MAX_QUALITY; 2) качество изображения было низким, так как не работала автоэкспозиция. (I17782, b/145326998)
- Повышена надежность повторного открытия камеры, когда CameraX отключается другим процессом или путем кода, который использует камеру (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()для настройки обработчика, который используется внутри стека камеры CameraX. Этот новый API вместе сCameraXConfig.Builder#setCameraExecutor()должен позволить полностью контролировать потоки, используемые стеком камеры CameraX. (I7bf32, b/121160431)
Исправление ошибок
- Исправлен сбой в
ImageAnalysis, когда доступ кImageProxyзапрашивался после закрытияImageReaderProxy. Это также означает, что всеImageProxy, полученныеAnalyzer, должны быть закрыты до закрытияImageReaderProxy. (I4b299, b/145956416, b/154155377, b/156357269) - Из функции
PreviewView#createSurfaceProvider()удален параметрCameraInfo. Теперь функцияPreviewViewполучает его изSurfaceRequest. (If18f0, b/154652477) - Исправлена ошибка, из-за которой автоматическая инициализация не работала, если на устройстве использовался псевдорегион. (I3bef3, b/154767663)
- Исправлена ошибка, из-за которой иногда получались слишком темные снимки, даже если использовалась вспышка. (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вызывал исключение. Это не позволяло получить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, не соответствовал значению поворота EXIF. (Id4281, b/150802561) - Чтобы использовать реализацию CameraX/Camera2 по умолчанию, больше не нужно явно указывать порядок зависимостей CameraX в файле
build.gradle. В случаях, когда требуется объявить строгие зависимости, все зависимости CameraX теперь можно включить в файл сборки. (I46e88) - Исправлена ошибка
IllegalArgumentException, возникавшая на устройствах с размером экрана меньше 640 x 480. (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, не соответствовал значению поворота EXIF. (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) - Исправлена инициализация вариантов приложения с включенным ProGuard за счет сохранения флага, который задает поставщика
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) - Исправлена инициализация вариантов приложения с включенным ProGuard за счет сохранения флага, который задает поставщика
CameraXConfigпо умолчанию. (I2d6c1) - В документацию по API режима вспышки добавлены возможные значения. (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сохраняются только на время использования Camera2. (I9dac2) - Исправлена проблема с недоэкспонированным предпросмотром на устройствах LEGACY путем правильной настройки
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. Теперь разработчикам не нужно создавать собственныеListenableFutureдляSurfaceProvider, а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, который по-прежнему содержит всю ранее передаваемую информацию. - Аргумент file, который ранее передавался в
ImageCapture.OnImageSavedCallback.onImageSaved(), удален. (I750d2) - Классы
PreviewиImageCaptureтеперь помечены как final. (I2500b) - Обновлен API. Методы
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()иgetLinearZoom()классаCameraInfoобъединены в методgetZoomState(), который возвращает экземплярZoomState. (Ib19fe) - Из
CameraXConfigудалены поля APIOPTION_TARGET_CLASSиOPTION_TARGET_NAME, поскольку они предназначены только для внутреннего использования в библиотеке. Удален конструктор для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
Добавлен путь взаимодействия camera2 для извлечения идентификатора камеры 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
- Параметр
useCaseForSurfaceвSurfaceOrientedMeteringPointFactoryпереименован в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 фонарика и масштабирования. - Исправлена ошибка, из-за которой не выбирались разрешения, близкие к запрошенному, когда был доступен размер mod16.
- Теперь API
startFocusMeteringиcancelFocusMeteringработают в соответствии с документацией, с правильным временем и потенциальным возвратом ошибок при их возникновении. - Исправлена ошибка, возникавшая, когда запрашивалось определенное целевое разрешение с соотношением сторон кадрирования на устройстве, которое не поддерживает такие размеры. Теперь, если доступно изображение без кадрирования с достаточным разрешением, чтобы ограничить исходный запрос, будет выбрано оно.
Camera-Camera2 версии 1.0.0-alpha08
18 декабря 2019 г.
Выпущены данные "androidx.camera:camera-camera2:1.0.0-alpha08". Версия 1.0.0-alpha08 содержит эти коммиты.
Известные проблемы
- Не все параметры запроса на захват Camera2 работают при использовании взаимодействия Camera2. Если запрошенный параметр не поддерживается, сеанс не запустится и может возникнуть следующая ошибка:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination.
Исправление ошибок
- Исправлена ошибка, из-за которой при повороте или переключении камеры на устройствах с уровнями API 21 и 22 в режиме предварительного просмотра появлялся черный экран.
Изменения в API
- Экспериментальная функция. Добавлен путь взаимодействия camera2 для извлечения идентификатора камеры.
Camera-Core версии 1.0.0-alpha08;
18 декабря 2019 г.
Выпущены данные "androidx.camera:camera-core:1.0.0-alpha08". Версия 1.0.0-alpha08 содержит эти коммиты.
Известные проблемы
- В приложениях, использующих
PreviewViewилиCameraView, может быть неправильное соотношение сторон в режиме предварительного просмотра. Это происходит после приостановки или возобновления на некоторых устройствах с уровнем поддержки FULL, например Pixel 2.
Исправление ошибок
- Обновлена документация по
FocusMeteringActionиCameraControl. - Реализован метод
TorchControlдляenableTorch()иgetTorchState().
Изменения в API
- Скрыты IntDef и перемещены константы 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можно использовать для инициализации и настройки реализации CameraX на основе Camera2. Подробную информацию о том, как использовать это при инициализации, можно найти в разделе 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. Разработчикам, которые используют CameraX в приложениях, опубликованных в Google Play, мы рекомендуем дождаться официального выпуска бета-версии, прежде чем обновлять библиотеку в своих приложениях.
Изменения в API
Важно! Инициализация CameraX изменилась. Приложения должны реализовывать
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) } }Класс CameraX удален. Объекты
bindToLifecycle(),unbind(),unbindAll(),isBound()иhasCamera(), которые ранее предоставлялись вызовом класса CameraX, теперь доступны черезProcessCameraProvider.Экземпляр
ProcessCameraProviderдля каждого процесса получается асинхронно с помощью статического методаProcessCameraProvider.getInstance(), который возвращает объект ListenableFuture, предоставляющий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)Классы Config для вариантов использования удалены. Вместо этого создавайте варианты использования напрямую, задавая параметры в каждом конструкторе. Пример:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()Теперь в сценарии использования Preview можно использовать поверхность, созданную приложением и управляемую им. Это соответствует рекомендациям для Android. Настоятельно рекомендуем использовать класс представления
PreviewView, который входит в пакет camera-view.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)Ознакомьтесь с документацией по прикреплению области, управляемой приложением. В таких случаях приложение управляет жизненным циклом поверхности.
Важно! Реализация метода
ImageAnalysisAnalyzer должна вызыватьimage.close()для полученных изображений, когда они больше не нужны. В противном случае новые изображения могут не приниматься или камера может зависнуть в зависимости от настройки противодавления. Подробную информацию вы найдете в справочной документации.ImageAnalysis ImageReaderModeтеперь изменена на стратегию противодавленияintdef.ImageProxy.getImage()отмечен как экспериментальный. Приложения должны аннотировать использование, например с помощью@androidx.camera.core.ExperimentalGetImage.Требование к аннотации
UIThreadдляAnalyzerудалено.Для удаления анализатора добавлена функция
ImageAnalysis.clearAnalyzer().Прослушиватели с несколькими методами переименованы в Callback:
- Теперь ваш банк –
ImageCapture.OnImageCapturedCallback, а неImageCapture.OnImageCapturedListener - Теперь ваш банк –
ImageCapture.OnImageSavedCallback, а неImageCapture.OnImageSavedListener - Теперь ваш банк –
VideoCapture.OnVideoSavedCallback, а неVideoCapture.OnVideoSavedListener
- Теперь ваш банк –
Перечисления заменены на IntDef
Добавлены элементы управления масштабом:
CameraControl.setLinearZoom()CameraControl.setZoomRatio()CameraInfo.getLinearZoom()CameraInfo.getMaxZoomRatio()CameraInfo.getZoomRatio()
CameraInfo.hasFlashUnit()добавлено, чтобы определить, есть ли вспышка/фонарик.Ресурс
CameraInfo.isFlashAvailable()уже удален. Фонарик переопределяет функцию вспышки. Подробную информацию вы можете найти в справочной документации.Поля
ImageCapture.Metadataзаменены методами доступа get/set/is.startFocusMeteringиcancelFocusMeteringтеперь возвращаютListenableFutures, представляющий асинхронную операцию вызова.MeteringPointsтеперь используются как дескрипторы для действий по измерению и создаются фабриками. В приложениях следует использовать существующие фабрики, а не создавать собственные.
Устраненные проблемы
- Исправлена ошибка, возникавшая при съемке после возобновления (когда после предыдущей паузы оставались незавершенные снимки).
- Известная проблема:
CameraControl.enableTorch()работает, но возвращаемое значениеListenableFuture<Void>всегда является ближайшим будущимcomplete(success), даже если вспышка отсутствует. В будущих версиях это будет исправлено: если вспышки нет,enableTorch(true)сразу же возвращает ошибку (не отправляет запрос вCaptureSession), аTorchStateостается в состоянии Off. - Известная проблема:
startFocusAndMeteringиcancelFocusAndMeteringзапускают и отменяют замер фокуса, но возвращают немедленное будущееcompleted (success), что не соответствует задокументированному поведению. ПолеFocusMeteringResultизListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()– это поддельный результат, которыйisFocusSuccessful()и всегда имеет значение False, что отличается от предполагаемого и задокументированного поведения. - Известная проблема: фабрика точек измерения для использования с событиями касания
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(), который принимает аргумент enum. Задает режим соотношения сторон. Возможные значения:RATIO_4_3илиRATIO_16_9. Это точнее отражает тот факт, что камера поддерживает только определенные соотношения сторон, а не любые.- В настоящее время доступны только соотношения сторон 16:9 и 4:3. Соотношение 1:1 доступно только на некоторых устройствах и только при определенных разрешениях. В приложениях, где используется интерфейс или обработка с соотношением сторон 1:1, следует использовать более гибкие варианты 16:9 или 4:3 и обрезать изображение или обрабатывать его часть.
- При таком соотношении сторон используется максимальная площадь матрицы.
- В API конфигурации вариантов использования добавлен метод
getTargetAspectRatio(), который возвращает соотношение сторон, для которого предназначен вывод варианта использования. - Метод
setTargetAspectRatio(Rational aspectRatio)для ImageCapture изменен наsetTargetAspectRatioCustom(Rational aspectRatio). Если задано, выходные данные ImageCapture обрезаются соответствующим образом.
Executor API
- Следующие функции принимают параметр executor, который позволяет приложению управлять тем, на каком исполнителе выполняется функция.
Preview.setOnPreviewOutputUpdateListener()API. Если исполнитель для этой функции отсутствует, она выполняется в основном потоке.Preview.setOnPreviewOutputUpdateListenerFocusMeteringAction.Builder.setAutoFocusCallbackImageAnalysis.setAnalyzerImageCapture.takePictureCameraView.takePictureCameraView.startRecordingVideoCapture.startRecording
Добавлен класс CameraInfo с API для проверки доступности вспышки и поворота датчика.
Добавлен метод
CameraInfoиgetCameraInfo, который позволяет приложениям проверять, доступна ли информация о камере, обращенной к объективу, и есть ли на этой камере вспышка. Пример: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(). Она предоставляет ориентацию датчика камеры относительно естественной ориентации устройства или, для удобства, относительно ориентации, описываемой поворотом поверхности (который описывает ориентацию относительно естественной ориентации).
Изменения в API и исправления ошибок
- Соотношение сторон. Для каждого варианта использования приложения должны вызывать только
setTargetResolution()илиsetTargetAspectRatio(). Если вызвать оба метода для одного и того же конструктора, произойдет ошибка.- В целом рекомендуется использовать
setTargetAspectRatio()в зависимости от дизайна интерфейса приложения. Разрешение зависит от сценария использования. Например, предварительный просмотр близок к разрешению экрана, а фотосъемка обеспечивает высокое разрешение. Подробную информацию вы найдете в таблице автоматических разрешений. - Используйте
setTargetResolution()в более конкретных случаях, например когда требуется минимальное (для экономии вычислительных ресурсов) или максимальное (для обработки деталей) разрешение.
- В целом рекомендуется использовать
- Executor API: из API конфигурации вариантов использования удален вызов
setCallbackHandler(). Вместо этого приложения могут задавать исполнителя в качестве параметра в других API, которые устанавливают обратный вызов. - Обновлены аннотации null для различных функций.
- Устранена проблема, из-за которой при открытии камеры возникала ошибка
java.lang.IllegalStateException at Camera$StateCallback.onError. - Исправлена ошибка, из-за которой выбиралось слишком низкое разрешение (менее 640 x 480), когда приложение запрашивало более высокое или стандартное разрешение, что приводило к пикселизации или размытию изображения в режиме предварительного просмотра. Приложения, которым требуется меньшее разрешение, могут запрашивать его явным образом.
- Исправлена ошибка, из-за которой камера показывала черный экран (не запускалась) после возврата из намерения, которое запускало другое приложение камеры.
- Исправлена ошибка, из-за которой при повторном запуске или остановке приложений возникала следующая ошибка:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!. - Исправлена следующая ошибка, возникающая при отключении ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.. - Добавлены дополнительные тесты для процесса отключения камеры.
- Повышена надежность системы тестирования при последовательном запуске тестов камеры.
Camera-Camera2 и Camera-Core версии 1.0.0-alpha05
5 сентября 2019 г.
Данные "androidx.camera:camera-camera2:1.0.0-alpha05" и "androidx.camera:camera-core:1.0.0-alpha05" опубликованы. Фиксации, включенные в camera-camera2:1.0.0-alpha05, и фиксации, включенные в camera-core:1.0.0-alpha05.
Изменение API: переименованы переменные ошибок в примерах использования:
- Объект
ImageCapture.UseCaseErrorпереименован вImageCapture.ImageCaptureError. VideoCapture.UseCaseErrorпереименован вVideoCapture.VideoCaptureError
- Объект
Добавлен API
CameraControlс API фокусировки по нажатию.Добавлен API для получения
CameraControlиз CameraX для камеры, выбранной по направлению объектива:CameraX.getCameraControl(LensFacing lensFacing)Добавлены
MeteringPointFactory,MeteringPoint,MeteringModeиFocusMeteringActionдля запуска фокусировки по нажатию: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();Добавлен API для
CameraControl, позволяющий запускать и отменять замер фокуса:getCameraControl(lensFacing).startFocusAndMetering(action);getCameraControl(lensFacing).cancelFocusAndMetering();Добавлены API для фабрик точек измерения, которые помогают преобразовывать координаты нажатия в координаты датчика на основе классов представлений:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
Принудительно вызывать следующие методы в основном потоке (потоке UI), выдавая ошибку
IllegalStateException, если они не вызываются. В будущих версиях будет разрешено использование в других потоках и обеспечена сериализация.CameraX.bindToLifecycle()CameraX.unbind()CameraX.unbindAll()ImageAnalysis.setAnalyzer()ImageAnalysis.getAnalyzer()ImageAnalysis.removeAnalyzer()Preview.removePreviewOutputListener()Preview.getOnPreviewOutputUpdateListener()Preview.setOnPreviewOutputUpdateListener()
Различные настройки конфигурации теперь принимают нулевые параметры, а соответствующие геттеры могут возвращать нулевые значения.
Исправлена ошибка, возникавшая при тестировании на эмуляторах, которые не поддерживают настройки автофокуса, автоэкспозиции и автоматического баланса белого.
Исправлена ошибка, из-за которой происходил сбой при повороте экрана во время анализа изображения.
Исправлена ошибка, из-за которой при запуске, повороте или переключении между фронтальной и основной камерами в окне предварительного просмотра появлялся черный экран (данные с камеры не поступали).
Удалено тестирование для нескольких параллельных сценариев использования анализа изображений. Чтобы обеспечить совместимость, приложения должны использовать только один вариант анализа изображений.
Добавлены начальные тесты Robolectric для имитации камеры в наборе тестов камеры (в разработке).
Удален тест Camera2Inititalizer, так как его охват был неясным или вводящим в заблуждение.
Camera-Camera2 и Camera-Core версии 1.0.0-alpha04
7 августа 2019 г.
Данные "androidx.camera:camera-camera2:1.0.0-alpha04" и "androidx.camera:camera-core:1.0.0-alpha04" опубликованы. Коммиты, вошедшие в версию 1.0.0-alpha04
Новые функции
Изменения в выборе соотношения сторон и разрешения
Цель CameraX – успешно инициализировать сеанс камеры. Это означает, что CameraX может изменить разрешение или соотношение сторон в зависимости от возможностей устройства, чтобы начать сеанс съемки. В результате точные запросы могут не выполняться. Это может быть связано со следующими причинами:
- Устройства, не поддерживающие запрошенное разрешение
- Проблемы с совместимостью, например на устаревших устройствах, где для корректной работы необходимо использовать определенные разрешения.
- На некоторых устройствах определенные форматы доступны только при определенном соотношении сторон.
- Предпочтение "ближайшего mod16" для кодирования JPEG или видео. Посмотрите
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP.
Хотя CameraX создает сеанс и управляет им, вы должны всегда проверять размеры возвращаемых изображений в выходных данных варианта использования в своем коде и соответствующим образом корректировать их.
Чтобы сделать API более понятным, мы внесли некоторые изменения в настройки разрешения и соотношения сторон:
- Если соотношение сторон не задано, для предварительного просмотра по умолчанию используется соотношение 4:3.
- Когда CameraX внутренне рассматривает изменения запрошенных разрешений и соотношений сторон на основе возможностей устройства, он сначала пытается сохранить то же соотношение сторон (определяемое любым из вызовов
setTargetAspectRatioилиsetTargetResolution). - Версия разрешения "Ближайшее mod16" считается имеющей такое же соотношение сторон.
Неблокирующий режим ImageAnalysis
- Теперь
ImageReaderMode.ACQUIRE_LATEST_IMAGEне блокирует выполнение кода. Он получает последнее изображение в очереди, но постоянно отбрасывает неиспользуемые изображения, чтобы избежать блокировки конвейера камеры. - Анализатор может удерживать одно изображение неограниченное время, не останавливая конвейер.
- Если приложение предоставляет исполнителя, который затем блокирует, вариант использования ImageAnalysis блокирует.
- Исполнитель по умолчанию, заданный внутри, ведет себя как неблокирующий исполнитель.
Исправление ошибок
- Исправлены проблемы с тайм-аутом при ожидании сходимости 3A при съемке изображений на устройствах без автофокуса, автоэкспозиции и автоматического баланса белого.
- Исправлена ошибка, возникавшая при быстрой съемке с помощью ImageCapture. Исправляет ошибку:
java.lang.IllegalStateException: maxImages (2) has already been acquired - Исправлена ошибка, из-за которой в одном из сценариев не вызывался метод
setLensFacing, что приводило к ошибкеjava.lang.IllegalArgumentException: Unable to get camera ID for use case. - Исправлена ошибка, из-за которой для устаревших устройств требовалось определенное соотношение сторон в качестве максимального разрешения JPEG.
- Исправлена ошибка, возникавшая при сворачивании приложения во время открытия камеры.
- Исправлена ошибка
checkAndUpdateEglState: invalid current EGLDisplayв API < 25. - Исправлена ошибка, из-за которой отменялась привязка предварительного просмотра после включения и запуска расширений.
- Артефакты сборки для camera-view и camera-extensions теперь публикуются как альфа-версии.
Camera-Camera2 и Camera-Core версии 1.0.0-alpha03
2 июля 2019 г.
Данные "androidx.camera:camera-core:1.0.0-alpha03" и "androidx.camera:camera-camera2:1.0.0-alpha03" опубликованы. Версия 1.0.0-alpha03 содержит эти коммиты.
Изменения в API
- Добавлено пояснение javadoc для target в вызовах конфигурации setTarget.
Camera-Core
- Исправлен сбой ненастроенной поверхности ввода/вывода при быстром открытии/закрытии или привязке/отвязке.
- Переход на новые реализации Futures
- Исправления для более надежного тестирования
- В тесте интеграции ядра теперь показывается время съемки фотографий
- Разработан внутренний класс совместимости для исполнителей.
- Приложение для тестирования времени ожидает завершения предыдущего захвата изображений, а также улучшена стабильность.
Расширения
- Добавлены проверки версий.
- Дополнительное тестовое покрытие – обратные вызовы событий расширения
- Улучшено внутреннее сопоставление изображений и метаданных.
- Исправлены ошибки при переключении режимов в тестовом приложении.
Camera-Camera2 и Camera-Core версии 1.0.0-alpha02
5 июня 2019 г.
Данные "androidx.camera:camera-core:1.0.0-alpha02" и "androidx.camera:camera-camera2:1.0.0-alpha02" опубликованы. Версия 1.0.0-alpha02 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка деления на ноль при использовании эмулятора.
- Исправлена ошибка NullPointerException/Surface Abandoned, возникавшая на некоторых устройствах при быстрой съемке фотографий с быстрой отменой и повторной привязкой вариантов использования.
- Исправлена внутренняя ошибка, из-за которой обновления запросов на съемку не применялись ко всем платформам.
- Повышена стабильность при перезапуске сценариев использования в новых экземплярах приложений.
- Изменения во внутренней архитектуре для подготовки к поддержке исполнителей в API.
- Дополнительные пояснения Javadoc по классу CameraX и управлению жизненным циклом.
- Добавлено инструментальное тестирование для приложения Antelope performance test app.
- Удалите из файла конфигурации Proguard строку "-keepattributes Signature".
Camera-Camera2 и Camera-Core 1.0.0-alpha01
7 мая 2019 г.
Выход androidx.camera:camera-core:1.0.0-alpha01 и androidx.camera:camera-camera2:1.0.0-alpha01. Версия 1.0.0-alpha01 содержит эти коммиты.
Camera-Lifecycle версии 1.0.0-beta11
14 октября 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta11". Версия 1.0.0-beta11 содержит эти коммиты.
Исправление ошибок
<UseCase>.getTargetRotation()вернетSurface.ROTATION_0, если будет вызван до подключения к экземпляру Camera, за исключением случаев, когда targetRotation задан в Builder или UseCase. (I80fcd)
Camera-Lifecycle версии 1.0.0-beta10
23 сентября 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta10". Версия 1.0.0-beta10 содержит эти коммиты.
Исправление ошибок
- Выпуск с поддержкой Camera-Core 1.0.0-beta10
Camera-Lifecycle версии 1.0.0-beta09
16 сентября 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta09". Версия 1.0.0-beta09 содержит эти коммиты.
Camera-Lifecycle версии 1.0.0-beta08
19 августа 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta08". Версия 1.0.0-beta08 содержит эти коммиты.
Исправление ошибок
- Инициализация больше не должна приводить к сбою при использовании контекста, который не возвращает объект Application из
Context.getApplicationContext(). (I3d3c9, b/160817073)
Camera-Lifecycle версии 1.0.0-beta07
22 июля 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta07". Версия 1.0.0-beta07 содержит эти коммиты.
Camera-Lifecycle версии 1.0.0-beta06
24 июня 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta06". Версия 1.0.0-beta06 содержит эти коммиты.
Изменения в API
- Теперь CameraX можно настроить с помощью ProcessCameraProvider#configureInstance() перед вызовом ProcessCameraProvider#getInstance(). Это позволяет настраивать CameraXConfig без необходимости реализации CameraXConfig.Provider в классе Application приложения. (Ia1a8d)
Camera-Lifecycle версии 1.0.0-beta05
10 июня 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta05". Версия 1.0.0-beta05 содержит эти коммиты.
Исправление ошибок
- Исправлен сбой при запуске приложения, когда CameraX инициализируется в режиме "Не беспокоить". Если
InitializationExceptionсодержитCameraUnavailableException, то вместо сбоя приложения будет задано значениеListenableFutureрезультата инициализации. (I9909a, b/149413835)
Camera-Lifecycle версии 1.0.0-beta04
27 мая 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta04". Версия 1.0.0-beta04 содержит эти коммиты.
Camera-Lifecycle версии 1.0.0-beta03
15 апреля 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta03". Версия 1.0.0-beta03 содержит эти коммиты.
Исправление ошибок
- Исправлена регрессия из версии beta03, из-за которой вызов
bindToLifecycle()с нулевым значениемUseCaseвызывал исключение. Это не позволяло получитьCameraбез привязкиUseCase. - Исправления для поддержки выпуска
camera-core.
Camera-Lifecycle версии 1.0.0-beta01
26 февраля 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta01". Версия 1.0.0-beta01 содержит эти коммиты.
Исправление ошибок
- В документацию добавлено примечание о том, что при получении
ProcessCameraProviderво время инициализации используется конфигурация по умолчанию и что расширениеApplicationнеобязательно. (I5e395)
Camera-Lifecycle версии 1.0.0-beta02
1 апреля 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-beta02". Версия 1.0.0-beta02 содержит эти коммиты.
Исправление ошибок
- Обновлено для поддержки исправлений ошибок в объектах
camera-camera2:1.0.0-beta02иcamera-core:1.0.0-beta02.
Camera-Lifecycle, версия 1.0.0-alpha10
10 февраля 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-alpha10". Версия 1.0.0-alpha10 содержит эти коммиты.
Изменения в API
- Добавлена аннотация
@MainThreadк методам BindToLifecycle, unbind и unbindAll. (I990d2)
Camera-Lifecycle версии 1.0.0-alpha03
22 января 2020 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-alpha03". Версия 1.0.0-alpha03 содержит эти коммиты.
Обновления
- Исправлены ошибки и внесены изменения, связанные с Camera Core и Camera2.
Camera-Lifecycle версии 1.0.0-alpha02
18 декабря 2019 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-alpha02". Версия 1.0.0-alpha02 содержит эти коммиты.
Изменения в зависимостях
- Обновлено для использования
androidx.camera:camera-core:1.0.0-alpha08.
Camera-Lifecycle версии 1.0.0-alpha01
4 декабря 2019 г.
Выпущены данные "androidx.camera:camera-lifecycle:1.0.0-alpha01". Версия 1.0.0-alpha01 библиотеки camera-lifecycle содержит следующие коммиты
Примечания к API
- Добавлен артефакт camera-lifecycle, предоставляющий интерфейс
LifeCycleCameraProviderи реализациюProcessCameraProvider, которая обеспечивает многие функции предыдущего класса CameraX в ядре и получается с помощью методаgetInstance(). - Чтобы использовать CameraX, в приложениях должна быть библиотека camera-lifecycle.
- Инструкции по инициализации CameraX с помощью
ProcessCameraProviderприведены в разделе camera-core.
Camera-Extensions и Camera-View версии 1.0.0
Версия 1.0.0-alpha32
15 декабря 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha32" и "androidx.camera:camera-view:1.0.0-alpha32" опубликованы. Версия 1.0.0-alpha32 содержит эти коммиты.
Изменения в API
- Удалены ненужные аннотации
@RequiresApi(21)из внутренних классов и интерфейсов. (I8e286, b/204917951) - Обновите файлы API для артефакта camera-extensions. (If683a, b/161377155)
Исправление ошибок
- Запретить приложению включать режимы расширения при привязке
VideoCapture. Расширения CameraX поддерживают толькоImageCaptureиPreview.VideoCaptureпока не поддерживается. Если приложение связываетVideoCaptureи включает любой режим расширения, будет выдано исключениеIllegalArgumentException. (I0d87b) CameraSelector#filterбольше не выдаетIllegalArgumentException, если набор результатов пуст. (I27804)- API
ExtensionsManager#getInstanceпереименован вgetInstanceAsync, поскольку он возвращаетListenableFuture. Суффикс Async в названии функции указывает на то, что она асинхронная. (I279d2) - Удалите параметр разрешения из API
ExtensionsManager#getEstimatedCaptureLatencyRange, поскольку пользователи не могут знать, какие размеры поддерживаются для варианта использованияImageCapture, и не могут определить, относится ли возвращенная информация о задержке к максимальному размеру выходных данных захвата или к параметру разрешения входных данных. (I74bb2) - Переместите параметр
CameraProviderфункцийExtensionsManagerв APIgetInstance(). Чтобы пользователям не приходилось каждый раз вводить параметрCameraProviderпри вызове функцийExtensionsManager. (Ic7e48)
Версия 1.0.0-alpha31
17 ноября 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha31" и "androidx.camera:camera-view:1.0.0-alpha31" опубликованы. Версия 1.0.0-alpha31 содержит эти коммиты.
Изменения в API
- В общедоступный API добавлен метод CameraSelector#filter, позволяющий фильтровать список CameraInfo на основе CameraSelector. (I105d0)
Исправление ошибок
- Устранен сбой, который возникал на некоторых устройствах при быстром переключении режима расширений. (Iebbef)
Версия 1.0.0-alpha30
13 октября 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha30" и "androidx.camera:camera-view:1.0.0-alpha30" опубликованы. Версия 1.0.0-alpha30 содержит эти коммиты.
Изменения в API
- Добавлена аннотация @RequiresApi(21) для всех классов CameraX, а minSdkVersion удалена из AndroidManifest.xml. Это позволит легко интегрировать camera-core в приложения, у которых для атрибута minSdkVersion задано значение ниже 21, но которые хотят условно использовать пути выполнения, зависящие от API 21 и выше. Если у вас приложение с minSdkVersion 21 или выше, никаких действий не требуется. (Ie7f2e, b/200599470)
Исправление ошибок
- Исправлена ошибка AbstractMethodError, которая возникает, когда включен ProGuard. (Iae468, b/201177844)
Версия 1.0.0-alpha29
29 сентября 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha29" и "androidx.camera:camera-view:1.0.0-alpha29" опубликованы. Версия 1.0.0-alpha29 содержит эти коммиты.
Изменения в API
- Аннотация ExperimentalUseCaseGroup удалена, поскольку API больше не являются экспериментальными. (I01ef5)
- удалить таймер "
RotationProvider#removeAllListeners()". Вместо него используйтеRotationProvider#removeListener(...). (Id9d4a) - Обновлен класс RotationReceiver: set/clear Listener заменен на add/remove/removeAll, удален вариант setListener, который по умолчанию использует основной поток, и добавлена аннотация методов. (Ib1669)
Исправление ошибок
- Режим ExtensionMode#BEAUTY переименован в FACE_RETOUCH, чтобы точнее отражать его назначение. (I61f54, b/198515274)
- Исправлена ошибка, из-за которой камера неожиданно закрывалась, когда в одном действии использовалось несколько CameraController и PreviewView. (Ibfd18, b/197539358)
Версия 1.0.0-alpha28
18 августа 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha28" и "androidx.camera:camera-view:1.0.0-alpha28" опубликованы. Версия 1.0.0-alpha28 содержит эти коммиты.
Изменения в API
- Аннотация ExperimentalUseCaseGroupLifecycle удалена, поскольку API больше не являются экспериментальными. (I17b85)
- Проведен рефакторинг RotationListener и его переименование в RotationProvider. Она по-прежнему предоставляет ту же функцию, но с немного другим API. (Idffc5)
- Переименуйте TAP_TO_FOCUS_UNSUCCESSFUL в TAP_TO_FOCUS_NOT_FOCUSED, а TAP_TO_FOCUS_SUCCESSFUL – в TAP_TO_FOCUS_FOCUSED. Класс OutputSize стал финальным (I099fa).
Исправление ошибок
- Удалены устаревшие классы
<EffectName><UseCase>Extender, ExtensionsErrorListener и связанные API ExtensionsManager. (I3b8c3)
Версия 1.0.0-alpha27
21 июля 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha27" и "androidx.camera:camera-view:1.0.0-alpha27" опубликованы. Версия 1.0.0-alpha27 содержит эти коммиты.
Изменения в API
- Viewport API больше не является экспериментальным. Удалите аннотацию эксперимента из API. (I717ea)
CoordinateTransform#getTransformпереименован вCoordinateTransform#transform, обновлена документация JavaDoc (I864ae).
Исправление ошибок
- Исправлена проблема с растягиванием в режиме
PreviewView PERFORMANCEпри использовании вместе с Compose UI. (Ie1137, b/183864890)
Версия 1.0.0-alpha26
30 июня 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha26" и "androidx.camera:camera-view:1.0.0-alpha26" опубликованы. Версия 1.0.0-alpha26 содержит эти коммиты.
Изменения в API
- Добавьте новый метод
CameraController#getTapToFocusState(), который показывает последний результат фокусировки по нажатию. (Iaccb0) - Добавление дополнительных основных функций камеры в CameraController: геттеры/сеттеры для целевого соотношения сторон, целевого разрешения, режима съемки, CameraControl и пользовательских исполнителей. (Iea8f2)
- добавьте класс RotationReceiver, который получает изменения поворота Surface. Это можно использовать, чтобы задать целевой поворот, когда устройство находится в фиксированном вертикальном или горизонтальном режиме. (Ib278f)
- В класс ExtensionsManager добавлены новые общедоступные API getEstimatedCaptureLatencyRange. (I6a8ec)
- Устаревший ExtensionsErrorListener. В настоящее время этот интерфейс используется только для отслеживания того, отсутствует ли Preview или ImageCapture при включении режимов расширения. CameraX автоматически добавит дополнительный Preview или ImageCapture, чтобы функции расширения работали правильно. После этого в интерфейсе не будут появляться сообщения об ошибках. (I47d9e)
- Добавлены новые общедоступные API ExtensionsManager getInstance, isExtensionAvailable и getExtensionEnabledCameraSelector, а также прекращена поддержка старых классов
<EffectName><UseCase>Extenderи связанных с ними API. (I329e6)
Версия 1.0.0-alpha25
2 июня 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha25" и "androidx.camera:camera-view:1.0.0-alpha25" опубликованы. Версия 1.0.0-alpha25 содержит эти коммиты.
Изменения в API
- ExperimentalCameraFilter API больше не являются экспериментальными и стали официальными API. Их можно использовать без аннотации OptIn. (I4bc94)
- Добавьте утилиту, которая преобразует координаты между вариантами использования. Пример использования: преобразование координат, обнаруженных в ImageAnalysis, и выделение обнаруженного объекта в предварительном просмотре. (I63ab1, b/137515129)
- Контакт (
CameraView) удален. ВместоCameraViewтеперь используетсяCameraController. Инструкции по переносу приведены в руководстве. (Id5005)
Исправление ошибок
- Значение в ячейке
ExperimentalUseCaseGroupLifecycleзаменено на "ExperimentalUseCaseGroup". (I3b2ef, b/159033688)
Версия 1.0.0-alpha24
21 апреля 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha24" и "androidx.camera:camera-view:1.0.0-alpha24" опубликованы. Версия 1.0.0-alpha24 содержит эти коммиты.
Исправление ошибок
- Аннотация
@Experimentalзаменена на@RequiresOptInдля экспериментальных API. Для вызова экспериментальных API используйтеandroidx.annotation.OptInвместо устаревшегоandroidx.annotation.experimental.UseExperimental. Iff226 - Исправлена проблема с растянутым изображением в PreviewView на Samsung J5 Prime (Ib10b6).
Camera Extensions & View версии 1.0.0-alpha23
24 марта 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha23" и "androidx.camera:camera-view:1.0.0-alpha23" опубликованы. Версия 1.0.0-alpha23 содержит эти коммиты.
Изменения в API
- Поддержка CameraView прекращается. Вместо него используйте следующее:
LifecycleCameraController. Ознакомьтесь с руководством по переносу (Idac2c). - Добавлена аннотация FloatRange в setLinearZoom() (I69971).
Исправление ошибок
- Зависимости camera-view закреплены за артефактами версии 1.0.0. При использовании camera-view разрешение зависимостей Gradle больше не будет автоматически обновлять camera-core, camera-camera2 и camera-lifecycle до последних артефактов версии 1.1.0. Однако camera-view по-прежнему совместим с этими артефактами, если они явно настроены на использование версии 1.1.0. (Ic8fa1, b/181599852)
- Исправлена ошибка, из-за которой на устройствах Samsung A3 изображение в PreviewView растягивалось. (Iacb30, b/180121821)
- Исправлена ошибка, из-за которой селектор камеры не мог быть установлен до инициализации камеры. (Ic8bd0)
Camera Extensions & View версии 1.0.0-alpha22
24 февраля 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha22" и "androidx.camera:camera-view:1.0.0-alpha22" опубликованы. Версия 1.0.0-alpha22 содержит эти коммиты.
Изменения в API
- добавьте метод получения CameraInfo в CameraController. (Ib8138, b/178251727)
Исправление ошибок
- Исправлена ошибка, из-за которой ExtensionsErrorListener сообщал об ошибках, когда привязаны только Preview или ImageCapture. (I5ae39)
Camera Extensions & View версии 1.0.0-alpha21
27 января 2021 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha21" и "androidx.camera:camera-view:1.0.0-alpha21" опубликованы. Версия 1.0.0-alpha21 содержит эти коммиты.
Добавлена поддержка других артефактов библиотеки камеры.
Camera Extensions & View версии 1.0.0-alpha20
16 декабря 2020 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha20" и "androidx.camera:camera-view:1.0.0-alpha20" опубликованы. Версия 1.0.0-alpha20 содержит эти коммиты.
Добавлена поддержка других артефактов библиотеки камеры.
Camera-Extensions и Camera-View версии 1.0.0-alpha19
11 ноября 2020 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha19" и "androidx.camera:camera-view:1.0.0-alpha19" опубликованы. Версия 1.0.0-alpha19 содержит эти коммиты.
Исправление ошибок
- В поле зрения камеры появилась аннотация "
@ExperimentalVideo". Эта аннотация отмечает API, которые предоставляют экспериментальные функции видео, которые могут быть изменены по мере полной разработки функций. Любой метод, использующий эти API, должен использовать аннотацию@UseExperimentalсExperimentalVideoв качествеmarkerClass. (I6d729)
Camera-Extensions версии 1.0.0-alpha18
14 октября 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha18". Версия 1.0.0-alpha18 содержит эти коммиты.
Исправление ошибок
- Уменьшена задержка при инициализации CameraX и bindToLifecycle (I61dc5).
<UseCase>.getTargetRotation()вернетSurface.ROTATION_0, если будет вызван до подключения к экземпляру Camera, за исключением случаев, когда targetRotation задан в Builder или UseCase. (I80fcd)
Camera-View версии 1.0.0-alpha18
14 октября 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha18". Версия 1.0.0-alpha18 содержит эти коммиты.
Добавлена поддержка других артефактов библиотеки камеры.
Camera-Extensions версии 1.0.0-alpha17
23 сентября 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha17". Версия 1.0.0-alpha17 содержит эти коммиты.
Исправление ошибок
- Выпуск с поддержкой Camera-Core 1.0.0-beta10
Camera-View версии 1.0.0-alpha17
23 сентября 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha17". Версия 1.0.0-alpha17 содержит эти коммиты.
Исправление ошибок
- Выпуск с поддержкой Camera-Core 1.0.0-beta10.
Camera-Extensions версии 1.0.0-alpha16
16 сентября 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha16". Версия 1.0.0-alpha16 содержит эти коммиты.
Исправление ошибок
- Добавлен метод в
ExtensionsManagerдля получения объектаExtensions, который используется для включения и запроса расширений в экземплярах Camera (I4fb7e).
Camera-View версии 1.0.0-alpha16
16 сентября 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha16". Версия 1.0.0-alpha16 содержит эти коммиты.
Изменения в API
- Удалены
PreviewView#setDeviceRotationForRemoteDisplayMode()иPreviewView#getDeviceRotationForRemoteDisplayMode(). Эти два метода предназначены для настройки поворота предварительного просмотра, когда желаемый поворот не является поворотом дисплея, например удаленным дисплеем. Чтобы настроить поворот предварительного просмотра без показа, задайте нужный поворот с помощьюPreview#setTargetRotation()и новогоPreviewView#getViewPort(targetRotation). (Ib62cc) - Название "
createSurfaceProvider()" изменено на "getSurfaceProvider()". Метод всегда будет возвращать один и тот же экземпляр Preview.SurfaceProvider. (Iff83c)
Исправление ошибок
- Принудительное использование TextureView в PreviewView, если включен эффект расширения и реализация библиотеки поставщика требует специальной обработки выходной поверхности. (I0c3cc)
- Разрешить произвольный поворот цели для предварительного просмотра. Информация о преобразовании рассчитывается и возвращается пользователю в реальном времени с помощью нового обратного вызова
TranformationInfoListener. (I21470)
Известные проблемы
- В PreviewView метод
OnClickListener#onClick()не вызывается, когда конечный пользователь нажимает на PreviewView. Событие касания ошибочно обрабатывается PreviewView#onTouchEvent(). Проблема будет устранена в следующем выпуске. - Объект MeteringPoint, полученный из
PreviewView#getMeteringPointFactory(), может быть неверным, если ViewPort используется с PreviewView.
Camera-Extensions версии 1.0.0-alpha15
19 августа 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha15". Версия 1.0.0-alpha15 содержит эти коммиты.
Исправление ошибок
- Метод
ExtensionsManager.init()теперь принимает в качестве параметра контекст, а не 0 аргументов. (Ife754) Инициализация больше не должна приводить к сбою при использовании контекста, который не возвращает объект приложения из
Context.getApplicationContext(). (I3d3c9, b/160817073)Camera-View версии 1.0.0-alpha15
19 августа 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha15". Версия 1.0.0-alpha15 содержит эти коммиты.
Исправление ошибок
DisplayOrientedMeteringPointFactoryпринимает экземплярCameraInfoвместоCameraSelector, поэтому существует прямое сопоставление с камерой, для которой фабрика будет генерировать точки. Все классы, использующиеDisplayOrientedMeteringPointFactory, также принимают экземплярCameraInfoвместоCameraSelector. (I400c1)- Контакт (
TextureViewMeteringPointFactory) удален.PreviewViewпредоставляет общедоступный API (createMeteringPointFactory()) для создания фабрики точек замера независимо от того, используется лиTextureViewилиSurfaceView. (Ide693) - Переименуйте режимы реализации PreviewView
SURFACE_VIEW/TEXTURE_VIEWвPERFORMANCE/COMPATIBLE.PERFORMANCE– это старый режимSURFACE_VIEW, аCOMPATIBLE– старый режимTEXTURE_VIEW. (I0edc2) - Для фотосъемки перезапишите флаг горизонтального отражения в метаданных на основе направления камеры. (I28499)
Camera-Extensions версии 1.0.0-alpha14
22 июля 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha14". Версия 1.0.0-alpha14 содержит эти коммиты.
Camera-View версии 1.0.0-alpha14
22 июля 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha14". Версия 1.0.0-alpha14 содержит эти коммиты.
Camera-Extensions версии 1.0.0-alpha13
24 июня 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha13". Версия 1.0.0-alpha13 содержит эти коммиты.
Исправление ошибок
- Добавлены экспериментальные интерфейсы для фильтрации камер по идентификатору и характеристикам. (I28f61)
Camera-View версии 1.0.0-alpha13
24 июня 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha13". Версия 1.0.0-alpha13 содержит эти коммиты.
Исправление ошибок
- CameraView больше не аварийно завершает работу с ошибкой IllegalArgumentException при привязке к LifecycleOwner, чей Lifecycle переходит в состояние DESTROYED вскоре после привязки. Привязка жизненных циклов в состоянии DESTROYED не приведет к попытке открыть камеру. (I7c2b8)
- PreviewView StreamState теперь доступен через CameraView.getPreviewStreamState() (I21a2b).
Camera-Extensions версии 1.0.0-alpha12
10 июня 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha12". Версия 1.0.0-alpha12 содержит эти коммиты.
Исправление ошибок
- Исправлен сбой при запуске приложения, когда CameraX инициализируется в режиме "Не беспокоить". Если
InitializationExceptionсодержитCameraUnavailableException, то вместо сбоя приложения будет задано значениеListenableFutureрезультата инициализации. (I9909a, b/149413835)
Camera-View версии 1.0.0-alpha12
10 июня 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha12". Версия 1.0.0-alpha12 содержит эти коммиты.
Исправление ошибок
- Добавлен API
PreviewView#getBitmap(), который возвращает битовую карту контента, показанного в области предварительного просмотра. (I9b500, b/157659818)
Camera-Extensions версии 1.0.0-alpha11
27 мая 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha11". Версия 1.0.0-alpha11 содержит эти коммиты.
Camera-View версии 1.0.0-alpha12
10 июня 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha12". Версия 1.0.0-alpha12 содержит эти коммиты.
Новые функции
Изменения в API
Исправление ошибок
- Добавлен API
PreviewView#getBitmap(), который возвращает битовую карту контента, показанного в области предварительного просмотра. (I9b500, b/157659818)
Camera-View, версия 1.0.0-alpha11
27 мая 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha11". Версия 1.0.0-alpha11 содержит эти коммиты.
Изменения в API
- Добавлен API
PreviewView#getPreviewStreamState, который позволяет приложениям отслеживать, выполняется ли потоковая передача предварительного просмотра. Если PreviewView находится в режиме TEXTURE_VIEW, состояние STREAMING также гарантирует, что изображение предварительного просмотра будет видно. (Ic0906, b/154652477) - Добавлен API
PreviewView#setDeviceRotationForRemoteDisplayMode(), который позволяет поворачивать устройство для расчета преобразований, если приложение запущено в режиме удаленного экрана. (I59b95, b/153514525)
Исправление ошибок
- Исправлена проблема с искажением изображения в режиме предварительного просмотра на камерах
FULL/LIMITED/LEVEL_3с Android 7.0 и более ранними версиями. Принудительное использование режимаImplementationMode#TEXTURE_VIEW, если версия Android – 7.0 или ниже. (I83e30, b/155085307) - Из функции
PreviewView#createSurfaceProvider()удален параметрCameraInfo. Теперь функцияPreviewViewполучает его изSurfaceRequest. (If18f0, b/154652477) - Исправлено соотношение сторон по умолчанию для VideoCapture в CameraView. Теперь оно составляет 16:9. (Ie6a7b, b/153237864)
- Исправлена ошибка, из-за которой в ViewPager2 появлялся черный экран при удалении фрагмента
PreviewViewи его последующем возвращенииPreview. Также исправлена ошибка, из-за которойremoveView(previewview), а затемaddView(previewView). (Iab555, b/149877652, b/147354615) - Обновите API
CameraView#takePicture(), чтобы разрешить сохранение изображений вUriиOutputStream. Обновите тестовое приложение, чтобы использоватьUriв качестве канонического примера. (Ia2459, b/153607583) - Вы можете задать тип масштабирования PreviewView в макете XML, установив атрибут
ScaleType. (I08565, b/153015659) - Ресурс
CameraView.ScaleTypeуже удален. Вместо этого используйтеPreviewView.ScaleType, чтобы задать или получить тип масштабирования с помощью CameraView. (Ia8974, b/153014831) - Если у элемента
PreviewViewнет цвета фона по умолчанию, задайте его. Это нужно, чтобы контент за ним не был виден до начала предварительного просмотра трансляции. (I09fad)
Camera-Extensions версии 1.0.0-alpha10
15 апреля 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha10". Версия 1.0.0-alpha10 содержит эти коммиты.
Исправление ошибок
- Исправления для поддержки выпуска Camera-Core.
Camera-View, версия 1.0.0-alpha10
15 апреля 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha010". Версия 1.0.0-alpha010 содержит эти коммиты.
Исправление ошибок
- Исправлена известная проблема, из-за которой реализация surfaceView в
PreviewViewне работала должным образом на некоторых устройствах и приводила к сбою приложения после возобновления предварительного просмотра. (I5ed6b)
Camera-Extensions версии 1.0.0-alpha09
1 апреля 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha09". Версия 1.0.0-alpha09 содержит эти коммиты.
Исправление ошибок
- Обновлено для поддержки исправлений ошибок в артефактах
camera-camera2:1.0.0-beta02,camera-core:1.0.0-beta02иcamera-lifecycle:1.0.0-beta02.
Camera-View версии 1.0.0-alpha09
1 апреля 2020 г.
Выпущен androidx.camera:camera-view:1.0.0-alpha09. Версия 1.0.0-alpha09 содержит эти коммиты.
Известные проблемы
- Использование
ImplementationMode.SURFACE_VIEWсPreviewViewможет работать некорректно на некоторых устройствах. Это связано с тем, чтоSurfaceView, используемый для предварительного просмотра, аннулирует свою поверхность, когда жизненный цикл окна, в котором он находится, останавливается. При перезапуске камера снова открывается и может попытаться возобновить предварительный просмотр до того, как поверхностьSurfaceViewснова станет действительной. Пока используйтеImplementationMode.TEXTURE_VIEW.
Изменения в API
- Название "
PreviewView.setImplementationMode()" изменено на "PreviewView.setPreferredImplementationMode()". - Название "
PreviewView.getImplementationMode()" изменено на "PreviewView.getPreferredImplementationMode()". PreviewView.getSurfaceProvider()заменен наPreviewView.createSurfaceProvider(CameraInfo), который принимает экземплярCameraInfo, допускающий значение NULL, используемый для оптимизации предварительного просмотра с помощьюImplementationMode.SURFACE_VIEW, когда это возможно. Если передается нулевой экземпляр или вы задаете предпочтительный режим реализацииImplementationMode.TEXTURE_VIEW, то внутри используетсяImplementationMode.TEXTURE_VIEW.В следующем примере кода показано, как ранее использовался вариант использования предварительного просмотра с PreviewView.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)Сейчас вы можете написать следующее:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))К
PreviewView.getSurfaceProvider()добавлена аннотация@UiThread, то есть вызов должен выполняться из основного потока. (I192f3)Добавлен метод
PreviewView.setScaleType(), который позволяет задать тип масштабирования для предварительного просмотра. Принимает одно из значений вPreviewView.ScaleType. По умолчанию используетсяPreviewView.ScaleType.FILL_CENTER.Добавлено:
PreviewView.getScaleType().Удалена поддержка настройки режима реализации для
PreviewViewв макете XML с помощью атрибутаimplementationMode.Добавлен API
createMeteringPointFactory()в PreviewView для поддержки преобразования (x, y) изPreviewViewвMeteringPoint. (Ib36d7)
Исправление ошибок
- Исправлены случаи, когда после изменения размера
PreviewViewотображался неправильный предварительный просмотр. (I71101)
Camera-Extensions версии 1.0.0-alpha08
26 февраля 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha08". Версия 1.0.0-alpha08 содержит эти коммиты.
Camera-View версии 1.0.0-alpha08
26 февраля 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha08". Версия 1.0.0-alpha08 содержит эти коммиты.
Исправление ошибок
ListenableFutureнаSurfaceRequest.provideSurface()заменен наExecutorиCallback. Это упрощает API, поскольку больше не требуется обрабатывать исключения вprovideSurface(), и гарантирует, что обратный вызовprovideSurface()не может быть отменен. Это позволяет предотвратить сбои на старых устройствах, вызванные преждевременным освобождением поверхностей. ОбъектSurfaceRequest.Resultтеперь используется для отслеживания того, какSurfaceRequestиспользует предоставленныйSurface. (I7854b)SurfaceRequest.setSurface(Surface)переименован вSurfaceRequest.provideSurface(Surface), аSurfaceRequest.setWillNotComplete()– вSurfaceRequest.willNotProvideSurface(). (I224fe)- Исправлена инициализация вариантов приложения с включенным ProGuard за счет сохранения флага, который задает поставщика
CameraXConfigпо умолчанию. (I2d6c1)
Camera-Extensions, версия 1.0.0-alpha07
10 февраля 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha07". Версия 1.0.0-alpha07 содержит эти коммиты.
Исправление ошибок
- Аргументы, которые ранее передавались в
ImageCapture.OnImageSavedCallback.onError()иImageCapture.OnImageCapturedCallback.onError(), теперь заменены одним аргументомImageCaptureException, который по-прежнему содержит всю информацию, которая передавалась ранее. - Аргумент file, который ранее передавался в
ImageCapture.OnImageSavedCallback.onImageSaved(), удален. (I750d2)
Camera-View, версия 1.0.0-alpha07
10 февраля 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha07". Версия 1.0.0-alpha07 содержит эти коммиты.
Изменения в API
- Теперь в реализации
PreviewViewTextureViewразмерTextureViewустанавливается равным размеру выходных данных датчика камеры, а затем масштабируется, чтобы заполнить родительскийPreviewView. Если вы хотите, чтобы изображение с камеры занимало всю область пользовательского интерфейса (например, весь экран), не задавайте фиксированный размерPreviewViewи не используйте атрибутwrap_content. В противном случае изображение с камеры может занимать только частьPreviewView(если размер выходного изображения с датчика камеры меньше). Вместо этого задайте дляPreviewViewтакой же размер, как у родительского элемента (например, с помощью атрибутаmatch_parent). (1204869)
Исправление ошибок
- В
ImageCaptureтеперь можно сохранять изображения вUriиOutputStream. Перегруженные методыtakePictureобъединены в один. Тестовое приложение обновлено, чтобы использоватьUriв качестве канонического примера. (Ia3bec) - Сервисный аккаунт
Preview.PreviewSurfaceProviderпереименован. Новое название:Preview.SurfaceProvider. Теперь разработчикам не нужно создавать собственныеListenableFutureдляSurfaceProvider, аSurfaceпредоставляется через новый объектSurfaceRequest. МетодPreview.getPreviewSurfaceProvider()удален, поскольку он может использоваться не по назначению, когдаPreviewсочетается с другими классами, напримерPreviewView. (I20105) - Аргументы, которые ранее передавались в
ImageCapture.OnImageSavedCallback.onError()иImageCapture.OnImageCapturedCallback.onError(), теперь заменены одним аргументомImageCaptureException, который по-прежнему содержит всю ранее передаваемую информацию. - Аргумент file, который ранее передавался в
ImageCapture.OnImageSavedCallback.onImageSaved(), удален. (I750d2) - Обновлен API. Методы
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()иgetLinearZoom()классаCameraInfoобъединены в методgetZoomState(), который возвращает экземплярZoomState. (Ib19fe)
Camera-Extensions версии 1.0.0-alpha06
22 января 2020 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha06". Версия 1.0.0-alpha06 содержит эти коммиты.
Обновления
- Исправлены ошибки и внесены изменения, связанные с Camera Core и Camera2.
Camera-View версии 1.0.0-alpha06
22 января 2020 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha06". Версия 1.0.0-alpha06 содержит эти коммиты.
Обновления
- Исправлены ошибки и внесены изменения, связанные с Camera Core и Camera2.
Camera-Extensions версии 1.0.0-alpha05
18 декабря 2019 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha05". Версия 1.0.0-alpha05 содержит эти коммиты.
Исправление ошибок
- Обновлено в соответствии с внутренними API Camera Core.
Camera-View версии 1.0.0-alpha05
18 декабря 2019 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha05". Версия 1.0.0-alpha05 содержит эти коммиты.
Известные проблемы
- При использовании PreviewView соотношение сторон может быть неправильным (b/146215202).
Новые функции
- Добавлен новый класс
PreviewView.TextureViewImplementation, который синхронизирует жизненный цикл SurfaceTexture с использованием поверхности TextureView камерой.
Camera-Extensions версии 1.0.0-alpha04
4 декабря 2019 г.
Выпущены данные "androidx.camera:camera-extensions:1.0.0-alpha04". Версия 1.0.0-alpha04 библиотеки camera-extensions содержит эти коммиты
Изменения в API
Для проверки доступности и включения расширения теперь используется входной параметр
CameraSelector. Это должен быть тот жеCameraSelector, который используется для привязки сценария использования.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)Прежде чем использовать библиотеку расширений, необходимо инициализировать расширения.
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 версии 1.0.0-alpha04
4 декабря 2019 г.
Выпущены данные "androidx.camera:camera-view:1.0.0-alpha04". Версия 1.0.0-alpha04 библиотеки camera-view содержит следующие коммиты
Изменения в API
- Класс
PreviewViewпозволяет легко отображать выходные данные из варианта использования Preview в приложении. В макет можно включить
PreviewView:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />PreviewViewпредоставляетPreviewSurfaceProvider, чтобы вы могли легко подключить пример использования предварительной версии.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)В названиях API "
ZoomLevel" теперь называется "ZoomRatio"Для некоторых параметров метода изменена допустимость значения NULL.
Camera-Extensions и Camera-View версии 1.0.0-alpha03
9 октября 2019 г.
Данные "androidx.camera:camera-extensions:1.0.0-alpha03" и "androidx.camera:camera-view:1.0.0-alpha03" опубликованы. Вот коммиты, включенные в camera-extensions:1.0.0-alpha03, а вот коммиты, включенные в camera-view:1.0.0-alpha03.
Новые функции
- Добавлен инициализатор контекста для расширений. Версия расширений изменена на 1.1.0.
Camera-Extensions и Camera-View версии 1.0.0-alpha02
5 сентября 2019 г.
Выход androidx.camera:camera-extensions:1.0.0-alpha02 и androidx.camera:camera-view:1.0.0-alpha02. Вот фиксации, включенные в camera-extensions:1.0.0-alpha02, а вот фиксации, включенные в camera-view:1.0.0-alpha02.
- Добавлены тесты для проверки правильности реализации временных меток в
PreviewImageProcessorImpl. - Исправьте сбой при тестировании
ExtensionTestна Nexus 5 (уровень API 21) и убедитесь, что предварительная версия доступна.
Camera-Extensions и Camera-View версии 1.0.0-alpha01
7 августа 2019 г.
Выход androidx.camera:camera-extensions:1.0.0-alpha01 и androidx.camera:camera-view:1.0.0-alpha01.
Это коммиты, включенные в camera-extensions:1.0.0-alpha01, а это коммиты, включенные в camera-view:1.0.0-alpha01.
- Добавлена новая библиотека для будущих расширений камеры, которая позволит использовать эффекты на поддерживаемых устройствах. Эта библиотека находится в разработке.
- Новый класс Camera View. Эта библиотека находится в разработке.