CameraX

CameraX ist eine Ergänzung zu Jetpack, die es einfacher macht, Kamerafunktionen in Ihre App einzubauen. Die Bibliothek bietet eine Reihe von Kompatibilitätskorrekturen und Workarounds, um die Entwicklererfahrung auf vielen Geräten zu vereinheitlichen.

In dieser Tabelle sind alle Artefakte in der Gruppe androidx.camera aufgeführt.

Artefakt Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
camera-camera2 1.4.2 - 1.5.0-beta02 -
camera-core 1.4.2 - 1.5.0-beta02 -
camera-compose - - 1.5.0-beta02 -
camera-effects 1.4.2 - 1.5.0-beta02 -
camera-extensions 1.4.2 - 1.5.0-beta02 -
camera-feature-combination-query - - 1.5.0-alpha06
camera-feature-combination-query-play-services - - 1.5.0-alpha06
camera-lifecycle 1.4.2 - 1.5.0-beta02 -
camera-mlkit-vision 1.4.2 - 1.5.0-beta02 -
Kameraansicht 1.4.2 - 1.5.0-beta02 -
Kamerasucher - - 1.3.0-beta02 1.4.0-alpha07
camera-video 1.4.2 - 1.5.0-beta02 -
Diese Bibliothek wurde zuletzt am 16. Juli 2025 aktualisiert.

Gerätetests

CameraX wird in unserem Labor auf vielen Geräten getestet. Eine Liste der Geräte, die derzeit im Labor getestet werden, finden Sie hier.

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von CameraX hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.5.0-beta02"
  // The following line is optional, as the core library is included indirectly by camera-camera2
  implementation "androidx.camera:camera-core:${camerax_version}"
  implementation "androidx.camera:camera-camera2:${camerax_version}"
  // If you want to additionally use the CameraX Lifecycle library
  implementation "androidx.camera:camera-lifecycle:${camerax_version}"
  // If you want to additionally use the CameraX VideoCapture library
  implementation "androidx.camera:camera-video:${camerax_version}"
  // If you want to additionally use the CameraX View class
  implementation "androidx.camera:camera-view:${camerax_version}"
  // If you want to additionally add CameraX ML Kit Vision Integration
  implementation "androidx.camera:camera-mlkit-vision:${camerax_version}"
  // If you want to additionally use the CameraX Extensions library
  implementation "androidx.camera:camera-extensions:${camerax_version}"
}

Kotlin

dependencies {
    // CameraX core library using the camera2 implementation
    val camerax_version = "1.5.0-beta02"
    // The following line is optional, as the core library is included indirectly by camera-camera2
    implementation("androidx.camera:camera-core:${camerax_version}")
    implementation("androidx.camera:camera-camera2:${camerax_version}")
    // If you want to additionally use the CameraX Lifecycle library
    implementation("androidx.camera:camera-lifecycle:${camerax_version}")
    // If you want to additionally use the CameraX VideoCapture library
    implementation("androidx.camera:camera-video:${camerax_version}")
    // If you want to additionally use the CameraX View class
    implementation("androidx.camera:camera-view:${camerax_version}")
    // If you want to additionally add CameraX ML Kit Vision Integration
    implementation("androidx.camera:camera-mlkit-vision:${camerax_version}")
    // If you want to additionally use the CameraX Extensions library
    implementation("androidx.camera:camera-extensions:${camerax_version}")
}

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Camera Viewfinder Compose Version 1.0

Version 1.0.0-alpha02

12. Juni 2024

androidx.camera:camera-viewfinder-compose:1.0.0-alpha02 wird veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

Version 1.0.0-alpha01

14. Mai 2024

androidx.camera:camera-viewfinder-compose:1.0.0-alpha01 wird veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Neue Bibliothek. Diese Bibliothek enthält eine Compose-native Viewfinder-Composable-Funktion, die mit CameraX und Camera2 verwendet werden kann. Die zusammensetzbare Viewfinder-Funktion unterstützt verschiedene Seitenverhältnisse und die Verarbeitung von Touch-Ereignissen.

Kamerasucher Version 1.4

Version 1.4.0-alpha07

12. Juni 2024

androidx.camera:camera-viewfinder:1.4.0-alpha07 und androidx.camera:camera-viewfinder-core:1.4.0-alpha07 werden veröffentlicht. Version 1.4.0-alpha07 enthält diese Commits.

Version 1.4.0-alpha06

14. Mai 2024

androidx.camera:camera-viewfinder:1.4.0-alpha06 und androidx.camera:camera-viewfinder-core:1.4.0-alpha06 werden veröffentlicht. Version 1.4.0-alpha06 enthält diese Commits.

API-Änderungen

  • Die Enums von ViewfinderImplementationMode werden umbenannt, um die zugrunde liegenden Implementierungen besser widerzuspiegeln. Außerdem werden feste Konstanten für TransformationInfo.sourceRotation hinzugefügt. (Ic6149)
  • ZoomGestureDetector.ZoomEvent wurde hinzugefügt, um die Status einer Zoom-Geste zu kapseln. (I84cdf)

Kameraversion 1.5

Version 1.5.0-beta02

16. Juli 2025

androidx.camera:camera-*:1.5.0-beta02 wird veröffentlicht. Version 1.5.0-beta02 enthält diese Commits.

API-Änderungen

  • Es wurden neue APIs hinzugefügt, mit denen Gruppen von hochwertigen Funktionen intuitiver und genauer festgelegt oder abgefragt werden können, da diese Funktionen möglicherweise nicht als Kombination auf allen Geräten unterstützt werden. SessionConfig enthält jetzt neue APIs, mit denen eine Gruppe von Funktionen als erforderlich oder bevorzugt gekennzeichnet werden kann. Mit der CameraInfo.isFeatureGroupSupported API lässt sich ermitteln, ob eine Funktionsgruppe unterstützt wird, bevor eine SessionConfig gebunden wird. Mit SessionConfig kann auch ein Listener festgelegt werden, um zu erfahren, welche Funktionen schließlich ausgewählt werden, wenn eine Sitzungskonfiguration gebunden ist. (Ie4d60)
  • Die neuen APIs SessoinConfig.Builder.setFrameRateRange(Range<Integer>) und CameraInfo.getSupportedFrameRateRanges(SessionConfig) ermöglichen es Entwicklern, garantierte unterstützte Framerates abzufragen, die durch ein bestimmtes SessionConfig eingeschränkt werden, und die Framerate dann auf SessionConfig anzuwenden. (Ieacf7)
  • Die neue SessionConfig API wurde eingeführt. Sie bietet eine bessere Abstraktion für die Konfiguration von Anwendungsfällen, Sitzungsparametern, CameraEffect, ViewPort usw. Wenn Sie ein SessionConfig an einen LifecycleOwner binden, wird die Kamerasitzung geöffnet, mit den angegebenen Anwendungsfällen und Sitzungsparametern konfiguriert und das angegebene CameraEffect und ViewPort angewendet. Wenn Sie ein neues SessionConfig auf dasselbe LifecycleOwner aktualisieren, können Sie einfach ein neues Sessionconfig binden, ohne zuerst „unbind“ oder unbindAll aufzurufen. (Iedfc3)
  • Es wurden neue APIs zum Aufnehmen von Videos mit hoher Geschwindigkeit/in Zeitlupe hinzugefügt. Weitere Informationen finden Sie in der HighSpeedVideoSessionConfig API. (Ia16f3)

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem die ImageCaptureCapabilities#getSupportedOutputFormats()-API auf einigen Geräten, die keine RAW-Funktion haben, RAW-Formate als unterstützt gemeldet hat. (Ibcadb)
  • Das Speicherleck wurde behoben, das auftritt, wenn PreviewView verwendet wird, CameraEffect aktiviert ist oder 4 Bindungsanwendungsfälle(StreamSharing) verwendet werden (I87468).
  • Es wurde ein Fehler behoben, bei dem die Videoaufzeichnung durch AssertionError abgestürzt ist: Ungültiger interner Audiostatus: IDLING. (I38d4b, b/414259796)
  • Das Problem wurde behoben, dass die Vorschau in PreviewView gestreckt oder seitlich angezeigt wurde, wenn die App auf einem externen Display ausgeführt wurde und sich das Gerät im Querformat befand (Ia917a).
  • Das Problem, dass die Einstellungen für die Vorschau-Stabilisierung nicht richtig angewendet werden, wenn der Kamerastream zwischen Vorschau und VideoCapture geteilt wird, wurde behoben.(I5430e)
  • CameraXViewfinder verarbeitet jetzt den Oberflächenersatz im zugrunde liegenden Viewfinder korrekt. Dies umfasst Szenarien wie das Verschieben eines EXTERNAL-Suchers auf API-Level 28 oder niedriger vom Bildschirm oder wenn ein CameraXViewfinder (mit einem beliebigen ImplementationMode) Teil von moveableContentOf() ist. Wenn die zugrunde liegende ViewfinderSurfaceSession nicht aktiv gehalten werden kann, wird durch die CameraXViewfinder die aktuelle CameraX-SurfaceRequest ungültig gemacht, sodass CameraX die neue Surface verwenden kann. (I79432)
  • Es wurde ein Problem unter Android 10/11 behoben, bei dem das EXTERNAL CameraXViewfinder aufgrund von Transformationsvorgängen (z. B. Skalieren oder Übersetzen), die zu früh angewendet wurden, gestreckt oder falsch dargestellt werden konnte. Das System wartet nun, bis die Oberfläche erstellt wurde, bevor diese Transformationen in der Layoutphase angewendet werden. So wird eine korrekte Ausgabe gewährleistet. (Icc77c)
  • Die zusammensetzbare Funktion CameraXViewfinder funktioniert jetzt korrekt mit Pager von Compose. Durch diese Änderung wird sichergestellt, dass das Composable durch die Implementierung des onReset-Rückrufs von AndroidView erfolgreich zurückgesetzt werden kann. Dabei werden sowohl EMBEDDED- als auch EXTERNAL-Implementierungen unterstützt. (I0d9be)
  • Ein Problem mit dem Lifecycle-Owner wurde behoben, das auftrat, wenn Anwendungsfälle von einem Lifecycle-Owner getrennt wurden, ohne den Kameraanbieter zu schließen.

Version 1.5.0-beta01

7. Mai 2025

androidx.camera:camera-*:1.5.0-beta01 wird veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.

API-Änderungen

  • Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich (Idb6b5).
  • ContentScale und „Ausrichtung“ können jetzt im Sucher verwendet werden, um die angezeigte Oberfläche in ihrem Container zu skalieren und zu platzieren. Das funktioniert ähnlich wie bei androidx.compose.foundation.Image. (Ibcea3)
  • TransformationInfo hat jetzt Standardwerte für alle Argumente. So können Viewfinder ohne TransformationInfo erstellt werden. In diesem Fall wird standardmäßig eine Quellrotation von 0, keine Quellspiegelung und kein Zuschneidebereich verwendet. (I2b1b2)
  • LifecycleCameraProvider wurde hinzugefügt. Dies ist ein Kameraanbieter, der mit verschiedenen Konfigurationen für Funktionen wie den Zugriff auf die Kamera eines virtuellen Geräts durch Konfiguration mit einem benutzerdefinierten Kontext instanziiert werden kann. (Ia2992)

Fehlerkorrekturen

  • Ein Problem mit dem Einfrieren der Vorschau bei Verwendung von ImageAnalysis mit einem anderen Stream, der TEMPLATE_RECORD auf dem Samsung-Gerät SM-E556B verwendet, wurde behoben. (Ic0e62, b/409478042)
  • Das Problem, dass die Vorschau beim Verwenden von ImageAnalysis mit einem anderen Stream, der TEMPLATE_RECORD verwendet, auf dem Samsung-Gerät SM-M556B einfriert, wurde behoben. (Ic1a6a, b/395822788)
  • Das Problem mit dem Nachtmodus von Erweiterungen AssertError auf Pixel-Geräten mit Android 15 bei Zoomvorgängen wurde behoben. (I27a5d, b/401460276)
  • Das Problem mit falschen Koordinaten für den Begrenzungsrahmen des ML Kit Analyzer bei Verwendung von CameraController wurde behoben. (Iae91b, b/409808510)

Version 1.5.0-alpha06

26. Februar 2025

androidx.camera:camera-*:1.5.0-alpha06 wird veröffentlicht. Version 1.5.0-alpha06 enthält diese Commits.

API-Änderungen

  • CameraInfo.getTorchStrengthLevel, CameraInfo.getMaxTorchStrengthLevel und CameraControl.setTorchStrengthLevel wurden hinzugefügt, um die Helligkeit der Taschenlampe anzupassen (I00878)
  • Eine neue API CameraController#setTapToFocusAutoCancelDuration wurde hinzugefügt, damit Nutzer das Verhalten bei der automatischen Absage für PreviewView-Ereignisse (Tippen zum Fokussieren) steuern können. Standardmäßig werden die Fokusereignisse von CameraX nach 5 Sekunden abgebrochen (d. h. der Kamerafokus wird zurückgesetzt). Mit dieser API kann diese Dauer geändert oder die automatische Abbrechen ganz deaktiviert werden. (Icf59a)
  • FLASH_STATE_READY wurde in NOT_FIRED umbenannt und die anderen FlashState-Konstantennamen wurden vereinfacht, um die Lesbarkeit zu verbessern. (I8771d)
  • Die Low Light Boost API wurde verfügbar gemacht. Geräte mit Android 15 oder höher können die Funktion „Low-Light-Boost“ unterstützen. Mit dieser Funktion kann die Helligkeit der Vorschau-, Video- oder Bildanalysestreams bei schlechten Lichtverhältnissen automatisch angepasst werden. Anwendungen können die neue API für folgende Zwecke verwenden: 1. Verwenden Sie CameraInfo#isLowLightBoostSupported, um die Verfügbarkeit der Funktion zu prüfen. 2. Verwenden Sie CameraControl#enableLowLightBoostAsync, um den Modus zu aktivieren, wenn die Geräte ihn unterstützen. 3. Verwenden Sie CameraInfo#getLowLightBoostState, um den Status der Funktion „Bei wenig Licht verstärken“ zu überwachen. (I937ed)
  • Fügen Sie Kompatibilitätsklassen hinzu, um schnellere Abfragen ohne Camera2 in „camera-feature-combination-query“ zu ermöglichen. (Ie97ee)
  • Für CameraController-Tap-to-Focus-Ereignisse wird mit der neuen API getTapToFocusInfoState() jetzt auch die entsprechende Tippposition verfügbar gemacht, indem ein LiveData der Klasse TapToFocusInfo zurückgegeben wird. Die bisherige API LiveData<Integer>, die getTapToFocusState() zurückgibt, wird zugunsten der neuen API eingestellt. (I238d2)

Fehlerkorrekturen

  • Das Problem, dass die Vorschau-Stabilisierung nicht angewendet wurde, wenn sie mit Erweiterungen aktiviert war, wurde behoben. (I24ad7)
  • Das Fokusstatusereignis CameraController wird nicht auf TAP_TO_FOCUS_NOT_STARTED zurückgesetzt, wenn CameraX ein Fokusereignis automatisch abbricht, was standardmäßig nach 5 Sekunden geschieht. (I31954)
  • Ein Problem wurde behoben, durch das die Vorschau bei Verwendung von Zero Shutter Lag (ZSL) nach mehreren Aufnahmen aufgrund von nicht freigegebenen Bildressourcen eingefroren ist. (Ic3c2a)
  • Es wurden Probleme behoben, bei denen UHD-Videos auf einigen Geräten einen roten Farbstich aufwiesen, wenn die Pipeline OpenGL umfasste. (Idcedc)

Version 1.5.0-alpha05

15. Januar 2025

androidx.camera:camera-*:1.5.0-alpha05 wird veröffentlicht. Version 1.5.0-alpha05 enthält diese Commits.

API-Änderungen

  • Fügen Sie VideoCapture.getSelectedQuality() hinzu, um die ausgewählte Qualität basierend auf QualitySelector zu ermitteln. (I70508, b/204288986)
  • Wenn eine Aufnahme mit der ImageCapture.OnImageCapturedCallback API aufgerufen wird, kann mit dem ImageInfo im zurückgegebenen ImageProxy jetzt ermittelt werden, ob der Blitz über die neue ImageInfo.getFlashState() API ausgelöst wurde. (Id2c61, b/380527406)
  • Unterstützung für das OUTPUT_IMAGE_FORMAT_NV21-Ausgabeformat für ImageAnalysis hinzugefügt. (I484ab)
  • Entfernen Sie die experimentelle Annotation des featurecombinationquery-Artefakts (I4427f).
  • Passen Sie den für CameraControl zulässigen Zoombereich anhand von Erweiterungsmerkmalen an, wenn ein Erweiterungsmodus aktiviert ist. (I85af1)

Fehlerkorrekturen

  • compileSdk wurde auf 35 aktualisiert, um die API für Android 15 zu verwenden. Apps, die CameraX-Bibliotheken verwenden, müssen auch ihre compileSdk-Konfigurationseinstellung aktualisieren. (Ic80cd)
  • In dieser Bibliothek werden jetzt JSpecify-Nullable-Annotationen verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen: -Xjspecify-annotations=strict (dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers). (Idc6c6, b/326456246)

Version 1.5.0-alpha04

11. Dezember 2024

androidx.camera:camera-*:1.5.0-alpha04 wird veröffentlicht. Version 1.5.0-alpha04 enthält diese Commits.

API-Änderungen

  • ImageCapture.Builder#setOutputFormat und ImageCaptureCapabilities#getSupportedOutputFormats als stabile APIs verfügbar gemacht (Ieb04a)
  • Fügen Sie VideoCapture.getResolutionInfo() hinzu, um die Auflösungsinformationen zu erhalten, wenn ein VideoCapture an einen Lebenszyklus gebunden ist. (Icb478)
  • PreviewView.getScreenFlash und PreviewView.setScreenFlashOverlayColor als stabile APIs verfügbar gemacht. (I74fee)

Fehlerkorrekturen

  • Ein Problem mit fehlgeschlagenen Aufnahmen auf dem Vivo 1610-Gerät beim Fotografieren mit Blitz im Dunkeln wurde behoben. (I366f4)
  • Ein Problem wurde behoben, bei dem die Taschenlampe nach der Aufnahme eines Bildes auf dem Redmi Note 6 Pro unerwartet ausgeschaltet wurde. (I2e0e8, b/377144569)
  • Ein Problem auf Pixel-Geräten mit Android 15 wurde behoben, bei dem im Nachtmodus in Erweiterungen keine Fotos aufgenommen wurden, bis die Kamera auf ein Objekt in der Nähe fokussiert hatte. (I228d4)
  • Das Problem, dass die Aufnahme von Standbildern nicht funktioniert, wenn Erweiterungen aktiviert sind und VideoCapture gebunden ist, wurde behoben. (I5c745)
  • Wenn die Funktion aktiviert ist, wird die Aufnahme von Standbildern für Erweiterungen unterstützt, sofern das Gerät dies unterstützt.UltraHDR (I48300)
  • Ein Problem mit dem Blitz-Timing bei der Blitzaufnahme mit CameraEffect für Bildaufnahmen auf TCL-Geräten wurde behoben. (I7698c)

Version 1.5.0-alpha03

30. Oktober 2024

androidx.camera:camera-*:1.5.0-alpha03 wird veröffentlicht. Version 1.5.0-alpha03 enthält diese Commits.

API-Änderungen

  • Ausgabeformat-APIs für RAW und RAW + JPEG ImageCapture hinzufügen. Die Gerätefunktionsprüfung wird in ImageCaptureCapabilities#getSupportedOutputFormats bereitgestellt. Mit OUTPUT_FORMAT_RAW wird ein RAW-Bild im Adobe-DNG-Format aufgenommen und mit OUTPUT_FORMAT_RAW_JPEG werden gleichzeitig RAW- und JPEG-Bilder aufgenommen. Die neue ImageCapture#takePicture API wird für die gleichzeitige Aufnahme von Bildern verwendet. Sie muss zwei OutputFileOptions bereitstellen, die erste für das RAW-Bild und die zweite für das JPEG-Bild. (Ib0f3d)

Fehlerkorrekturen

  • Das Problem mit der Unterbelichtung von Vorschau und Video auf TCL-Geräten bei aktivierter Funktion VideoCapture wurde behoben. (Id7a64)
  • Das Problem wurde behoben, dass beim Aufrufen von startFocusMetering mit PreviewView.getMeteringPointFactory nicht die richtigen Sensorkoordinaten abgerufen werden, wenn ein Effekt aktiviert ist oder vier Anwendungsfälle gebunden sind (Stream-Sharing). (I916c5, b/345993685)
  • Das VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE-Ereignis wird jetzt auch dann ausgelöst, wenn ein Video aufgenommen wird und nicht genügend Speicherplatz vorhanden ist. (I35779, b/356399842)

Version 1.5.0-alpha02

2. Oktober 2024

androidx.camera:camera-*:1.5.0-alpha02 wird veröffentlicht. Version 1.5.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Neue APIs zum Abfragen von Kamerafunktionen, die vom Gerät unterstützt werden. So kann beispielsweise geprüft werden, ob HDR und 60 FPS gleichzeitig aktiviert werden können. Sie enthält zwei Artefakte: „camera-feature-combination-query“ und „camera-feature-combination-query-play-services“. Dies ist eine kompatible Version der CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported API von camera2 mit zusätzlichen Daten, die von den Google Play-Diensten bereitgestellt werden.

Fehlerkorrekturen

  • Ein Problem mit der Ziel-Frame-Rate von Preview/VideoCapture auf Geräten mit LEGACY-Level wurde behoben. Die über die setTargetFrameRate- oder Camera2Interop-API festgelegte Ziel-Frame-Rate wurde immer mit dem vom AeFpsRangeLegacyQuirk bereitgestellten Wert überschrieben. Mit diesem Fix wird der über die API setTargetFrameRate oder Camera2Interop festgelegte Wert in der CameraX-Bibliothek berücksichtigt. (Ie2d32)
  • Für die Aufnahme von Bildern mit CameraEffect wurden Funktionen für Blitz/Taschenlampe/3A hinzugefügt. Die mit CameraEffect aufgenommenen Bilder sollten jetzt die gleichen Vor- und Nachbearbeitungsprozesse (z.B. Blitzauslösung, 3A-Konvergenz usw., falls zutreffend) wie Bilder ohne CameraEffect durchlaufen. (I5ff30)
  • Problematische Ausgabegrößen für ImageAnalysis auf dem Samsung-Gerät SM-A057G ausgeschlossen. Wenn ImageAnalysis eine Auflösung von mindestens 1920 × 1440 verwendet, kann es zu Problemen mit der schwarzen Vorschau kommen. ExcludedSupportedSizesQuirk auf dem Gerät SM-A057G angewendet, um das Problem zu vermeiden. (I63dfe, b/365877975)
  • Das Problem mit der Preview/VideoCapture-Ziel-Framerate wurde behoben, wenn der Streamfreigabemechanismus intern aktiviert ist, um einen Stream für Preview und VideoCapture freizugeben. (I4fdac)
  • Der Workaround zur Behebung des Problems mit falschen JPEG-Bildmetadaten auf Samsung S10e- und S10+-Geräten wurde aktiviert. Mit dem Fix kann CameraX das JPEG-Bild erfolgreich speichern oder korrekte Bitmap-Objekte zurückgeben, wenn die Funktion ImageProxy.toBitmap() auf diesen Geräten aufgerufen wird und das Problem mit den falschen JPEG-Bildmetadaten auftritt. (Iae493, b/356428987)
  • Deaktivierte Erweiterungen für die Rückkamera des Samsung A52s mit der ID 0, da bei der Aufnahme von HDR-Bildern native Abstürze auftreten können und die Konfiguration von Aufnahmesitzungen für die Modi BOKEH oder FACE_RETOUCH fehlschlagen kann. (I03ec9, b/364152642)
  • Das VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE-Ereignis wird jetzt auch dann ausgelöst, wenn ein Video aufgenommen wird und nicht genügend Speicherplatz vorhanden ist. (Ia5b4f, b/356399842)
  • Ein Problem wurde behoben, durch das der zweite Versuch einer Videoaufzeichnung auf dem Oppo A5 (CPH1931) fehlschlug. (I181d6)

Version 1.5.0-alpha01

4. September 2024

androidx.camera:camera-*:1.5.0-alpha01 wird veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Für den CameraX Viewfinder Compose Adapter wird ein neues Artefakt, camera-compose, veröffentlicht, das einen Preview-Stream von einem CameraX-SurfaceRequest aus camera-core anzeigt. (I8666e)
  • Es wurde eine neue zusammensetzbare Funktion, CameraXViewfinder, hinzugefügt, die als idiomatische zusammensetzbare Funktion fungiert, die CameraX-SurfaceRequests für die zusammensetzbare Funktion Viewfinder anpasst. (I4770f)

API-Änderungen

  • API zum Festlegen von Kompositionseinstellungen für die gleichzeitige Videoaufnahme mit zwei Kameras bereitstellen Zu den Einstellungen gehören der Alphawert für das Blending, der Offset in den x- und y-Koordinaten sowie der Maßstab für die Breite und Höhe des Anzeigefensters für den Kamerabildrahmen. Der Versatz, die Breite und die Höhe werden in normalisierten Gerätekoordinaten angegeben. (Ia2b8a)
  • CameraProvider.getCameraInfo als offizielle API verfügbar gemacht. (I901cd)
  • Die API PendingRecording.withAudioEnabled(boolean initialMuted) wurde hinzugefügt, um den anfänglichen Stummschaltungsstatus zu steuern. (I635c3, b/354829267)

Fehlerkorrekturen

  • Der Absturz, der auftrat, wenn bindToLifecycle mit einem zerstörten LifecycleOwner aufgerufen wurde, wurde behoben. (I6e6d8)
  • Das Problem, dass die Vorschau auf dem Display der Frontkamera schwarz war, wenn das Gerät mit VideoCapture auf dem Motorola Edge 20 Fusion verbunden war, wurde behoben. (I1fe88)
  • Die Konfiguration für die Erkennung von Zoom-Gesten in PreviewView wurde optimiert, um die Reaktionsfähigkeit zu verbessern. (I04ffc)

Kameraversion 1.4

Version 1.4.2

26. März 2025

androidx.camera:camera-*:1.4.2 wird veröffentlicht. Version 1.4.2 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem mit dem Einfrieren der Vorschau bei Verwendung von ImageAnalysis mit einem anderen Stream, der TEMPLATE_RECORD auf dem Samsung Galaxy M55 verwendet, wurde behoben. (Ic1a6a, b/395822788)

Version 1.4.1

11. Dezember 2024

androidx.camera:camera-*:1.4.1 wird veröffentlicht. Version 1.4.1 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem auf Pixel-Geräten mit Android 15 wurde behoben, bei dem im Nachtmodus in Erweiterungen keine Fotos aufgenommen wurden, bis die Kamera auf ein Objekt in der Nähe fokussiert hatte. (I228d4)
  • Das Problem mit der Fehlfunktion von ImageCapture#takePicture wurde behoben, wenn Erweiterungen aktiviert und VideoCapture gebunden ist. (I5c745)

Version 1.4.0

30. Oktober 2024

androidx.camera:camera-*:1.4.0 wird veröffentlicht. Version 1.4.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.3.0

CameraX 1.4.0 bietet viele spannende Updates. Übersicht:

Hauptfunktion: 10‑Bit-HDR-Video:

  • Mit der Kamera lassen sich ganz einfach beeindruckende HDR-Fotos und ‑Videos aufnehmen.
  • Unterstützt HLG- und 10‑Bit-HEVC-Codierung.
  • 10‑Bit-HDR-Vorschau und Abfrage der Gerätefunktionen
  • Funktioniert mit UltraHDR-Bildern und HDR-Videos auf einer wachsenden Anzahl von Geräten.

Weitere coole Funktionen:

  • Kotlin-Erweiterungen: Die suspend-Funktionen takePicture und awaitInstance wurden hinzugefügt.
  • Echtzeiteffekte: Sie können Effekte wie Wasserzeichen und Objekthervorhebung anwenden.
  • CameraController API: Neue Steuerelemente für die Videokonfiguration.
  • Vorschau-Stabilisierung: Gerätefunktion abfragen und Stabilisierung aktivieren.
  • Verbesserungen bei der Videoaufnahme: Sie haben mehr Kontrolle über die Qualität und können auf höhere Auflösungen zugreifen.
  • Integration von CameraX-Erweiterungen: Nahtlose Integration mit VideoCapture und neuen ImageCapture-Funktionen.
  • Shutter Sound API: Regionale Anforderungen für den Auslöseton lassen sich ganz einfach prüfen.
  • Displayblitz: Verbesserte Fotos bei wenig Licht mit der Frontkamera.
  • Camera Extensions Metadata APIs: Unterstützende APIs zum Anpassen der Stärke von Erweiterungen und zum Abrufen von Benachrichtigungen über den aktuellen Erweiterungsmodus in ExtensionMode#AUTO. Weitere Fehlerkorrekturen finden Sie in unseren Beta- und RC-Ankündigungen.

Version 1.4.0-rc04

16. Oktober 2024

androidx.camera:camera-*:1.4.0-rc04 wird veröffentlicht. Version 1.4.0-rc04 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem wurde behoben, dass beim Aufrufen von startFocusMetering mit PreviewView.getMeteringPointFactory nicht die richtigen Sensorkoordinaten abgerufen werden, wenn ein Effekt aktiviert ist oder vier Anwendungsfälle gebunden sind (Stream-Sharing). (I916c5, b/345993685)

Version 1.4.0-rc03

2. Oktober 2024

androidx.camera:camera-*:1.4.0-rc03 wird veröffentlicht. Version 1.4.0-rc03 enthält diese Commits.

Fehlerkorrekturen

  • Für die Aufnahme von Bildern mit CameraEffect wurden Funktionen für Blitz/Taschenlampe/3A hinzugefügt. Die mit CameraEffect aufgenommenen Bilder sollten jetzt die gleichen Vor- und Nachbearbeitungsprozesse (z.B. Blitzauslösung, 3A-Konvergenz usw., falls zutreffend) wie Bilder ohne CameraEffect durchlaufen. (I5ff30)
  • Die Pinch-to-Zoom-Funktion in PreviewView (I04ffc) wurde optimiert.
  • Ultra HDR wird nicht mehr an die 10‑Bit-Ausgabe gekoppelt, da Geräte nicht mehr über eine 10‑Bit-Ausgabe verfügen müssen, um Ultra HDR zu unterstützen. (I96ff2, I0c3b3)

Version 1.4.0-rc02

18. September 2024

androidx.camera:camera-*:1.4.0-rc02 wird veröffentlicht. Version 1.4.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Der Absturz, der auftrat, wenn bindToLifecycle mit einem zerstörten LifecycleOwner aufgerufen wurde, wurde behoben. (I6e6d8)
  • Es wurde eine Sichtbarkeitsanimation in ScreenFlashView für ScreenFlash#apply hinzugefügt. Außerdem wurden Fehler behoben, die dadurch entstanden sind, dass die Helligkeitsänderung nach einiger Zeit asynchron abgeschlossen wurde. (I37cdb)
  • Die Zoomfunktion wurde verbessert, indem auf unterstützten Geräten die Zoomeinstellungen im Framework überschrieben werden.

Version 1.4.0-rc01

7. August 2024

androidx.camera:camera-*:1.4.0-rc01 wird veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.

Neue Funktionen

  • Die experimentelle CameraInfo.getCameraInfo wurde hinzugefügt, um spezifische Kamerainformationen bereitzustellen, ohne Anwendungsfälle an die Kamera binden zu müssen. (I550d1)

API-Änderungen

  • Die APIs PreviewView.getScreenFlash und PreviewView.setScreenFlashOverlayColor wurden für Fälle hinzugefügt, in denen ScreenFlashView nicht explizit hinzugefügt wird. (I43945)

Fehlerkorrekturen

  • Probleme mit Belichtung und Farbstich behoben, wenn Bilder bei schwachem Licht mit aktiviertem Blitz aufgenommen wurden und der VideoCapture-Anwendungsfall gebunden war. (Ic9814)
  • Das Problem wurde behoben, dass beim Unterbrechen einer takePicture-Anfrage mit aktivierten Erweiterungen möglicherweise kein Ergebnis zurückgegeben wurde und die nächste takePicture-Anfrage möglicherweise nicht mehr funktionierte. (Iae78f)
  • Ein Speicherleckproblem, das auftrat, wenn Erweiterungen aktiviert waren, wurde behoben. (Iab276)
  • Es wurde ein Fehler behoben, der dazu führte, dass CameraX-Erweiterungen auf Geräten wie dem Pixel 7/8 und der Samsung Galaxy S24-Serie nicht richtig funktionierten. Das Problem, das auf ein Camera2OutputConfigImpl-Konvertierungsproblem im Release-Modus zurückzuführen ist, trat nach dem Upgrade von AGP auf Version 8.5.1 und der Aktivierung der Minimierung auf. (I99598, b/354824993)

Version 1.4.0-beta02

12. Juni 2024

androidx.camera:camera-*:1.4.0-beta02 wird veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.

API-Änderungen

  • Fügen Sie wie bei VideoCapture setMirrorMode für den Anwendungsfall „Vorschau“ hinzu. Der Spiegelmodus wird für den Vorschaustream über OutputConfiguration.setMirrorMode ab API 33 unterstützt. Bei älteren APIs ist er inaktiv. (I821f4)

Fehlerkorrekturen

  • Das Problem wurde behoben, dass Apps auf dem Samsung Tab A8 keine Fotos aufnehmen konnten, wenn ImageCapture die Kombination Preview + VideoCapture + ImageCapture UseCase mit der Auflösung 1920 × 1080 auswählte. (I5a463, b/336925549)
  • Es wurde ein Fehler behoben, durch den die kontinuierliche Aufzeichnung nach dem Wechsel der Kamera möglicherweise nicht fortgesetzt wurde. (Icb0a1)

Version 1.4.0-beta01

14. Mai 2024

androidx.camera:camera-*:1.4.0-beta01 wird veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.

API-Änderungen

  • ZoomGestureDetector.ZoomEvent wurde hinzugefügt, um die Status einer Zoom-Geste zu kapseln. (I84cdf)

Fehlerkorrekturen

  • Ein Fehler wurde behoben, durch den bei der Aufnahme und beim Tippen zum Fokussieren nicht die Werte für die Wiederholungsanfrage für FPS/Stabilisierungsmodus verwendet wurden. Dadurch wurde die Aufnahmesitzung möglicherweise neu erstellt, was auf einigen Geräten zu Latenzproblemen oder einem Einfrieren der Vorschau führte. (I7dc0b)
  • Ein Fehler wurde behoben, bei dem auf einigen Geräten keine hohen Auflösungen ausgewählt werden konnten, wenn CameraEffect aktiviert war. z. B. 4.000 × 3.000 auf dem Samsung A32 5G. (Ie3ed3, b/337336152)
  • Ein Absturz beim Aufnehmen von Fotos mit der Vorschau wurde behoben, wenn ImageCapture und VideoCapture(UHD) auf dem Pixel 4XL mit API29 gebunden sind. (I5b288)
  • Unterstützung virtueller Geräte: Der in ProcessCameraProvider übergebene Kontext behält die Geräte-ID bei, um die Funktionalität in einer Umgebung mit virtuellen Geräten zu gewährleisten. (I5ba48)

Version 1.4.0-alpha05

17. April 2024

androidx.camera:camera-*:1.4.0-alpha05 wird veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.

Neue Funktionen

  • ProcessCameraProvider wurde in eine Kotlin-Implementierung konvertiert. (I46d4f)
  • Es wurden ImageCapture.takePicture-Suspend-Funktionen hinzugefügt, damit sie auf Kotlin-idiomatische Weise aufgerufen werden können. (I920be)

API-Änderungen

  • Fügen Sie ImageCapture APIs für das Ausgabeformat hinzu und fügen Sie getSupportedOutputFormats-Methode zu ImageCaptureCapabilities hinzu, um die Gerätefunktionen abzufragen. Der Standardwert für das Ausgabeformat ist OUTPUT_FORMAT_JPEG. Damit werden SDR-Bilder im JPEG-Format aufgenommen. Wenn das Gerät Ultra HDR unterstützt und das Ausgabeformat auf OUTPUT_FORMAT_JPEG_ULTRA_HDR festgelegt ist, nimmt CameraX Ultra HDR-komprimierte Bilder im JPEG/R-Bildformat auf. Das Format ist abwärtskompatibel mit dem SDR‑JPEG‑Format und unterstützt das HDR‑Rendering von Inhalten. Das bedeutet, dass Bilder in älteren Apps oder auf älteren Geräten nahtlos als normales JPEG angezeigt werden. In Apps und auf Geräten, die aktualisiert wurden, um das Format vollständig zu unterstützen, werden Bilder als HDR angezeigt. (I5de50)
  • Fügen Sie PhysicalCameraInfo in CameraInfo hinzu, um Informationen zur physischen Kamera abzufragen, und fügen Sie Setter/Getter für die ID der physischen Kamera in CameraSelector hinzu (Ic5b90).
  • Ersetzen Sie CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED durch ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. Der Wert der Konstanten bleibt gleich. Damit werden alle Konstanten an einem Ort zusammengefasst. (I890bb)
  • Mit der neuen RetryPolicy API können Entwickler das Wiederholungsverhalten für die CameraX-Initialisierung anpassen. (I36dd2)
  • Erstellung von ImageCaptureLatencyEstimate-Objekten aktivieren, um die Testbarkeit zu verbessern (Iaba99)
  • Fügen Sie eine ImageAnalysis#COORDINATE_SYSTEM_SENSOR hinzu. Wenn diese Option verwendet wird, gibt MlKitAnalyzer Koordinaten im Koordinatensystem des Kamerasensors zurück. (I3ec61)
  • Die API für Metadaten von Erweiterungen wurde offengelegt. Mit den neuen CameraExtensionsInfo- und CameraExtensionsControl-Schnittstellen können Anwendungen die Einstellungen für die Erweiterungsstärke überwachen und anpassen. Anwendungen können die CameraExtensionsInfo- oder CameraExtensionsControl-Instanz über die neu hinzugefügten Methoden ExtensionsManager#getCameraExtensionsInfo() oder ExtensionsManager#getCameraExtensionsControl() abrufen. (I28e1a)
  • ProcessCameraProvider.awaitInstance wurde hinzugefügt. Dies ist eine suspendierende Version von ProcessCameraProvider.getInstance (Ib22b9).
  • Fügen Sie eine PreviewView#getSensorToViewTransform() API hinzu. Die Matrix stellt die Transformation von Koordinaten des Kamerasensors in die Koordinaten von PreviewView dar. Damit lassen sich Koordinaten von einem UseCase in ein anderes transformieren. Beispiel: Die Koordinaten der erkannten Objekte in ImageAnalysis werden in das PreviewView-Overlay transformiert. (I947ab)
  • Die camera-viewfinder-core API ist jetzt allgemeiner und kann von camera-viewfinder und camera-viewfinder-compose verwendet werden. (I1e295)
  • Fügen Sie die Funktion getSurface zu ViewfinderSurfaceRequest hinzu. (I781a0)
  • Verwende camera-viewfinder-core in camera-viewfinder und stelle die Unterstützung für ViewfinderSurfaceRequest und CameraViewfinder ein. (I6198c)
  • ZoomGestureDetector wurde hinzugefügt, um Skalierungsgesten zu interpretieren, die speziell für das Zoomen durch Auf- und Zuziehen konfiguriert sind. (Ifafbf)

Fehlerkorrekturen

  • Ein Problem bei der Auswahl der Auflösung für ImageAnalysis wurde behoben, das mit der Standardeinstellung für die Zielauflösung des Analysetools zusammenhing: Die Zielauflösung wurde fälschlicherweise auf 640 × 480 beibehalten, auch wenn in den Anwendungen eine andere Standardeinstellung für die Auflösung des Analysetools festgelegt war. Wenn dieses Problem in Anwendungen auftritt (1.3.0 – 1.3.2) und kein Upgrade auf die neueren Versionen mit der Lösung möglich ist, kann das Problem umgangen werden, indem direkt ein ResolutionSelector mit der bevorzugten Auflösung und ein passendes AspectRatioStrategy für das ImageAnalysis UseCase festgelegt wird. (I81f72, b/330091012)
  • Ein Problem wurde behoben, bei dem die Ausführung einer in die Warteschlange gestellten takePicture-Anfrage fehlschlagen konnte, wenn die aktuelle Anfrage fehlgeschlagen ist. (Ie0801)
  • Die Prüfung auf ungültige JPEG-Daten wird auf Vivo X60- und X60 Pro-Geräte angewendet. Dadurch kann das Problem mit ungewöhnlich großen Bildern auf diesen Geräten behoben werden. (I82247, b/288828159)
  • Das Problem mit falschen JPEG-Bildmetadaten auf Samsung A24-Geräten wurde behoben. Mit dem Fix kann CameraX das JPEG-Bild erfolgreich speichern oder korrekte Bitmap-Objekte zurückgeben, wenn die ImageProxy.toBitmap()-Funktion auf Samsung A24-Geräten aufgerufen wird. (I8d6eb, b/309005680)
  • Die Prüfung auf ungültige JPEG-Daten wird auf alle Samsung-Geräte angewendet, wenn das aufgenommene Bild größer als 10 MB ist. Dadurch kann das Problem mit ungewöhnlich großen Bildern auf Samsung-Geräten behoben werden. (Ic2a65, b/288828159)
  • Die Unterstützung für ImageAnalysis wurde in CameraX Extensions entfernt, da die Implementierungen von Extensions vieler OEMs nicht gut mit ImageAnalysis funktionieren und zu inkonsistenten Problemen führen können. (I2d926)

Version 1.4.0-alpha04

24. Januar 2024

androidx.camera:camera-*:1.4.0-alpha04 wird veröffentlicht. Version 1.4.0-alpha04 enthält diese Commits.

Neue Funktionen

  • Neues Artefakt: camera-effects: Eine Bibliothek zum Anwenden von Echtzeiteffekten auf die CameraX-Ausgabe, einschließlich Preview, VideoCapture und/oder ImageCapture. Dieses Artefakt enthält OpenGL-Implementierungen der CameraEffect API, mit der die Kameraausgabe effizient bearbeitet wird.
  • OverlayEffect: zum Zeichnen von Overlays mit der Canvas API von Android. Dadurch kann die App ein Wasserzeichen anwenden oder erkannte Objekte in Kameraausgaben hervorheben.
  • DynamicRange APIs für den Vorschau-Anwendungsfall: Der dynamische Bereich kann jetzt unabhängig vom Video-Anwendungsfall für den Vorschau-Anwendungsfall festgelegt werden. Dadurch sind HDR-Dynamikbereiche wie HLG10 nur für die Vorschau möglich. In CameraInfo sind auch neue APIs verfügbar, mit denen abgefragt werden kann, welche dynamischen Bereiche von den einzelnen Kameras unterstützt werden.

API-Änderungen

  • ScreenFlashUiCompleter wurde in ScreenFlashListener umbenannt und ScreenFlashUiCompleter#getExpirationTimeMillis wurde in den expirationTimeMillis-Parameter von ScreenFlash#apply verschoben. (I13944)
  • Es wurden neue APIs hinzugefügt, mit denen der Dynamikbereich für den Anwendungsfall „Vorschau“ festgelegt und die von den einzelnen Kameras unterstützten Dynamikbereiche abgefragt werden können. So können HDR-Dynamikbereiche wie HLG10 allein für den Anwendungsfall „Vorschau“ verwendet werden. Es ist nicht mehr erforderlich, gleichzeitig ein VideoCapture zu binden. (If25e3)
  • getMirroring() wurde in isMirroring() umbenannt (I47063)
  • Unterstützung für die Schätzung der Latenz bei der Aufnahme von Standbildern in Echtzeit in CameraX hinzugefügt. Mit Kameraerweiterungen können Anwendungen eine API verwenden, die eine Schätzung der Dauer einer Aufnahme liefert. Bei der Schätzung werden die aktuellen Umgebungsbedingungen und der Kamerastatus berücksichtigt. Außerdem wird die Zeit für die Verarbeitung von Anfragen zur Aufnahme mehrerer Bilder sowie die zusätzliche Zeit für die Codierung verarbeiteter Puffer, falls erforderlich, berücksichtigt. (I05c3a)
  • ScreenFlashUiControl wurde in ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi in ScreenFlash#apply und ScreenFlashUiControl#clearScreenFlashUi in ScreenFlash#clear umbenannt. Außerdem wurde die Methode getScreenFlashUiApplyTimeoutSeconds hinzugefügt, anstatt SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS direkt verfügbar zu machen. (Iccdd0)

Fehlerkorrekturen

  • Es wurde ein Speicherleck behoben, das dazu führte, dass Aktivitäten oder Fragmente nicht freigegeben wurden, wenn Erweiterungen aktiviert waren (I14215).
  • Das Problem wurde behoben, bei dem getZoomRatio fälschlicherweise einen niedrigeren Wert zurückgegeben hat, wenn ein steigendes Zoomverhältnis angewendet wurde. (I4aa0d, b/317543616)
  • Das ImageCapture#ScreenFlash#clear-Ereignis wird sofort aufgerufen, wenn ImageCapture nicht gebunden ist oder die Kamera geschlossen wird. Außerdem werden einige Fehler behoben, bei denen es aufgrund von Aufnahmen in diesen Szenarien nie aufgerufen wird. (If99f9)
  • Der Absturz, der auftritt, wenn der Lebenszyklus beendet wird, bevor die takePicture-Anfrage abgeschlossen ist, wurde behoben (Idf017, b/306202751).
  • Das Problem, dass die Kameravorschau schwarz wurde, wenn Erweiterungen auf einigen Geräten aktiviert waren (I1ffd0), wurde behoben.
  • Die Dauer der Videoaufzeichnung auf Geräten mit dem Snapdragon 778G SoC wurde korrigiert. (If6aa7, b/316057919)

Version 1.4.0-alpha03

13. Dezember 2023

androidx.camera:camera-*:1.4.0-alpha03 wird veröffentlicht. Version 1.4.0-alpha03 enthält diese Commits.

Neue Funktionen

  • CameraInfo.mustPlayShutterSound wurde hinzugefügt, um Informationen dazu zu liefern, ob gemäß regionalen Einschränkungen ein Auslösergeräusch abgespielt werden muss. (Ifda84)
  • OnImageCapturedCallback.onCaptureStarted und OnImageSavedCallback.onCaptureStarted wurden hinzugefügt, um zu benachrichtigen, wenn die Kamera mit der Belichtung eines Frames begonnen hat. Es wird empfohlen, an dieser Stelle den Auslöser-Sound oder die Auslöser-Animation abzuspielen. (Ic49b3)
  • Unterstützung für die Funktion „Bildschirmblitz“ in CameraX für die Aufnahme von Bildern mit der Frontkamera hinzugefügt. CameraX übernimmt die API-Verarbeitung auf Framework-Seite und synchronisiert das Timing nach Bedarf mit UI-Änderungen der Anwendung (z.B. AE-Vorabaufnahme-Trigger nach Änderung der Bildschirmfarbe/Helligkeit der App). Apps müssen ihre UI-seitigen Implementierungen nur in der ScreenFlashUiControl-Schnittstelle hinzufügen, die für CameraX bereitgestellt wird. (I8ae84)
  • Unterstützung für die UI-seitige Implementierung der Funktion „Aufleuchten des Bildschirms bei Benachrichtigungen“ in CameraX hinzugefügt. Apps können eine einfache ImageCapture.ScreenFlashUiControl-Implementierung über PreviewView oder das neu hinzugefügte ScreenFlashView erhalten. Dadurch wird eine einfarbige Overlay-Ansicht hinzugefügt und die Bildschirmhelligkeit bei der Aufnahme von Fotos mit Bildschirmblitz maximiert. (I1810e)

API-Änderungen

  • Unterstützung neuer Extensions-Funktionen(Postview und Fortschritt des Aufnahmeprozesses): Es wurden ImageCapture#getImageCaptureCapabilities()-APIs für Apps hinzugefügt, mit denen die Funktionen des Postview- und des Fortschritts-Callbacks für den Aufnahmeprozess abgefragt werden können. Apps können die Post-View-Funktion mit ImageCapture.Builder#setPostviewEnabled() aktivieren. Die Größe der Postview kann mit ImageCapture.Builder#setPostviewResolutionSelector() ausgewählt werden. Beim Aufrufen von takePicture() können onPostviewBitmapAvailable und onCaptureProcessProgressed in OnImageSavedCallback oder OnImageCapturedCallback implementiert werden, um die Benachrichtigung über den Fortschritt nach der Ansicht zu erhalten, sofern dies unterstützt wird. (I5cd88)
  • APIs zum Berechnen der Koordinatentransformation vom Sensor zum aktuellen Puffer mit einem Flag, das angibt, ob die Oberfläche die Informationen zur Kameraausrichtung enthält. (I59096)
  • Die API zum Abfragen von PreviewCapabitlity in der Vorschauversion UseCase verfügbar machen. (Ie5b6c)
  • Es wurden APIs hinzugefügt, die mehr Qualitäten für VideoCapture unterstützen. Recorder.Builder#setVideoCapabilitiesSource(int) kann mit VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES verwendet werden, um eine Recorder-Instanz zu erstellen, die mehr Qualitäten als VIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE unterstützt. Ein häufiger Anwendungsfall ist, wenn die Anwendung nach Möglichkeit UHD-Videos aufnehmen möchte, die CamcorderProfile des Geräts jedoch keine UHD-Einstellungen enthält, obwohl der Codec UHD-Videoaufnahmen unterstützt. (Iedbe2, b/263961771)
  • Fügen Sie CameraController den Getter/Setter für das ImageAnalysis-Ausgabeformat hinzu. (I9a96c, b/308240643)

Fehlerkorrekturen

  • Kamera 1.3.1: Die Leistung von ProcessCameraProvider#bindToLifecycle() wurde verbessert. Die wichtigste Änderung besteht darin, den Prozess zur Ermittlung der am besten geeigneten Größenkombinationen für UseCases zu optimieren. Die optimalen Ergebnisse variieren je nach den spezifischen UseCase-Kombinationen und der Anzahl der unterstützten Ausgabegrößen für die Zielgeräte. (I454f2)
  • Die Verwendung von VideoCapture zulassen, wenn Erweiterungen aktiviert sind. (I91f32)
  • Ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung-Serien A71 und M51 wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder eine extrem große Dateigröße. Die redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Dateigrößen haben. (I01afc, b/288828159)
  • Deaktivieren Sie die ImageAnalysis-Unterstützung auf Pixel-Geräten, um den Fehler zu vermeiden, der auf Pixel-Geräten fälschlicherweise die nicht leeren unterstützten Größen für ImageAnalysis zurückgibt. (I7ec31)
  • Ein Leistungsproblem wurde behoben, bei dem die CPU-Auslastung und der Stromverbrauch bei aktivierten Erweiterungen gestiegen sind. (Ibdccb)
  • Snapdragon 480 wurde der CameraUseInconsistentTimebaseQuirk hinzugefügt. Damit wird ein Problem auf Android 12 für Geräte mit diesem Chipsatz behoben, bei dem der Ton in Aufnahmen um die Zeit versetzt ist, die das Gerät im Ruhezustand war. (I58010)

Version 1.4.0-alpha02

18. Oktober 2023

androidx.camera:camera-*:1.4.0-alpha02 wird veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.

API-Änderungen

  • Benennen Sie die API in setCameraOpenRetryMaxTimeoutInMillisWhileResuming und das Argument um. (I72370)
  • Es wurden APIs zum Abfragen der Gerätefunktionen und zum Aktivieren der Video-/Vorschaustabilisierung hinzugefügt. (I87544)
  • API zum Anpassen des maximalen Zeitlimits für Wiederholungsversuche beim Öffnen der Kamera bereitstellen. (I0c642)
  • ProcessCameraProvider.shutdownAsync wurde als öffentliche Test-API veröffentlicht, damit der Prozesskameraanbieter in Testsuiten verwendet werden kann, bei denen CameraX zwischen den Tests möglicherweise auf unterschiedliche Weise initialisiert werden muss. (I9eca7)
  • Es wurden APIs zum Konfigurieren des Dynamikbereichs, der Framerate und des Spiegelmodus für die Videoaufnahme hinzugefügt. (Ifb8f7)
  • OutputSize wird eingestellt und durch ResolutionSelector ersetzt. ResolutionSelector ist eine umfassendere Methode zum Auswählen von Auflösungen und stimmt mit der Camera Core API überein. (I93abd, b/286801438)

Fehlerkorrekturen

  • Das Problem mit der schwarzen Vorschau auf dem Samsung Galaxy S23 Ultra 5G wurde behoben, wenn die Erweiterungen „Bokeh“ oder „Gesichtsretusche“ mit ImageAnalysis auf der Rückkamera aktiviert sind. (I2e8b1)
  • Probleme mit der Vorschau und mit VideoCapture auf dem Moto E5 Play wurden behoben. (73dce2)

Version 1.4.0-alpha01

20. September 2023

androidx.camera:camera-*:1.4.0-alpha01 wird veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.

API-Änderungen

  • Neue API zum Abrufen von Informationen zur Audioamplitude während der Aufnahme hinzugefügt. (Id4925)

Fehlerkorrekturen

  • Die Stabilität von Erweiterungen wird verbessert, indem dafür gesorgt wird, dass die Initialisierungs- und Deinitialisierungsereignisse in der richtigen Reihenfolge ausgelöst werden. (Ib3b8e)
  • Der Fehler bei der Konfiguration der Aufnahmesitzung wurde behoben, der durch das Überschreiten der unterstützten Oberflächenkombination aufgrund des internen Hinzufügens einer zusätzlichen sich wiederholenden Oberfläche verursacht wurde. (Id718c)
  • Ein Problem mit großen aufgenommenen JPEG-Bildern auf dem Vivo S16 wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder eine große Dateigröße. Die redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Dateigrößen haben. (I79505, b/299069235)
  • Das Problem, dass ImageAnalysis nicht zusammen mit ImageCapture und der Vorschau gebunden werden kann, wenn auf einigen Geräten bestimmte Erweiterungsmodi aktiviert sind, wurde behoben. Durch die Korrektur wird der richtige Wert zurückgegeben, wenn Apps die Verfügbarkeit von ImageAnalysis über ExtensionsManager#isImageAnalysisSupported() abfragen. (I7d538)
  • JavaDoc an das Verhalten anpassen. Anstatt sofort abgeschlossen zu werden, warten #setZoomRatio, #setLinearZoom und #enableTorch, bis die Kamera bereit ist. Außerdem wurden Informationen dazu hinzugefügt, wie das maximale Sichtfeld mit der #takePicture API erreicht werden kann. (I23588)

Version 1.3

Version 1.3.4

12. Juni 2024

androidx.camera:camera-*:1.3.4 wird veröffentlicht. Version 1.3.4 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem wurde behoben, bei dem getZoomRatio fälschlicherweise einen niedrigeren Wert zurückgegeben hat, wenn ein steigendes Zoomverhältnis angewendet wurde. (I4aa0d, b/317543616)
  • Es wurde ein Fehler behoben, bei dem bei der Aufnahme von Standbildern und beim Tippen zum Fokussieren nicht die Werte für die Wiederholungsanfrage-FPS und den Stabilisierungsmodus verwendet wurden. Dadurch wurde die Aufnahmesitzung möglicherweise neu erstellt, was auf einigen Geräten zu Latenzproblemen oder einem Einfrieren der Vorschau führen konnte. (I7dc0b)
  • Das Problem, dass die Bildrate auf einen niedrigeren Wert gesetzt wird, wenn setTargetFrameRate mit FRAME_RATE_RANGE_UNSPECIFIED aufgerufen wird, wurde behoben. (I78c61)

Version 1.3.3

17. April 2024

androidx.camera:camera-*:1.3.3 wird veröffentlicht. Version 1.3.3 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem bei der Auswahl der Auflösung für ImageAnalysis wurde behoben, das mit der Standardeinstellung für die Zielauflösung des Analysetools zusammenhing: Die Zielauflösung wurde fälschlicherweise auf 640 × 480 beibehalten, auch wenn in den Anwendungen eine andere Standardeinstellung für die Auflösung des Analysetools festgelegt war. Wenn dieses Problem (1.3.0 – 1.3.2) bei Anwendungen auftritt und kein Upgrade auf die neueren Versionen mit der Lösung möglich ist, kann es umgangen werden, indem direkt ein ResolutionSelector mit der bevorzugten Auflösung und ein passendes AspectRatioStrategy für den ImageAnalysis-UseCase festgelegt wird. (I81f72, b/330091012)

Version 1.3.2

6. März 2024

androidx.camera:camera-*:1.3.2 wird veröffentlicht. Version 1.3.2 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem mit JPEG-Metadaten auf Samsung A24-Geräten wurde behoben. Mit CameraX werden Bilder jetzt korrekt gespeichert und die Funktion ImageProxy.toBitmap() gibt korrekte Bitmap-Objekte zurück. (I8d6eb, b/309005680)
  • Die Auflösung von 9280 × 6944 wurde auf Redmi Note 9 Pro-Geräten aufgrund von Problemen entfernt. (Ia23da)

Version 1.3.1

13. Dezember 2023

androidx.camera:camera-*:1.3.1 wird veröffentlicht. Version 1.3.1 enthält diese Commits.

Fehlerkorrekturen

Die Leistung von ProcessCameraProvider#bindToLifecycle() wurde verbessert. Die wichtigste Änderung besteht darin, den Prozess zur Ermittlung der am besten geeigneten Größenkombinationen für UseCases zu optimieren. Die optimalen Ergebnisse variieren je nach den spezifischen UseCase-Kombinationen und der Anzahl der unterstützten Ausgabegrößen für die Zielgeräte. (I454f2)

Hier sind einige Referenzergebnisse für verschiedene Szenarien:

  • Vier UseCases: Preview + ImageCapture + ImageAnalysis + VideoCapture

    • Google Pixel 7: ca. 430 ms bis 60 ms
    • Samsung Galaxy S23 Ultra: ca. 540 ms bis 45 ms
    • Samsung A53 5G: ca. 115 ms bis 70 ms
  • Drei UseCases: Preview + ImageCapture + ImageAnalysis

    • Google Pixel 7: ca. 9 ms bis 7 ms
    • Samsung Galaxy S23 Ultra: ca. 6 ms bis 5 ms
    • Samsung A53 5G: ca. 32 ms bis 12 ms
  • Snapdragon 480 wurde der CameraUseInconsistentTimebaseQuirk hinzugefügt. Damit wird ein Problem auf Android 12 für Geräte mit diesem Chipsatz behoben, bei dem der Ton in Aufnahmen um die Zeit versetzt ist, die das Gerät im Ruhezustand war. (I58010)

Version 1.3.0

18. Oktober 2023

androidx.camera:camera-*:1.3.0 wird veröffentlicht. Version 1.3.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.2.0

Version 1.3.0-rc02

20. September 2023

androidx.camera:camera-*:1.3.0-rc02 wird veröffentlicht. Version 1.3.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Die Stabilität von Erweiterungen wird verbessert, indem dafür gesorgt wird, dass die Initialisierungs- und Deinitialisierungsereignisse in der richtigen Reihenfolge ausgelöst werden. Dadurch wurden einige Probleme mit schwarzen Vorschauen beim Wechseln von Erweiterungsmodi oder Kameras behoben. (Iddaac)
  • Das Problem, dass ImageAnalysis nicht zusammen mit ImageCapture und der Vorschau gebunden werden kann, wenn auf einigen Geräten bestimmte Erweiterungsmodi aktiviert sind, wurde behoben. Durch die Korrektur wird der richtige Wert zurückgegeben, wenn Apps die Verfügbarkeit von ImageAnalysis über ExtensionsManager#isImageAnalysisSupported() abfragen. (I7d538)
  • Das Problem, dass Audio und Video des aufgezeichneten Videos nicht synchron waren, wenn der Spiegelungsmodus auf dem Xiaomi Poco X3 NFC aktiviert war, wurde behoben. (I20b4c)

Version 1.3.0-rc01

23. August 2023

androidx.camera:camera-*:1.3.0-rc01 wird veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.

API-Änderungen

  • PendingRecording.asPersistentRecording wurde hinzugefügt, damit eine Aufnahme kontinuierlich aufgezeichnet werden kann, während das VideoCapture, an das der Recorder angehängt ist, neu gebunden wird. (I517c6)

Fehlerkorrekturen

  • Ein Absturz wurde behoben, der auftrat, wenn ein Stream sowohl mit VideoCapture als auch mit der Vorschau geteilt wurde. Außerdem wurde ein Problem mit einem schwarzen Bildschirm auf LEGACY-Geräten behoben, wenn die Streamfreigabe aktiviert ist.
  • Ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung S7-Serie (SM-G930T, SM-G930V) wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder eine große Dateigröße. Die redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Dateigrößen haben. (I407b0, b/288828159)
  • Ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung S22-Serie (SM-S901B, SM-S901B/DS) und S22+-Serie (SM-S906B) wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder auf dem S22 SM-S901B/DS eine große Dateigröße von etwa 13 MB. Die redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Dateigrößen haben. (I73be9, b/288828159)
  • Ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung-Serien A5, A52, A70 und A72 wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder eine extreme Dateigröße (z. B. etwa 32 MB oder sogar 96 MB). Diese redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Bilddateigrößen haben. (I97c4d, b/288828159)
  • Ein nativer Absturz beim Aufnehmen von Fotos mit aktivierten Erweiterungen wurde behoben (I698f5).

Version 1.3.0-beta02

26. Juli 2023

androidx.camera:camera-*:1.3.0-beta02 wird veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Taschenlampe als Blitz für Pixel 4- und Pixel 5-Varianten verwenden, um die Aufnahmequalität bei schlechten Lichtverhältnissen zu verbessern (I56ff5, b/280221967)
  • Ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung A5-Serie (2017) wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder eine Dateigröße von etwa 32 MB. Diese redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Bilddateigrößen haben. (I29837, b/288828159)
  • Das Problem wurde behoben, dass bei Aufnahmefehlern auf den in CaptureFailedRetryQuirk genannten problematischen Geräten der Wiederholungsversuch nicht richtig ausgelöst wurde. (I7b589)

Version 1.3.0-beta01

21. Juni 2023

androidx.camera:camera-*:1.3.0-beta01 wird veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.

API-Änderungen

  • Der Funktionsname ResolutionSelector.Builder#setHighResolutionEnabledFlag(int) wurde in setAllowedResolutionMode und die Konstanten ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON in PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE umbenannt. (If84e8)
  • Die verworfenen APIs ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int) und VideoCapture.setTargetRotationDegrees(int) wurden entfernt. (Id8e77)
  • Die Klasse DynamicRange stellt den Dynamikumfang von Bildern dar. Damit können Sie HDR-Formate als Ausgabe von VideoCapture bis VideoCapture.Builder#setDynamicRange() auswählen. (Ib0377)
  • Der ExtensionsManager wurde eine isImageAnalysisSupported API hinzugefügt, mit der Apps ermitteln können, ob ein ImageAnalysis-Anwendungsfall zusammen mit Preview und ImageCapture gebunden werden kann, wenn Erweiterungen aktiviert sind. (I1bc63)
  • Mit der neuen VideoCapabilities-Klasse, die aus Recorder abgerufen wird, können unterstützte dynamische Bereiche und Qualitäten für die Videoaufzeichnung auf dem Gerät abgefragt werden. Die Methoden getSupportedQualities() und isQualitySupported() von QualitySelector werden verworfen. Verwenden Sie stattdessen die Methoden getSupportedQualities() und isQualitySupported() von VideoCapabilities. (I04014)
  • CameraController#setVideoCaptureTargetQuality() wurde in setVideoCaptureQualitySelector umbenannt und akzeptiert das Argument QualitySelector, was mehr Flexibilität bei der Einrichtung der Videoqualität bietet. CameraController#getVideoCaptureTargetQuality() wird entsprechend in getVideoCaptureQualitySelector geändert. (I520ed)
  • Die experimentelle Anmerkung für Videofunktionen wurde entfernt. Die Videofunktionen sind jetzt stabil. (I1a113)

Fehlerkorrekturen

  • Verwenden Sie die Taschenlampe als Blitz auf Samsung SM-A320-Modellen, um die Geschwindigkeit und die Qualität der aufgenommenen Bilder bei schlechten Lichtverhältnissen zu verbessern. (I6a022, b/286190938)
  • Unterstützung für das ImageFormat.JPEG-Format für ImageProxy.toBitmap() hinzufügen Wenn das JPEG-Byte-Array nicht decodiert werden kann, wird ein UnsupportedOperationException ausgegeben. (I81958, b/282057603)

Version 1.3.0-alpha07

24. Mai 2023

androidx.camera:camera-*:1.3.0-alpha07 wird veröffentlicht. Version 1.3.0-alpha07 enthält diese Commits.

Neue Funktionen

  • Mit der neuen VideoCapture.Builder# setTargetFrameRate(Range) API können Videoaufnahmen mit anderen Bildraten als der Standardbildrate des Geräts aufgenommen werden. Die verfügbaren Bildraten für Aufnahmen können über die neue CameraInfo#getSupportedFrameRates() API abgefragt werden.

API-Änderungen

  • Die Konstanten ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON wurden in ALLOWED_RESOLUTIONS_NORMAL/SLOW umbenannt und der Name der Builder-Funktion setHighResolutionEnabledFlag wurde in setAllowedResolutionMode geändert. (Iae817)
  • CameraInfo#getSupportedFrameRateRanges() gibt jetzt eine Set anstelle einer List zurück, um besser darzustellen, dass die Bereiche ungeordnet sind. (I02f43)
  • Fügen Sie CameraEffect einen Fehler-Listener hinzu, um nicht behebbares Fehler (Ice471) zu verarbeiten.
  • Öffentlichen Konstruktor in ResolutionInfo für bessere Testbarkeit hinzufügen (If6d1c)
  • Es wurde eine API UseCase.snapToSurfaceRotation(int) bereitgestellt, um die Verwendung von setTargetRotationDegrees zu ersetzen und die APIs ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int) und VideoCapture.setTargetRotationDegrees(int) einzustellen. (Ia9010)
  • Neue APIs Preview#getTargetFrameRate und Preview.Builder#setTargetFrameRate hinzugefügt, um die Ziel-Framerate für den Vorschau-Anwendungsfall festlegen und abrufen zu können (If4f22)
  • VideoRecordEvent.Finalize wird jetzt mit dem Fehlercode ERROR_RECORDING_GARBAGE_COLLECTED abgeschlossen, wenn das Recording-Objekt aufgrund der Garbage Collection beendet wird. (Iba974)

Fehlerkorrekturen

  • Der Fehler NullPointerException wurde behoben, wenn die zwischengespeicherten Ausgabegrößen in StreamConfigurationMapCompat null sind. (Idf124, b/282025204)
  • Das Problem, dass die Vorschau in Erweiterungen nicht pausiert wird, wenn Preview.setSurfaceProvider(null) gedrückt wird, wurde behoben (Ia903e).
  • Ein Problem wurde behoben, bei dem beim Öffnen der Kamera ConcurrentModificationException ausgelöst wurde, wenn VideoCapture gebunden war. (Ic8ac4)

Version 1.3.0-alpha06

19. April 2023

androidx.camera:camera-*:1.3.0-alpha06 wird veröffentlicht. Version 1.3.0-alpha06 enthält diese Commits.

Neue Funktionen

  • „Concurrent camera“ ist eine neue Funktion, die mit Android 11 eingeführt wurde. Sie unterstützt das gleichzeitige Streamen von Kamerageräten. So können beispielsweise sowohl die Vorder- als auch die Rückkamera eines Geräts gleichzeitig verwendet werden. CameraX unterstützt derzeit nur zwei gleichzeitige Kameras, sodass zwei Kameras gleichzeitig verwendet werden können. Für jede Kamera können maximal zwei {@link UseCase}s gebunden werden. Die maximale Auflösung beträgt 720p oder 1440p. Weitere Informationen finden Sie unter CameraManager#getConcurrentCameraIds().
  • Wir stellen die neue ResolutionSelector API vor, die die folgenden Funktionen umfasst:
    • Anwendungen können Strategien für das Seitenverhältnis und die Auflösung angeben, um die beste Auflösung für ihre Anforderungen auszuwählen.
    • Alle Parameter für Größe und Seitenverhältnis werden in den Koordinaten des Kamerasensors angegeben.
    • Anwendungen können einen benutzerdefinierten Auflösungsfilter implementieren, um die unterstützten Größen in der gewünschten Reihenfolge anzuordnen.
    • Anwendungen können auch die Aufnahme mit hoher Auflösung aktivieren, um Bilder mit höherer Auflösung zu erhalten. Beachten Sie jedoch, dass die Aufnahmezeit bei einer hohen Auflösung länger sein kann.
    • VideoCapture-Spiegelungs-APIs wurden hinzugefügt. Von VideoCapture aufgenommene Videos werden standardmäßig nicht gespiegelt. Die Kamera-Vorschau wird jedoch standardmäßig von der Frontkamera gespiegelt. VideoCapture-Spiegelungs-APIs ermöglichen die Ausrichtung auf die Kameravorschau bei Verwendung der Frontkamera. Es gibt drei MirrorMode, OFF, ON und ON_FRONT_ONLY. Um die Kamera-Vorschau auszurichten, wird empfohlen, ON_FRONT_ONLY zu verwenden. Das bedeutet, dass die Spiegelung für die Rückkamera nicht, für die Frontkamera aber aktiviert ist.

API-Änderungen

  • Neue ResolutionSelector API verfügbar gemacht. Anwendungen können Strategien für das Seitenverhältnis und die Auflösung mit Fallback-Regeln oder einem benutzerdefinierten Auflösungsfilter angeben, um die gewünschten Ergebnisse zu erzielen. Anwendungen können ein Flag angeben, um die Aufnahme in hoher Auflösung zu aktivieren. Dadurch kann CameraX höhere Auflösungen für Fotos oder Videos auswählen. Beachten Sie jedoch, dass die Aufnahmezeit bei einer hohen Auflösung länger sein kann. (Ibed95)
  • Die vom AE-Algorithmus unterstützten FPS-Bereiche können jetzt über CameraInfo#getSupportedFrameRateRanges() abgefragt werden. (Iaa67f)
  • Die Namen aller Methoden für die Bildrate werden in „FrameRate“ zusammengefasst. Korrigiere den Javadoc-Fehler in VideoCapture#getTargetFrameRate() (I83304)
  • Die alten APIs setTargetAspectRatio und setTargetResolution wurden eingestellt. Verwenden Sie stattdessen die neue ResolutionSelector API. (I542c3)
  • Öffentliche APIs für die gleichzeitige Verwendung von zwei Kameras hinzugefügt, darunter
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn() und ConcurrentCameraConfig, SingleCameraConfig und ConcurrentCamera (Iab1c1)
  • Make ImageProcessor.Response#getOutputImage NonNull (Ib9c60)
  • Es wurden VideoCapture-Spiegelungs-APIs hinzugefügt, darunter VideoCapture.Builder.setMirrorMode(int) und VideoCapture.getMirrorMode(). Die APIs sind nützlich für Anwendungen, bei denen die Videoaufzeichnung dem üblichen Verhalten der Kameravorschau entsprechen muss. Das heißt, die Vorschau der Rückkamera wird nicht gespiegelt, die Vorschau der Frontkamera jedoch schon. (I713b6, b/194634656)
  • setTargetFrameRate() API in VideoCapture.Builder und getTargetFramerate() API in VideoCapture hinzugefügt (I109d4)
  • SurfaceOutput wird von Closable abgeleitet und der öffentliche Konstruktor von SurfaceOutput.Event wird ausgeblendet. (I60ea8)
  • Recording.mute wurde hinzugefügt, um eine in Bearbeitung befindliche Aufnahme dynamisch stummzuschalten oder die Stummschaltung aufzuheben. RecordingStats enthält AudioStats.AUDIO_STATE_MUTED, wenn die Aufzeichnung während der Verarbeitung explizit stummgeschaltet wird. (Ie17fc)
  • Der Parameter #setEffects() darf nicht null sein. Fügen Sie eine #clearEffects()-API zum Entfernen von Effekten hinzu. Die App sollte #clearEffects() aufrufen, um Effekte zu entfernen. (I4b4d9)
  • Fügen Sie einen zweiten Konstruktor für ViewfinderSurfaceRequest.Builder hinzu, um einen Builder für den Kopierkonstruktor zu verwenden (I621a7).

Fehlerkorrekturen

  • Das Problem wurde behoben, dass Apps, die die Extensions API aufrufen, beim Schließen der Kamera abstürzen konnten (Ib27e5).
  • Ein Problem wurde behoben, durch das VideoCapture auf einigen Geräten nicht mit der Frontkamera funktionierte. Zum Beispiel auf dem Samsung Galaxy S23 und dem Xiaomi 2107113SG. (Ibec7e, b/270656244)
  • Das Problem wurde behoben, dass das Aufnehmen von Bildern mit „Datei“ im öffentlichen Ordner des externen Speichers unter Android 10 oder höher immer fehlschlug. Unter Android 10 muss für das Aufnehmen von Bildern mit „File“ im öffentlichen Ordner des externen Speichers auch requestLegacyExternalStorage im Anwendungstag auf „true“ gesetzt werden. (I11b2c)
  • Ein RejectedExecutionException-Absturz in DefaultSurfaceProcessor wurde behoben. Der Absturz kann auftreten, wenn VideoCapture gebunden ist und die Aktivität pausiert wird. (Idb46a, b/273713906)

Version 1.3.0-alpha05

22. März 2023

androidx.camera:camera-*:1.3.0-alpha05 wird veröffentlicht. Version 1.3.0-alpha05 enthält diese Commits.

API-Änderungen

  • Es wurden APIs für die VideoCapture-Rotation hinzugefügt, darunter VideoCapture.Builder.setTargetRotation(int), VideoCapture.setTargetRotation(int), VideoCapture.setTargetRotationDegrees(int) und VideoCapture.getTargetRotation(). Die APIs sind nützlich für Anwendungen, die die Geräteausrichtung sperren. ImageCapture.setTargetRotationDegrees(int) und ImageAnalysis.setTargetRotationDegrees(int) werden ebenfalls hinzugefügt. (Id3ffe, b/205242781)
  • VIDEO_CAPTURE und PREVIEW|VIDEO_CAPTURE als Ziel für Effekte zulassen Effekte, die auf VIDEO_CAPTURE ausgerichtet sind, werden auf den VideoCapture-Anwendungsfall angewendet. Effekte, die auf PREVIEW|VIDEO_CAPTURE ausgerichtet sind, werden auf einen freigegebenen Stream angewendet, bevor sie in den Vorschau- und VideoCapture-Stream kopiert werden. (Iee6f3)

Fehlerkorrekturen

  • Kamera 1.2.2: Das Problem, durch das CameraX-Erweiterungen auf einigen Geräten wie Pixel nicht richtig funktionierten, wenn ProGuard aktiviert war, wurde behoben (I90aa2).
  • Es wurde ein PreviewView-Fehler behoben, durch den die Vorschau bei einer Drehung verzerrt werden konnte, wenn die App die Bildschirmausrichtung selbst verarbeitet. Dies geschieht nur auf bestimmten Geräten. Der Fehler kann auf dem Pixel 4a, Pixel 5 und Pixel 6a reproduziert werden. (I14340, b/223488673)

Version 1.3.0-alpha04

22. Februar 2023

androidx.camera:camera-*:1.3.0-alpha04 wird veröffentlicht. Version 1.3.0-alpha04 enthält diese Commits.

Neue Funktionen

Eine neue Funktion, mit der bisher nicht unterstützte Surface-Kombinationen unterstützt werden, indem ein Stream für mehrere UseCases freigegeben wird.

  • Bisher hat CameraX IllegalArgumentException ausgegeben, wenn „Preview, VideoCapture, ImageAnalysis“ auf der Kamera-Hardwareebene FULL und darunter oder „Preview, VideoCapture, ImageCapture“ auf der Hardwareebene LEGACY gebunden wurde.
  • Das neue Verhalten besteht darin, dass die Bindungen ohne Ausnahmen funktionieren. Stattdessen verwendet CameraX OpenGL, um einen freigegebenen Stream in Preview und VideoCapture zu kopieren.
  • Da die Pufferkopie Kosten verursacht, kann es in der App zu einer erhöhten Latenz und einem erhöhten Stromverbrauch kommen.

API-Änderungen

  • API zum Konvertieren von ImageProxy in Bitmap hinzufügen. Die unterstützten ImageProxy-Formate sind ImageFormat.YUV_420_888 und PixelFormat.RGBA_8888. Wenn das Format ungültig ist, wird IllegalArgumentException ausgegeben. (Ic7110)
  • Fügen Sie CoroutineCameraViewfinder hinzu, um die Konfiguration des Suchers mithilfe von suspend-Funktionen in Kotlin zu unterstützen. (I657bc)
  • Fügen Sie einen neuen öffentlichen Konstruktor für ViewfinderSurfaceRequest hinzu. So haben Sie mehr Flexibilität, wenn der Nutzer CameraCharacteristics nicht angeben kann. (Ie6549)

Fehlerkorrekturen

  • Der Absturz von Erweiterungen, der auf einigen Samsung-Geräten auftritt, wenn die App zu schnell pausiert und fortgesetzt wird (Iaca26), wurde behoben.

Version 1.3.0-alpha03

25. Januar 2023

androidx.camera:camera-*:1.3.0-alpha03 wird veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.

API-Änderungen

  • CameraInfo.getIntrinsicZoomRatio wurde hinzugefügt, um Informationen zum Sichtfeld relativ zur Standardkamera bereitzustellen. (Ib300c)
  • CameraInfo.getLensFacing wurde hinzugefügt, um Informationen zur Ausrichtung der Linse bereitzustellen. CameraSelector#LENS_FACING_EXTERNAL wurde als experimentelle Funktion zum Auswählen externer Kameras hinzugefügt. (Icaf3e)
  • Fügen Sie #setEffect() zu CameraController hinzu, um der Kameraausgabe Effekte hinzuzufügen. (I1d21f)
  • Fügen Sie die Methode invalidate() zu SurfaceRequest hinzu. Der Surface-Anbieter kann benachrichtigen, dass die zuvor bereitgestellte Oberfläche nicht mehr gültig ist. (Idc649)
  • Fügen Sie eine ImageProcessor API hinzu. Mit dieser Schnittstelle können Nachbearbeitungseffekte in die ImageCapture-Pipeline eingefügt werden. (I575c6)
  • Die API Recorder.Builder.setAspectRatio() wurde hinzugefügt. Sie kann mit QualitySelector kombiniert werden, um mehr Videoauflösungen zu unterstützen. (I8a082)
  • Recorder.Builder#setTargetVideoEncodingBitRate wurde hinzugefügt, um die Zielvideocodierung BitRate festzulegen, und Recorder#getTargetVideoEncodingBitRate, um die Bitrate der Zielvideocodierung abzurufen. (I5984d)

Fehlerkorrekturen

  • Das Problem, dass ImageCapture fehlgeschlagen ist, wenn kein Blitzgerät vorhanden ist und der Blitzmodus aktiviert ist, wurde behoben. (I9e8b4, b/263391112)
  • Ein Problem mit beschädigten JPEG-Bildern wurde behoben, das beim Schreiben von Exif-Standortdaten auf einigen Samsung-Geräten mit Android 12 auftrat. (Ib7086, b/263747161, b/263289024)
  • Wenn Sie die Taschenlampe/den Zoom vor Abschluss der Kamerainitialisierung einstellen, z.B. durch Aufrufen von CameraController#enableTorch, wird die ausstehende Aktion im Cache gespeichert und gesendet, sobald die Initialisierung abgeschlossen ist. (I11e92, b/264157663)

Version 1.3.0-alpha02

7. Dezember 2022

androidx.camera:camera-*:1.3.0-alpha02 wird veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.

API-Änderungen

  • Eine neue API zum Anwenden von Nachbearbeitungseffekten auf die Vorschauausgabe. (Ic17d5)
  • OutputOptions.getDurationLimit wurde in OutputOptions.getDurationLimitMillis und OutputOptions.setDurationLimit in OutputOptions.setDurationLimitMillis umbenannt. (I91f0c)
  • Die Klasse AudioConfig wurde hinzugefügt, um die audiobezogenen Einstellungen bei der Videoaufzeichnung zu verarbeiten. Die Annotation @RequiresPermission wird von startRecording-Funktionen zu AudioConfig verschoben, um unnötige Berechtigungsanfragen in Fällen zu vermeiden, in denen Audio nicht erforderlich ist. (I28755)
  • Entfernen Sie die Klassen „Metadata“, OnVideoSavedCallback, OutputFileOptions und OutputFileResults, die nach der Anwendung der neuen Video Capture API nicht mehr verwendet werden. (I38cd8)
  • Wenden Sie die neue API für die Videoaufnahme an. Die Methoden getVideoCaptureTargetSize und setVideoCaptureTargetSize werden durch die Methoden getVideoCaptureTargetQuality und setVideoCaptureTargetQuality ersetzt, da setTargetResolution nicht mehr unterstützt wird. (I2a1d5)

Fehlerkorrekturen

  • Entfernen Sie die eingestellte core.VideoCapture API. (I531e0)
  • Das Problem, dass der onError-Callback nicht aufgerufen wird, wenn Fotos ohne die Speicherberechtigung aufgenommen werden, wurde behoben.(I936db, b/244807669)
  • Qualität und Zuverlässigkeit von Kameraerweiterungen verbessern Kameraerweiterungen sind auf Motorola-Geräten mit Kameraerweiterungen v1.1.0 und älter deaktiviert, da es Probleme mit der Bokeh-Unterstützung, der Bildaufnahme und der Vorschau gibt, die nicht fortgesetzt wird. (Id3ce3)
  • Ein nativer Absturz wurde behoben, der auftrat, wenn das Zuschneiden von Videos über ViewPort auf Legacy-Geräten aktiviert war. (I16b8a, b/251357665)

Version 1.3.0-alpha01

9. November 2022

androidx.camera:camera-*:1.3.0-alpha01 wird veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Camera-viewfinder wurde offiziell veröffentlicht. Camera-viewfinder bietet ein einfaches Sucher-Widget, mit dem der Kamera-Feed für Camera2 angezeigt werden kann. Ein Beispiel finden Sie im Beispielcode.

API-Änderungen

  • OutputOptions.setDurationLimit wurde hinzugefügt, um das Festlegen eines Limits für die Videolänge zu ermöglichen. Die Aufnahme wird automatisch abgeschlossen, wenn das angegebene Zeitlimit überschritten wird. (I902a0)
  • Fehlerstatus für Audio bei Videoaufzeichnung hinzufügen AudioStats.AUDIO_STATE_SOURCE_ERROR Wird gesendet, wenn die Einrichtung der Audioquelle fehlschlägt oder ein Fehler auftritt. (I37410)

Fehlerkorrekturen

  • Es wurde ein Quirk hinzugefügt, damit einige problematische Geräte die Aufnahme einmal wiederholen können, wenn Fehler auftreten. (Id4795)
  • Problem mit schwarzem Bildschirm bei der Implementierung von PreviewView SurfaceView auf ViewPager2 behoben. Im Rahmen der Korrektur wird PreviewView das SurfaceView wiederverwenden, wenn die angeforderte Auflösung nicht geändert wird. (Ib3f27)
  • Unterstützung des Zuschneidens von Videos (WYSIWYG-Funktion) bei Verwendung der ViewPort- oder CameraController-API. (Ifbba8, b/201085351)
  • Behoben: Videos, die mit der Frontkamera aufgenommen wurden, werden auf dem Huawei P40 Lite nicht aufgezeichnet. (I87c57, b/250807400)

Version 1.2

Version 1.2.3

24. Mai 2023

androidx.camera:camera-*:1.2.3 wird veröffentlicht. Version 1.2.3 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem wurde behoben, durch das VideoCapture auf einigen Geräten nicht mit der Frontkamera funktionierte. Zum Beispiel auf dem Samsung Galaxy S23 und dem Xiaomi 2107113SG. (Ibec7e, b/270656244)

Version 1.2.2

22. März 2023

androidx.camera:camera-*:1.2.2 wird veröffentlicht. Version 1.2.2 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem, durch das CameraX-Erweiterungen auf einigen Geräten wie Pixel nicht richtig funktionierten, wenn ProGuard aktiviert war (I90aa2), wurde behoben.

Version 1.2.1

25. Januar 2023

androidx.camera:camera-*:1.2.1 wird veröffentlicht. Version 1.2.1 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem mit beschädigten JPEG-Bildern wurde behoben, das beim Schreiben von Exif-Standortdaten auf einigen Samsung-Geräten mit Android 12 auftrat. (b/263289024)

Version 1.2.0

7. Dezember 2022

androidx.camera:camera-*:1.2.0 wird veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • Neue Bibliothek „camera-mlkit-vision“ CameraX lässt sich problemlos in viele MLKit-Funktionen einbinden, darunter Barcode-Scanning, Gesichtserkennung und Texterkennung. MLKitAnalyzer wurde als neue APIs hinzugefügt.
  • Neue experimentelle API für die Funktion „Keine Auslöseverzögerung“. Optimiert die Aufnahmepipeline für eine bessere Latenz bei gleichbleibend guter Bildqualität. Wenn der Aufnahmemodus auf CAPTURE_MODE_ZERO_SHUTTER_LAG eingestellt ist, wird die Latenz zwischen dem Klicken auf den Auslöser und der Aufnahme des Bildes im Vergleich zu anderen Aufnahmemodi minimiert. Auf Geräten, die ZERO_SHUTTER_LAG nicht unterstützen, wird auf CAPTURE_MODE_MINIMIZE_LATENCY zurückgegriffen.
  • android.camera.core.VideoCapture einstellen
  • setStreamUseCase() wurde als öffentliche Camera2Interop API hinzugefügt.
  • Anforderung an das API-Level für setOutputImageRotationEnabled hinzugefügt.
  • ImageAnalysis.Analyzer#getTargetResolutionOverride() wurde in ImageAnalysis.Analyzer#getDefaultTargetResolution() umbenannt.
  • Es wurde eine API zum Festlegen von Standortmetadaten für das gespeicherte Video hinzugefügt.
  • Die niedrige Framerate bei der Verwendung von VideoCapture und Vorschau-Anwendungsfällen mit einem Seitenverhältnis von 16:9 wurde behoben.
  • Das Problem mit der schwarzen Vorschau, das auftritt, wenn die BOKEH-Erweiterung auf einigen Samsung-Geräten aktiviert ist und der Nutzer die Kameras wechselt, wurde behoben.
  • Das Problem mit dem gestreckten Preview/VideoCapture auf Geräten mit API-Level 27 wurde auf dem Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) behoben.
  • Der Workaround zum horizontalen Spiegeln des AF-Bereichs von Frontkameras auf Samsung-Geräten mit Android T wurde deaktiviert, da das Problem behoben wurde.

Version 1.2.0-rc01

24. Oktober 2022

androidx.camera:camera-*:1.2.0-rc01 wird veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.

API-Änderungen

  • Die setStreamUseCase API für OutputConfiguration hinzufügen. Der Nutzer kann den Stream-Anwendungsfall für die Streamsitzung angeben und so die interne Logik von CameraX zum Auswählen des Stream-Anwendungsfalls überschreiben, um den Stream entsprechend seinen Anforderungen zu optimieren. (Ib1a95)

Fehlerkorrekturen

  • Das Problem mit dem gestreckten Preview/VideoCapture auf Geräten mit API-Level 27 wurde auf dem Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) behoben. Bei einer Auflösung von 1920 × 1080 werden die Preview/VideoCapture-Bilder gestreckt. Es wurde eine Problemumgehung hinzugefügt, um die Auflösung 1920 × 1080 für die Vorschau oder VideoCapture nicht auszuwählen, um das Problem mit dem gestreckten Bild zu vermeiden. (I0e04e)
  • Die niedrige Framerate bei der Verwendung von VideoCapture und Vorschau-Anwendungsfällen mit einem Seitenverhältnis von 16:9 auf einigen Huawei-Geräten wurde behoben. (If8c88, b/223643510)
  • Das Problem, dass die Kamera nicht geöffnet werden konnte, wenn SurfaceProvider für die Vorschau nicht festgelegt war, wurde behoben. Im Rahmen der Fehlerbehebung wird die Vorschau ohne festgelegtes SurfaceProvider nicht mehr in der Kameraaufnahmesitzung konfiguriert. (I99681)

Version 1.2.0-beta02

21. September 2022

androidx.camera:camera-*:1.2.0-beta02 wird veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.

API-Änderungen

  • Anforderung an das API-Level für setOutputImageRotationEnabled hinzufügen (I26e3e, b/240993561)

Fehlerkorrekturen

  • Der Workaround zum horizontalen Spiegeln des AF-Bereichs von Frontkameras auf Samsung-Geräten mit Android T wurde deaktiviert, da das Problem behoben wurde. (I05f69)
  • Das Problem mit der schwarzen Vorschau, das auftritt, wenn die BOKEH-Erweiterung auf einigen Samsung-Geräten aktiviert ist und der Nutzer die Kameras wechselt, wurde behoben. (If6168)

Version 1.2.0-beta01

24. August 2022

androidx.camera:camera-*:1.2.0-beta01 wird veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.

Neue Funktionen

  • Neue Bibliothek camera-mlkit-vision. CameraX lässt sich ganz einfach in viele MLKit-Funktionen einbinden, darunter Barcode-Scanning, Gesichtserkennung und Texterkennung. Hier finden Sie den Beispielcode.
  • Neue experimentelle Zero-Shutter Lag API Optimiert die Aufnahmepipeline für eine bessere Latenz bei gleichbleibend guter Bildqualität. Wenn der Aufnahmemodus auf CAPTURE_MODE_ZERO_SHUTTER_LAG festgelegt ist, sollte die Latenz zwischen dem Klicken auf den Auslöser und der Aufnahme des Bilds im Vergleich zu anderen Aufnahmemodi minimiert werden. Auf Geräten, die ZERO_SHUTTER_LAG nicht unterstützen, wird auf CAPTURE_MODE_MINIMIZE_LATENCY zurückgegriffen.
  • ImageAnalysis.Analyzer und MLKitAnalyzer sind jetzt offizielle APIs.
  • Die API zum Festlegen von Standortmetadaten für das gespeicherte Video wurde offengelegt.
  • Benennen Sie ImageAnalysis.Analyzer#getTargetResolutionOverride() in ImageAnalysis.Analyzer#getDefaultTargetResolution() um.

Fehlerkorrekturen

  • Ein Problem beim Erfassen von Bildern mit der Alps k61v1_basic_ref-Kamera wurde behoben. Die aufgenommenen JPEG-Bilder aus HAL haben falsche Exif-Metadaten. Die Exif-Metadaten enthalten nicht das Tag „0xffd9“ oder „0xffda“, damit ExifInterface die Attribute richtig parsen kann. Die Bilder werden im YUV-Format aufgenommen und dann in JPEG-Ausgabebilder komprimiert, um dieses Problem zu umgehen. (I45abb)

Version 1.2.0-alpha04

27. Juli 2022

androidx.camera:camera-*:1.2.0-alpha04 wird veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.

API-Änderungen

  • Benennen Sie ImageAnalysis.Analyzer#getTargetResolutionOverride() in ImageAnalysis.Analyzer#getDefaultTargetResolution() um. Das Verhalten wurde auch so geändert, dass der von dieser Methode zurückgegebene Wert durch den Wert von ImageAnalysis#setTargetResolution() überschrieben werden kann. (If1d36)
  • Die API zum Festlegen von Standortmetadaten für das gespeicherte Video wurde offengelegt. Ein android.location.Location-Objekt kann über die neue API androidx.camera.video.OutputOptions.Builder.setLocation(Location) festgelegt werden. (I313a0, b/204197544)

Fehlerkorrekturen

  • Problem behoben, bei dem Fotos mit der Funktion „Vorschau entbinden“ nicht aufgenommen werden konnten (Ie70b6, b/235119898)
  • Ein Absturz in Recorder beim Versuch, eine Aufnahme zu starten, wenn die Audioquelle nicht verfügbar ist, wurde behoben. (I9f652)

Version 1.2.0-alpha03

29. Juni 2022

androidx.camera:camera-*:1.2.0-alpha03 wird veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.

API-Änderungen

  • Die experimentelle Annotation für ImageAnalysis.Analyzer und MLKitAnalyzer wurde entfernt. (I0ff22)

Fehlerkorrekturen

  • Das Standard-Zeitlimit für den Autofokus wurde auf 5.000 ms festgelegt. Der Autofokus wird mit isFocusSuccessful false abgeschlossen, wenn FocusMeteringAction nicht abgebrochen wird und der Autofokus innerhalb des Zeitlimits nicht konvergiert. (Ibc2e3)
  • Problem behoben, bei dem Fotos mit der Funktion „Vorschau entbinden“ nicht aufgenommen werden konnten (I1d3a2, b/235119898)
  • Erweiterte Extender-Implementierung aktiviert und die Version der CameraX-Support-Extensions-Schnittstelle auf 1.2 aktualisiert (I92256)

Version 1.2.0-alpha02

1. Juni 2022

androidx.camera:camera-*:1.2.0-alpha02 wird veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Die CameraX Zero-Shutter Lag API wird als experimentell verfügbar gemacht.

API-Änderungen

  • Der neue Aufnahmemodus CAPTURE_MODE_ZERO_SHUTTER_LAG wurde in ImageCapture hinzugefügt und isZslSupported in CameraInfo, um die Gerätefunktion abzufragen. Im CAPTURE_MODE_ZERO_SHUTTER_LAG-Modus wird die Latenz für die sofortige Aufnahme minimiert. Sie basiert auf einem Ringpuffer, in dem Zwischenergebnisse der Aufnahme für die spätere Verarbeitung zwischengespeichert werden, wenn der Nutzer auf die Schaltflächen drückt, um Fotos aufzunehmen. Wenn {@link VideoCapture} gebunden ist oder der Blitzmodus nicht OFF ist oder die OEM-Erweiterung ON ist, wird dieser Modus automatisch deaktiviert. (I9ae74)
  • Methode ImageAnalysis.getBackgroundExecutor() hinzufügen (Icc945)

Fehlerkorrekturen

  • Der Fehler, dass die Taschenlampe bei Verwendung der Methode ImageCapture takePicture auf den betroffenen Geräten ausgeschaltet wird, wurde behoben. (Ib5eb5, b/228272227)
  • Ein Fehler wurde behoben, bei dem AssertionError beim Abrufen des Merkmals CONTROL_ZOOM_RATIO_RANGE nicht verarbeitet wurde.(/Ia248a, b/231701345)

Version 1.2.0-alpha01

18. Mai 2022

androidx.camera:camera-*:1.2.0-alpha01 wird veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Neue Bibliothek „camera-mlkit-vision“ wird eingeführt

Fehlerkorrekturen

  • Problem behoben: QualitySelector zeichnet kein UHD-Video auf, wenn eine Fallback-Strategie aktiviert ist. Das Problem tritt auf, wenn VideoCapture an ImageCapture und die Vorschau auf einem Kameragerät mit FULL- oder höherem Hardwarelevel gebunden ist. Eine Fallback-Strategie von QualitySelector führt dazu, dass VideoCapture fälschlicherweise eine FHD-Auflösung erhält. Die UHD-Auflösung wird für diese Kombination aus Anwendungsfällen unterstützt und sollte verwendet werden. (I0e788, b/230651237)
  • Behoben am ImageCapture.takePicture(): NullPointerException. (I92366, b/230454568, b/229766155)
  • Asynchrones Pausieren von androidx.camera.video.Recorder (Ia8ce8) korrigieren

Camera-Camera2, Camera-Core, Camera-Lifecycle und Camera-Video Version 1.1.0

Version 1.1.0

29. Juni 2022

androidx.camera:camera-*:1.1.0 wird veröffentlicht. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.0.0

  • Die Bibliotheken „Landed View“, „Extension“ und „Video Capture“ sind jetzt als erste RC-Version verfügbar. Ab Version 1.1.0-beta01 haben alle CameraX-Bibliotheken dieselbe Versionsnummer. So können Entwickler Versionen viel einfacher nachverfolgen und die Komplexität großer Versionskompatibilitätsmatrizen wird reduziert.
  • Es wurden neue öffentliche APIs und Funktionen eingeführt, darunter:
  • Fügen Sie die offizielle Kamera-Videobibliothek hinzu, um Anwendungsfälle für die Videoaufnahme zu unterstützen.
  • YUV-zu-RGB-Konvertierung und Drehung (ImageAnalysis.Builder.setOutputImageRotationEnabled und setOutputImageFormat)
  • Unterstützung des Mehrfenstermodus durch die Möglichkeit, dass CameraX-Anwendungen die Kamera fortsetzen, wenn die Kamera durch eine andere App unterbrochen wird und der Fokus zurückkehrt.
  • CameraX funktioniert jetzt auch auf faltbaren Geräten gut, da einige Probleme mit der Vorschau behoben wurden.
  • Es wurde eine CameraState API hinzugefügt, die über CameraInfo verfügbar gemacht wird.
  • Es wurde eine API ProcessCameraProvider.getAvailableCameraInfos() hinzugefügt, mit der Informationen zu den verfügbaren Kameras direkt abgerufen werden können.
  • Ausgabe im JPEG-Format für ImageCapture#OnImageCapturedCallback, wenn Erweiterungen aktiviert sind.
  • Die API isFocusMeteringSupported wurde in CameraInfo hinzugefügt. Damit können Anwendungen prüfen, ob die angegebene FocusMeteringAction von der aktuellen Kamera unterstützt wird.
  • Die getResolutionInfo API wurde bereitgestellt, um die Auflösungsinformationen für die Vorschau, ImageCapture und ImageAnalysis bereitzustellen.
  • Es wurde eine neue API ImageCapture.Builder#setJpegQuality hinzugefügt, mit der die Komprimierungsqualität des ausgegebenen JPEG-Bilds beim Aufnehmen von Fotos geändert werden kann.
  • CameraSelector#filter wurde der öffentlichen API hinzugefügt, um eine Liste von CameraInfos nach einem CameraSelector zu filtern.
  • Die Option Camera2CameraControl.clearCaptureRequestOptions zum Löschen der vorhandenen Optionen für die Erfassungsanfrage wurde hinzugefügt.
  • Es wurde eine experimentelle API für die Verwendung von CameraController mit externen Bildverarbeitungsbibliotheken wie MLKit hinzugefügt.
  • Die experimentelle API CameraInfo#getCameraSelector() wurde hinzugefügt. Sie gibt eine CameraSelector zurück, die für die jeweilige Kamera eindeutig ist.
  • Mehrere experimentelle APIs wurden zu offiziellen öffentlichen APIs hochgestuft.
  • Die Anmerkung @Experimental wurde durch @RequiresOptIn für experimentelle APIs ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle des eingestellten androidx.annotation.experimental.UseExperimental.
  • Die folgenden experimentellen APIs wurden zu offiziellen APIs hochgestuft: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(),
  • @ExperimentalCameraFilter-APIs
  • experimentelle APIs zur Belichtungskorrektur.
  • Die experimentelle UseCaseGroup API für camera-core, camera-lifecycle und camera-video wurde beworben. ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection und ViewPort.Builder#setScaleType zum Anpassen des Viewports hinzugefügt.
  • Die ExperimentalUseCaseGroupLifecycle wurden zu offiziellen öffentlichen APIs befördert.
  • Änderungen an den vorhandenen APIs
  • Zum MediaStoreOutputOptions.getCollectionUri Renamed MediaStoreOutputOptions.getCollection.
  • ActiveRecording wurde in „Aufzeichnung“ umbenannt, um die Länge zu reduzieren.
  • QualitySelector Creator API in eine listenbasierte API geändert

Fehlerkorrekturen

  • Das Problem mit YuvToJpegProcessor EOFException wurde behoben, wenn der Erweiterungsmodus aktiviert und der ImageCapture#CAPTURE_MODE_MAX_QUALITY-Modus festgelegt ist.
  • Die Konfiguration des festen Codecs ist fehlgeschlagen, weil die Videoaufzeichnung beendet wird.
  • Das Problem, dass das Seitenverhältnis von Vorschau und Video beim Aufzeichnen in FHD gestreckt wurde, wurde behoben.
  • Behoben: Audio und Video sind nach dem Pausieren und Fortsetzen auf einigen Geräten nicht synchron
  • Das Problem wurde behoben, bei dem der Blitz beim Tippen zum Fokussieren (startFocusAndMetering) ausgelöst wurde, wenn der Blitzmodus in einer Umgebung mit wenig Licht auf „Automatisch“ oder „Immer an“ eingestellt war.

Version 1.1.0-rc02

1. Juni 2022

androidx.camera:camera-*:1.1.0-rc02 wird veröffentlicht. Version 1.1.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Behoben am ImageCapture.takePicture(): NullPointerException. (I92366, b/230454568, b/229766155)
  • Ein Fehler wurde behoben, bei dem AssertionError beim Abrufen des Merkmals CONTROL_ZOOM_RATIO_RANGE nicht verarbeitet wurde. (Ia248a, b/231701345)

Version 1.1.0-rc01

11. Mai 2022

androidx.camera:camera-*:1.1.0-rc01 wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.

Neue Funktionen

  • Erste RC-Version für „camera-video“, „camera-view“ und „camera-extension“ veröffentlicht

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem der Videocodec nicht freigegeben wurde, wenn VideoCapture<Recorder> entbunden wurde. Dies führte dazu, dass die nachfolgende Verwendung von VideoCapture<Recorder> bei der Aufnahme mit MediaCodec.CodecException fehlschlug, insbesondere auf Geräten mit API 21–22. (Ie7f68)
  • Aufgenommene Bilder von CameraExtensionsActivity werden in ImageCaptureTest nicht gelöscht

Version 1.1.0-beta03

6. April 2022

androidx.camera:camera-*:1.1.0-beta03 wird veröffentlicht. Version 1.1.0-beta03 enthält diese Commits.

API-Änderungen

  • Der Konstruktor CaptureRequestOptions wurde eingeschränkt. (I261b6)
  • Es wurde eine experimentelle API für die Verwendung von CameraController mit externen Bildverarbeitungsbibliotheken hinzugefügt, z. B.MLKit (I4ea71).

Fehlerkorrekturen

  • Ein Problem wurde behoben, durch das die Vorschau in PreviewView seitlich angezeigt wurde, wenn die Aktivität nach dem Drehen von Geräten im Mehrfenstermodus nicht neu gestartet wurde. (I1ea36, b/223488673)
  • Ein Problem mit dem Mehrfenstermodus wurde behoben, bei dem die Kamera nicht fortgesetzt wurde, wenn der Fokus wieder auf die App wechselte, wenn (1) eine andere App mit hoher Priorität eine andere Kamera öffnete und (2) das Gerät ein Samsung-Gerät mit Android 12 war. (I7e9f2)
  • Es wurde eine Problemumgehung für Geräte hinzugefügt, die abstürzen, wenn die Verfügbarkeit von Flash geprüft wird. Auf diesen Geräten ist keine Taschenlampe verfügbar. (If26a3, b/216667482)
  • Das Problem AbstractMethodError wurde behoben, das auftrat, wenn Apps Erweiterungen verwenden und ProGuard aktiviert ist. (I7cbaf, b/222726805)
  • Erzwingen Sie die Deaktivierung des Bokeh-Erweiterungsmodus auf dem Motorola Razr 5G, um das Problem mit dem schwarzen Vorschaubildschirm zu reproduzieren. (I35d49)
  • Das Problem, dass Audio und Video auf einigen Samsung-Geräten vor API 29 nach dem Pausieren und Fortsetzen nicht synchron waren, wurde behoben. (I64622, b/202798609, b/202798572)
  • Das Problem, dass Audio und Video nach dem Pausieren und Fortsetzen auf dem Sony G3125 nicht synchron waren, wurde behoben. (I2a1a5, b/202799148)
  • Ein Fehler wurde behoben, der zum Absturz des Recorders führte, wenn er auf ein InvalidConfigException stieß. Dieser Fix verhindert jedoch nur, dass die App abstürzt, behebt aber nicht die Ursache des InvalidConfigException. Wenn die Recorder immer noch nicht konfiguriert werden kann, erhalten Anwendungen beim Starten der Aufzeichnung einen Fehler-Callback. (I89c29, b/213617227)

Externe Beiträge

  • Die API :compose:ui:ui-test wurde aufgrund der Migration der Test-Coroutines-Bibliothek (I3366d) aktualisiert (updateApi).

Version 1.1.0-beta02

23. Februar 2022

androidx.camera:camera-*:1.1.0-beta02 wird veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.

API-Änderungen

  • Es wurde die Möglichkeit hinzugefügt, die physische Kamera-ID über Camera2Interop anzugeben. (I5aed8)

Fehlerkorrekturen

  • Das Problem mit der gestreckten Vorschau auf dem Oppo Find N (I7d004) wurde behoben.
  • Es wurde ein Problem mit dem Galaxy J7 Prime behoben, bei dem die Vorschau verzerrt war. (I4c500)
  • Verwende eine kompatible Bitrate, um einen Video-Encoder zu finden. (d969052)

Version 1.1.0-beta01

26. Januar 2022

androidx.camera:camera-*:1.1.0-beta01 wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.

Neue Funktionen

  • Ab Version 1.1.0-beta01 haben alle CameraX-Bibliotheken dieselbe Versionsnummer. So können Entwickler Versionen viel einfacher nachverfolgen und die Komplexität großer Versionskompatibilitätsmatrizen wird reduziert.

API-Änderungen

  • Camera2CameraControl.clearCaptureRequestOptions wurde hinzugefügt, um die vorhandenen Optionen für die Aufnahmeanfrage zu löschen. (Ifa07d)

Fehlerkorrekturen

  • Der Absturz beim Aufzeichnen von Videos auf einigen Geräten vor Android O(API 26) wurde behoben. (I88fdf, b/212328261)
  • Das Problem mit der falschen AF-Region bei Verwendung von cameraControl#startFocusAndMetering() auf der nach vorn gerichteten Kamera von Samsung-Geräten wurde behoben (Ifbf59, b/210548792).
  • Die Taschenlampe als Blitz auf dem Pixel 3a/Pixel 3a XL verwenden, um die Geschwindigkeit und die Qualität der aufgenommenen Bilder in dunkler Umgebung zu verbessern (Ib12b6, b/211474332)
  • Aktivierte Anwendungen können die Kamera fortsetzen, wenn die Kamera im Mehrfenstermodus durch eine andere Anwendung mit höherer Priorität unterbrochen wird und der Fokus wieder auf die Anwendung wechselt. Bitte beachten Sie, dass es aufgrund eines Framework-Problems zu einer gewissen Latenz(1 bis 10 Sekunden oder mehr) zwischen Fokusänderungen und dem erneuten Öffnen der Kamera kommen kann. (I4d092)

Version 1.1.0-alpha12

15. Dezember 2021

androidx.camera:camera-*:1.1.0-alpha12 wird veröffentlicht. Version 1.1.0-alpha12 enthält diese Commits.

API-Änderungen

  • Unnötige @RequiresApi(21)-Annotationen aus den inneren Klassen/Schnittstellen wurden entfernt. (I8e286, b/204917951)
  • Die Qualitätskonstanten und Fallback-Strategiekonstanten von QualitySelector werden jetzt durch Klassenobjekte dargestellt. Beispiel: QualitySelector.QUALITY_HD wird in Quality.HD geändert und QualitySelector.FALLBACK_STRATEGY_LOWER in die Instanz, die von FallbackStrategy.lowerQualityOrHigherThan(Quality) zurückgegeben wird. Die API zum Erstellen von QualitySelector wurde in eine listenbasierte API geändert. Die neue API QualitySelector.fromOrderedList(List<Quality>) bezieht sich auf die Reihenfolge der Eingabequalitätsliste und nicht auf die Reihenfolge, die von QualitySelector.Procedure erstellt wurde. Der Kurs „QualitySelector.Procedure“ wurde entfernt. (I43343)
  • PendingRecording.withEventListener() wurde entfernt und der Event-Listener muss jetzt an PendingRecording.start() übergeben werden. Diese Anforderung für Event-Listener soll dazu anregen, asynchrone Fehler zu behandeln, die im VideoRecordEvent.Finalize-Ereignis gemeldet werden. (I1e71d)
  • ActiveRecording wurde in Recording umbenannt, um die Ausführlichkeit zu reduzieren. (I77ceb)

Fehlerkorrekturen

  • Das Problem, dass auf dem Pixel 3a und Pixel 3a XL im FLASH_AUTO-Modus aufgenommene Fotos bei Dunkelheit unterbelichtet sind, wurde behoben (I13f19, b/205373142).
  • Verwenden Sie immer die aktuelle Displaygröße, um die Vorschau Resolution zu bestimmen. (I4a694)
  • Kameras ohne REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE wurden herausgefiltert. Kameras mit REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE haben die Mindestanzahl an Funktionen, die jedes Kameragerät unterstützt. Eine Kamera ohne REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE kann eine Kamera sein, die spezielle Funktionen unterstützt und keine Standardfarbausgabe unterstützt. CameraX kann die Anwendungsfälle Preview, ImageCapture, ImageAnalysis oder VideoCapture für diese Kameras nicht unterstützen. Daher sollten diese Kameras herausgefiltert werden, um eine falsche Verwendung zu verhindern. (Ib8cda)
  • CameraSelector#filter löst nicht mehr die Ausnahme IllegalArgumentException aus, wenn das Ergebnis-Set leer ist. (I27804)
  • Es werden jetzt intelligentere Heuristiken verwendet, um Encoder-Einstellungen basierend auf den vom OEM angegebenen Profilen auszuwählen. (Iaeef0)
  • Bei der Vorschau werden nach dem Start der UHD-Videoaufzeichnung auf dem Pixel 1 verschachtelte Farblinien angezeigt. (I833c6, b/205340278)

Version 1.1.0-alpha11

17. November 2021

androidx.camera:camera-*:1.1.0-alpha11 wird veröffentlicht. Version 1.1.0-alpha11 enthält diese Commits.

API-Änderungen

  • CameraSelector#filter wurde der öffentlichen API hinzugefügt, um eine Liste von CameraInfos basierend auf einem CameraSelector zu filtern. (I105d0)
  • Die API „setOutputImageRotationEnabled“ für die ImageAnalysis-Konfiguration wurde hinzugefügt. Nutzer können die Rotation für den YUV-/RGB-Bildpuffer aktivieren. Der Drehwinkel ist eine relative Drehung, die auf der Grundlage der Sensordrehung und der Zieldrehung berechnet wird, um das Bild nach vorn zu richten.

  • Die API „setOutputImageRotationEnabled“ für die ImageAnalysis-Konfiguration wurde hinzugefügt. Nutzer können die Rotation für den YUV-/RGB-Bildpuffer aktivieren. Der Drehwinkel ist eine relative Drehung, die auf der Grundlage der Sensordrehung und der Zieldrehung berechnet wird, um das Bild nach vorn zu richten.

    Die getSensorToBufferTransformMatrix API wurde in ImageInfo hinzugefügt. Die zurückgegebene Matrix ist eine Zuordnung von Sensorkoordinaten zu Pufferkoordinaten, d. h. vom Wert von CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE zu (0, 0, image.getWidth, image.getHeight). Mithilfe der Matrix können die Koordinaten von einem {UseCase} in einen anderen übertragen werden. Beispiel: Koordinaten des mit ImageAnalysis erkannten Gesichts werden Preview zugeordnet. (I9ff1e)

  • Es wurde eine neue API „ImageCapture.Builder#setJpegQuality“ hinzugefügt, mit der die Komprimierungsqualität des ausgegebenen JPEG-Bilds beim Aufnehmen eines Fotos geändert werden kann. (I8dcf4)

  • MediaStoreOutputOptions.getCollection wurde in MediaStoreOutputOptions.getCollectionUri umbenannt. (I16639)

Fehlerkorrekturen

  • Ein Problem wurde behoben, durch das der Blitz beim Tippen zum Fokussieren (startFocusAndMetering) ausgelöst wurde, wenn der Blitzmodus in einer Umgebung mit wenig Licht auf „Auto“ oder „Immer an“ eingestellt war. (Id4c11)
  • HDR+ auf dem Pixel 2 XL / Pixel 3 XL im Modus MINIMIZE_LATENCY deaktiviert, um die Latenz zu verringern. (Ib6270, b/203505523)

Externe Beiträge

Version 1.1.0-alpha10

13. Oktober 2021

androidx.camera:camera-*:1.1.0-alpha10 wird veröffentlicht. Version 1.1.0-alpha10 enthält diese Commits.

Neue Funktionen

  • androidx.camera:camera-video:1.1.0-alpha10 wurde als erste offizielle Alphaversion für Video veröffentlicht. Es gibt mehrere bekannte Probleme, die in späteren Versionen behoben werden.

API-Änderungen

  • Die Annotation @RequiresApi(21) wurde allen CameraX-Klassen hinzugefügt und „minSdkVersion“ wurde aus „AndroidManifest.xml“ entfernt. Dadurch kann „camera-core“ problemlos in Anwendungen mit einem minSdkVersion unter 21 eingebunden werden, die jedoch bedingt Codepfade verwenden möchten, die auf API 21 und höher basieren. Bei Apps mit minSdkVersion 21 oder höher ist keine Aktion erforderlich. (Ie7f2e, b/200599470)

Fehlerkorrekturen

  • Lösen Sie eine „InitializationException“ aus, damit die App den „AssertionError“ beim Erstellen von „CameraCharacteristics“ ordnungsgemäß verarbeiten kann. (Ibec79)

Version 1.1.0-alpha09

29. September 2021

androidx.camera:camera-camera2:1.1.0-alpha09, androidx.camera:camera-core:1.1.0-alpha09 und androidx.camera:camera-lifecycle:1.1.0-alpha09 sind veröffentlicht. Version 1.1.0-alpha09 enthält diese Commits.

API-Änderungen

  • Die Annotation „ExperimentalUseCaseGroup“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I01ef5)

Fehlerkorrekturen

  • Das Problem, dass aufgenommene Fotos im MAXIMIZE_QUALITY-Modus unscharf sind, wurde behoben. (I173a9, b/193823892)
  • Ein Problem mit dem Samsung Galaxy J5 wurde behoben, bei dem die Kamera hängen blieb, nachdem Fotos mit Blitz in einer dunklen Umgebung aufgenommen wurden (I3aab9).
  • Wenn für ImageCapture ein Zuschneiden erforderlich ist, wird das zugeschnittene Ausgabebild mit der angegebenen JPEG-Qualitätsstufe entsprechend dem festgelegten Aufnahmemodus komprimiert. Wenn der Aufnahmemodus CAPTURE_MODE_MINIMIZE_LATENCY ist, beträgt die JPEG-Komprimierungsqualität 95. Wenn der Aufnahmemodus CAPTURE_MODE_MAXIMIZE_QUALITY ist, beträgt die JPEG-Komprimierungsqualität 100. (Ieb37c, b/142856426)

Version 1.1.0-alpha08

18. August 2021

androidx.camera:camera-camera2:1.1.0-alpha08, androidx.camera:camera-core:1.1.0-alpha08 und androidx.camera:camera-lifecycle:1.1.0-alpha08 sind veröffentlicht. Version 1.1.0-alpha08 enthält diese Commits.

Neue Funktionen

  • Die API „setOutputImageFormat“ für die Konfiguration der Bildanalyse wurde hinzugefügt. Der Nutzer kann ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 oder ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888 auswählen. Standardmäßig ist ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 ausgewählt. (I7902d)

API-Änderungen

  • Die Annotation „ExperimentalUseCaseGroupLifecycle“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I17b85)

Fehlerkorrekturen

  • Das Problem, dass der Vorschaubildschirm auf dem Huawei P20 Lite zu hell ist, wurde behoben. Dieses Problem tritt nur auf, wenn bestimmte spezielle Vorschauauflösungen zusammen mit einem hohen Zoomwert verwendet werden. (Idefce, b/192129158)
  • Es wurde ein Problem behoben, bei dem der Blitz auf einigen Geräten nicht funktionierte, wenn der Blitzmodus kurz vor dem Aufnehmen von Fotos auf FLASH_MODE_ON gesetzt wurde. (Ieb49b)
  • Das Problem, dass die Vorschau beim Aufnehmen von Bildern für eine Weile angehalten wurde, wenn VideoCapture, ImageCapture und Preview gebunden waren, wurde behoben. (I56197, b/193864120)
  • Ermöglicht ImageAnalysis, eine Auflösung von mehr als 1080p auszuwählen. Ein Gerät mit LIMITED-Level kann eine RECORD-Auflösung für ImageAnalysis unterstützen, wenn es zusammen mit Preview und ImageCapture verwendet wird. Die ausgewählte Auflösung für ImageCapture muss auch eine RECORD-Größenauflösung sein. Damit Sie für ImageAnalysis erfolgreich eine RECORD-Größenauflösung auswählen können, muss sowohl für ImageCapture als auch für ImageAnalysis eine RECORD-Größenzielauflösung festgelegt werden. Das bedeutet, dass die Anwendung den Kompromiss versteht und eine höhere Auflösung für die Bildanalyse gegenüber einer MAXIMALEN Auflösung für die Bildaufnahme bevorzugt. Definitionen von RECORD, MAXIMUM und weitere Informationen finden Sie unter https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Die RECORD-Größe bezieht sich auf die maximale unterstützte Aufnahmeauflösung des Kamerageräts, die durch CamcorderProfile bestimmt wird. Die MAXIMALE Größe bezieht sich auf die maximale Ausgabegröße des Kamerageräts für dieses Format oder Ziel aus StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
  • Fügen Sie dem aufgenommenen Bild die EXIF-Informationen hinzu. (I01ff0, b/193342619)
  • Geben Sie in ImageCapture den URI des gespeicherten Bildes zurück, wenn der Speicherort „File“ ist. (Ib5b49, b/149241379)
  • Ein Problem wurde behoben, bei dem mit Blitz aufgenommene Bilder auf vielen Geräten dunkel waren. (I4e510)

Version 1.1.0-alpha07

21. Juli 2021

androidx.camera:camera-camera2:1.1.0-alpha07, androidx.camera:camera-core:1.1.0-alpha07 und androidx.camera:camera-lifecycle:1.1.0-alpha07 sind veröffentlicht. Version 1.1.0-alpha07 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem mit dem Samsung Galaxy Note 5 wurde behoben, bei dem die Kamera hängen blieb, nachdem Fotos mit Blitz in einer dunklen Umgebung aufgenommen wurden (If6871).
  • Das Problem mit der YuvToJpegProcessor-EOFException wurde behoben, wenn der Erweiterungsmodus aktiviert und der ImageCapture#CAPTURE_MODE_MAX_QUALITY-Modus festgelegt ist. (I538bd, b/192017012)

Version 1.1.0-alpha06

30. Juni 2021

androidx.camera:camera-camera2:1.1.0-alpha06, androidx.camera:camera-core:1.1.0-alpha06 und androidx.camera:camera-lifecycle:1.1.0-alpha06 sind veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.

API-Änderungen

  • Bewerben der experimentellen APIs zur Belichtungskorrektur für camera-core (I08ee8)
  • Die API „isFocusMeteringSupported“ wurde in „CameraInfo“ hinzugefügt. Damit können Anwendungen prüfen, ob die angegebene „FocusMeteringAction“ von der aktuellen Kamera unterstützt wird. (Ib45ae, b/188606490)
  • Die API „getResolutionInfo“ wurde bereitgestellt, um die Auflösungsinformationen für „Preview“, „ImageCapture“ und „ImageAnalysis“ bereitzustellen. (I2b613, b/188600718)
  • Die folgenden experimentellen APIs wurden zu offiziellen APIs hochgestuft: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
  • Die CameraProvider-Schnittstelle wurde bereitgestellt, um Zugriff auf eine Reihe von Kameras zu ermöglichen. (I1a7b1)
  • Die experimentelle UseCaseGroup API für camera-core, camera-lifecycle und camera-video wird beworben. ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection und ViewPort.Builder#setScaleType zum Anpassen des Viewports hinzugefügt. (I7cee8)

Version 1.1.0-alpha05

2. Juni 2021

androidx.camera:camera-camera2:1.1.0-alpha05, androidx.camera:camera-core:1.1.0-alpha05 und androidx.camera:camera-lifecycle:1.1.0-alpha05 sind veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.

API-Änderungen

  • Die Klasse Camera2CameraFilter wurde entfernt. Schlage vor, die Kamera über CameraFilter auszuwählen und bei Bedarf CameraCharacteristics oder andere Camera2-bezogene Informationen über Camera2CameraInfo abzurufen. (Ib887c)
  • Die ExperimentalCameraFilter-APIs sind jetzt nicht mehr experimentell, sondern offizielle APIs. Sie können ohne annotiertes Opt-in verwendet werden. (I4bc94)
  • Es wurde eine API für den Kamerastatus hinzugefügt, die über CameraInfo#getCameraState() verfügbar ist. (Ia86b4)
  • Die experimentelle API CameraInfo#getCameraSelector() wurde hinzugefügt, die einen CameraSelector zurückgibt, der für die jeweilige Kamera eindeutig ist (I77f9f).

Fehlerkorrekturen

  • Das Problem, dass ListenableFuture, das in setZoomRatio und setLinearZoom zurückgegeben wird, auf einigen Android 11-Geräten nicht abgeschlossen werden kann, wurde behoben (I716d7).
  • Kamerawechsel beschleunigen und die Fehlerrate des Kamerageräts reduzieren (I34c99)
  • „ExperimentalUseCaseGroupLifecycle“ wurde durch „ExperimentalUseCaseGroup“ ersetzt. (I3b2ef, b/159033688)

Version 1.1.0-alpha04

21. April 2021

androidx.camera:camera-camera2:1.1.0-alpha04, androidx.camera:camera-core:1.1.0-alpha04 und androidx.camera:camera-lifecycle:1.1.0-alpha04 sind veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.

Fehlerkorrekturen

  • Ein Speicherleck wurde behoben, das durch mehrere Threads verursacht wurde, die gleichzeitig auf dieselbe Sammlung zugreifen. Das Speicherleck kann dazu führen, dass die Aktivität oder das Fragment von einer Preview-Instanz beibehalten wird. (I7b4b8)
  • Die Anmerkung @Experimental wurde durch @RequiresOptIn für experimentelle APIs ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle des eingestellten androidx.annotation.experimental.UseExperimental. (Iff226)
  • Das Problem, dass mit ImageCapture bei eingeschaltetem oder automatischem Blitz auf dem Samsung Galaxy S7 ausgewaschene Bilder aufgenommen werden, wurde behoben. (I30001)
  • Es wurde eine CameraState API hinzugefügt, die über CameraInfo verfügbar gemacht wird. (I75392)

Version 1.1.0-alpha03

24. März 2021

androidx.camera:camera-camera2:1.1.0-alpha03, androidx.camera:camera-core:1.1.0-alpha03 und androidx.camera:camera-lifecycle:1.1.0-alpha03 sind veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.

Fehlerkorrekturen

  • Gibt das JPEG-Format für ImageCapture#OnImageCapturedCallback aus, wenn der Erweiterungsmodus aktiviert ist. (I0d7b1)
  • Fehler bei der Initialisierung auf UMIDIGI BISON-Geräten behoben (I57d9e, b/180818665)
  • Es wurde ein Problem behoben, bei dem die Vorschau auf dem Samsung A3 in PreviewView gestreckt dargestellt wurde. (Iacb30, b/180121821)

Version 1.1.0-alpha02

24. Februar 2021

androidx.camera:camera-camera2:1.1.0-alpha02, androidx.camera:camera-core:1.1.0-alpha02 und androidx.camera:camera-lifecycle:1.1.0-alpha02 sind veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.

API-Änderungen

  • Eine API ProcessCameraProvider.getAvailableCameraInfos() wurde hinzugefügt, um Informationen zu den verfügbaren Kameras direkt abzurufen. Das sind entweder alle Kameras des Geräts oder die Kameras, die durch den in CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector) bereitgestellten CameraSelector ausgewählt wurden. (Ieac08)

Fehlerkorrekturen

  • CameraX versucht jetzt, beim ersten Versuch eine Kamera zu öffnen. Das kann dazu führen, dass CameraX die Kamera von anderen Kameraclienten übernimmt, wenn die App eine höhere Priorität hat. (Iab069, b/175820568)
  • Der Robolectric-Test schlägt nicht mehr fehl, wenn „setAvailableCamerasLimiter“ in „CameraXConfig“ verwendet wird. (Ice307)
  • Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt abzustürzen, können andere Anwendungsfälle eingefroren oder langsam sein, z. B. eine eingefrorene oder langsame Vorschau. (Ic12da, b/175851631)
  • Es wurde ein Fehler im ExtensionsErrorListener behoben, der dazu führte, dass Fehler gemeldet wurden, wenn nur Preview oder ImageCapture gebunden war. (I5ae39)
  • Die Leistungsbeeinträchtigung von ImageCapture wurde behoben, indem die Validierung des Speicherorts des Bildes vor der Aufnahme entfernt wurde. Wenn Sie diese Änderung vornehmen und das Speicherziel ungültig ist, dauert es länger, bis Sie die Fehlermeldung erhalten, da das Bild erst nach der Aufnahme gespeichert wird. (I1fd4e, b/177061560)
  • Die Leistungsbeeinträchtigung von ImageCapture mit OutputFileOptions vom Typ „File“ wurde behoben. (I5164a, b/177061560)
  • Die Dokumentation wurde aktualisiert und empfiehlt, ProcessCameraProvider.configureInstance(...) nicht im Bibliothekscode zu verwenden. (Ib8a9f)

Version 1.1.0-alpha01

27. Januar 2021

androidx.camera:camera-camera2:1.1.0-alpha01, androidx.camera:camera-core:1.1.0-alpha01 und androidx.camera:camera-lifecycle:1.1.0-alpha01 sind veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde eine Problemumgehung für zeitweise beschädigte Bilddaten in JPEGs der nach hinten gerichteten Kamera des SM-G930T implementiert. (I52001, b/159831206)
  • Das Problem IllegalArgumentException wurde behoben, das auftrat, wenn alle unterstützten Vorschaubilder kleiner als 640 × 480 Pixel waren und die Displaygröße größer als 640 × 480 Pixel war. (I2a63c, b/150506192)
  • Ressourcen in Bibliotheken ohne explizit deklarierte öffentliche Ressourcen (z. B. über public.xml) sind jetzt standardmäßig privat. (Ia1dcc, b/170882230)

Camera-Camera2, Camera-Core und Camera-Lifecycle Version 1.0.2

Version 1.0.2

29. September 2021

androidx.camera:camera-camera2:1.0.2, androidx.camera:camera-core:1.0.2 und androidx.camera:camera-lifecycle:1.0.2 sind veröffentlicht. Version 1.0.2 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem, dass aufgenommene Fotos im MAXIMIZE_QUALITY-Modus unscharf sind, wurde behoben. (I173a9, b/193823892)
  • Ein Problem wurde behoben, bei dem mit Blitz aufgenommene Bilder auf vielen Geräten dunkel waren. (I4e510)

Camera-Camera2, Camera-Core und Camera-Lifecycle Version 1.0.1

Version 1.0.1

21. Juli 2021

androidx.camera:camera-camera2:1.0.1, androidx.camera:camera-core:1.0.1 und androidx.camera:camera-lifecycle:1.0.1 sind veröffentlicht. Version 1.0.1 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem wurde behoben, dass die in setZoomRatio und setLinearZoom zurückgegebene ListenableFuture auf einigen Android 11-Geräten nicht abgeschlossen werden kann (I716d7).

  • Das Problem, dass die Kamera auf einigen Geräten beim Schließen hängen blieb und eine schwarze Vorschau angezeigt wurde, wurde behoben. (I34c99)

Camera-Camera2, Camera-Core und Camera-Lifecycle Version 1.0.0

Version 1.0.0

5. Mai 2021

androidx.camera:camera-camera2:1.0.0, androidx.camera:camera-core:1.0.0 und androidx.camera:camera-lifecycle:1.0.0 sind veröffentlicht. Version 1.0.0 enthält diese Commits.

Wichtige Funktionen von Version 1.0.0

  • CameraX unterstützt Preview, ImageCapture und Analysis.
  • CameraX verwaltet den Lebenszyklus der Kamera über eine benutzerfreundliche API.
  • CameraX soll eine Kompatibilitätsebene bieten, die viele Probleme im Android-Kamera-Ökosystem behebt.

Bekannte Probleme

Version 1.0.0-rc05

21. April 2021

androidx.camera:camera-camera2:1.0.0-rc05, androidx.camera:camera-core:1.0.0-rc05 und androidx.camera:camera-lifecycle:1.0.0-rc05 sind veröffentlicht. Version 1.0.0-rc05 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem, dass mit ImageCapture bei eingeschaltetem oder automatischem Blitz auf dem Samsung Galaxy S7 ausgewaschene Bilder aufgenommen werden, wurde behoben. (I30001)

Version 1.0.0-rc04

24. März 2021

androidx.camera:camera-camera2:1.0.0-rc04, androidx.camera:camera-core:1.0.0-rc04 und androidx.camera:camera-lifecycle:1.0.0-rc04 sind veröffentlicht. Version 1.0.0-rc04 enthält diese Commits.

Fehlerkorrekturen

  • Fehler bei der Initialisierung auf UMIDIGI BISON-Geräten behoben (I57d9e, b/180818665)

Version 1.0.0-rc03

24. Februar 2021

androidx.camera:camera-camera2:1.0.0-rc03, androidx.camera:camera-core:1.0.0-rc03 und androidx.camera:camera-lifecycle:1.0.0-rc03 sind veröffentlicht. Version 1.0.0-rc03 enthält diese Commits.

Fehlerkorrekturen

  • Formatierungsfehler im Dokument von ProcessCameraProvider#getInstance beheben
  • Der Robolectric-Test schlägt nicht mehr fehl, wenn „setAvailableCamerasLimiter“ in „CameraXConfig“ verwendet wird.
  • Die Leistungsbeeinträchtigung von ImageCapture wurde behoben, indem die Validierung des Speicherorts des Bildes vor der Aufnahme entfernt wurde. Wenn Sie diese Änderung vornehmen und das Speicherziel ungültig ist, dauert es länger, bis Sie die Fehlermeldung erhalten, da das Bild erst nach der Aufnahme gespeichert wird.
  • Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstelle eines Absturzes kann es also sein, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene oder langsame Vorschau.
  • Es wurde eine Problemumgehung für zeitweise beschädigte Bilddaten in JPEGs der nach hinten gerichteten Kamera des SM-G930T implementiert. (I52001, b/159831206)
  • Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt abzustürzen, können andere Anwendungsfälle eingefroren oder langsam sein, z. B. eine eingefrorene oder langsame Vorschau. (Ic12da, b/175851631)
  • Der Robolectric-Test schlägt nicht mehr fehl, wenn „setAvailableCamerasLimiter“ in „CameraXConfig“ verwendet wird. (Ice307)
  • Die Leistungsbeeinträchtigung von ImageCapture wurde behoben, indem die Validierung des Speicherorts des Bildes vor der Aufnahme entfernt wurde. Wenn Sie diese Änderung vornehmen und das Speicherziel ungültig ist, dauert es länger, bis Sie die Fehlermeldung erhalten, da das Bild erst nach der Aufnahme gespeichert wird. (I1fd4e, b/177061560)
  • Die Leistungsbeeinträchtigung von ImageCapture mit OutputFileOptions vom Typ „File“ wurde behoben. (I5164a, b/177061560)

Version 1.0.0-rc02

27. Januar 2021

androidx.camera:camera-camera2:1.0.0-rc02, androidx.camera:camera-core:1.0.0-rc02 und androidx.camera:camera-lifecycle:1.0.0-rc02 sind veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem mit „IllegalArgumentException“ wurde behoben, das auftrat, wenn alle unterstützten Vorschaubilder kleiner als 640 × 480 waren und die Displaygröße größer als 640 × 480 war. (b/150506192)
  • Anzahl der Versuche zum erneuten Öffnen der Kamera begrenzen. Wenn beim Öffnen der Kamera bestimmte Probleme auftreten, versucht CameraX nicht mehr, die Kamera unbegrenzt oft neu zu öffnen, sondern beendet den Vorgang nach 10 Sekunden.I435d2

  • Das Problem IllegalArgumentException wurde behoben, das auftrat, wenn alle unterstützten Vorschaubilder kleiner als 640 × 480 Pixel waren und die Displaygröße größer als 640 × 480 Pixel war. (I2a63c, b/150506192)

Version 1.0.0-rc01

16. Dezember 2020

androidx.camera:camera-camera2:1.0.0-rc01, androidx.camera:camera-core:1.0.0-rc01 und androidx.camera:camera-lifecycle:1.0.0-rc01 sind veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

API-Änderungen

  • CameraFilter und Camera2Filter wurden so geändert, dass sie CameraInfo berücksichtigen. (I6883d)
  • Die experimentelle Klasse Camera2CameraControl wurde hinzugefügt, um die dynamische Interaktion mit Camera2-APIs zu ermöglichen. (I45cf3)
  • Camera2CameraInfo#fromCameraInfo wurde in #from umbenannt. (Ia2bd6)
  • Wir haben der CameraXConfig eine experimentelle setAvailableCamerasLimiter API hinzugefügt, damit Apps die Initialisierungslatenz optimieren können, indem sie die Initialisierung nicht verwendeter Kameras vermeiden. (I6cf88)
  • Die experimentelle Methode CameraXConfig.Builder#setMinimumLoggingLevel() wurde hinzugefügt, um eine Mindestlogebene für CameraX-Logs festzulegen. Wenn nichts anderes festgelegt wird, wird standardmäßig Log#DEBUG verwendet. (Ic3245)

Fehlerkorrekturen

  • Es wurde eine Problemumgehung für zeitweise beschädigte Bilddaten in JPEGs der nach hinten gerichteten Kamera des SM-G930V implementiert. (I5aca5, b/159831206)
  • Das Problem wurde behoben, dass beim Aufnehmen von Bildern keine Ergebnisse angezeigt werden, wenn der Blitz immer aktiviert ist und die Umgebung auf Samsung SM-A716-Geräten dunkel ist. (If98b2, b/172036589)
  • Das Problem, dass die Vorschau nicht durch Aufrufen von Preview.setSurfaceProvider(null) beendet werden konnte, wurde behoben. (I3ac18)
  • Ein Problem mit der Ausrichtung beim Aufnehmen von 4:3-Bildern auf einigen Geräten wurde behoben. (I0e3fb, b/171492111)

Camera Camera2, Core und Lifecycle Version 1.0.0-beta12

11. November 2020

androidx.camera:camera-camera2:1.0.0-beta12, androidx.camera:camera-core:1.0.0-beta12 und androidx.camera:camera-lifecycle:1.0.0-beta12 sind veröffentlicht. Version 1.0.0-beta12 enthält diese Commits.

Fehlerkorrekturen

  • Der automatische Blitz wurde auf Samsung A3-Geräten deaktiviert, um den Absturz zu beheben, der beim Aufnehmen eines Fotos mit dem AE-Modus für den automatischen Blitz auf Samsung A3-Geräten auftrat. (Ia5fe3, b/157535165)
  • Ein Problem, bei dem die Vorschau auf Nexus 4-Geräten mit Android L (API-Ebenen 21 und 22) gestreckt wurde, wurde behoben. (I4d407, b/158749159)
  • Die Implementierung der OnImageCapturedCallback#onCaptureSuccess-Basisklasse schließt das Bild nicht mehr. So soll unerwartetes Verhalten für Entwickler verhindert werden. Entwickler sollten sich nicht darauf verlassen, dass das Bild durch super.onCaptureSuccess geschlossen wird. (Ifbf9c)
  • Die androidx-Variante der Annotation „Experimental“ wurde eingestellt, um die Parität mit Kotlin zu gewährleisten. Sie wurde durch die Annotation „RequiresOptIn“ ersetzt. Der Java-Linter wurde aktualisiert, um sowohl die neue Kotlin-Annotation als auch die neue androidx-Variante zu unterstützen. (I52495, b/151331381)

Camera-Camera2 Version 1.0.0-beta11

14. Oktober 2020

androidx.camera:camera-camera2:1.0.0-beta11 wird veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.

Neue Funktionen

  • Unterstützt die Android 11-CONTROL_ZOOM_RATIO-API für das Zoomen auf Geräten mit Android 11 oder höher, die gültige CONTROL_ZOOM_RATIO_RANGE enthalten. (I62cc6)

Fehlerkorrekturen

  • Das Problem „NumberFormatException“ wurde behoben, das auftrat, wenn die Kamera-ID keine Ganzzahl war. (Ib2228)
  • Die Latenz der CameraX-Initialisierung und von „bindToLifecycle“ wurde verbessert (I61dc5).
  • Für die Erstellung von UseCases ist keine Initialisierung von CameraX erforderlich. Alle implementierungsspezifischen Konfigurationen werden für UseCase festgelegt, sobald er an eine Kamera-Instanz angehängt wird. Für die öffentliche API ist das ProcessCameraProvider.bindToLifecycle(). (Ia5411)
  • <UseCase>.getTargetRotation() gibt Surface.ROTATION_0 zurück, wenn es vor dem Anhängen an eine Kamera-Instanz aufgerufen wird, es sei denn, eine targetRotation wurde im Builder oder UseCase festgelegt. (I80fcd)

Camera-Core-Version 1.0.0-beta11

14. Oktober 2020

androidx.camera:camera-core:1.0.0-beta11 wird veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.

Neue Funktionen - Unterstützung der Android 11-CONTROL_ZOOM_RATIO-API für das Zoomen auf Geräten mit Android 11 oder höher, die gültige CONTROL_ZOOM_RATIO_RANGE enthalten. (I62cc6)

Fehlerkorrekturen

  • Das Problem „NumberFormatException“ wurde behoben, das auftrat, wenn die Kamera-ID keine Ganzzahl war. (Ib2228)
  • Für die Erstellung von UseCases ist keine Initialisierung von CameraX erforderlich. Alle implementierungsspezifischen Konfigurationen werden für UseCase festgelegt, sobald er an eine Kamera-Instanz angehängt wird. Für die öffentliche API ist das ProcessCameraProvider.bindToLifecycle(). (Ia5411)
  • <UseCase>.getTargetRotation() gibt Surface.ROTATION_0 zurück, wenn es vor dem Anhängen an eine Kamera-Instanz aufgerufen wird, es sei denn, eine targetRotation wurde im Builder oder UseCase festgelegt. (I80fcd)

Camera-Core-Version 1.0.0-beta10

23. September 2020

androidx.camera:camera-core:1.0.0-beta10 wird veröffentlicht. Version 1.0.0-beta10 enthält diese Commits.

Fehlerkorrekturen

  • Fehler bei der Validierung des Speicherorts für die Bildaufnahme behoben (I8c565, b/167697553)

Camera-Camera2 Version 1.0.0-beta10

23. September 2020

androidx.camera:camera-camera2:1.0.0-beta10 wird veröffentlicht. Version 1.0.0-beta10 enthält diese Commits.

Fehlerkorrekturen

Camera-Camera2 Version 1.0.0-beta09

16. September 2020

androidx.camera:camera-camera2:1.0.0-beta09 wird veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.

API-Änderungen

  • Anstatt statische Methoden bereitzustellen, wird beim Erstellen von Camera2CameraInfo eine CameraInfo-Instanz verwendet, um Camera2-bezogene Informationen abzurufen. (I5b844)

Fehlerkorrekturen

  • Ein Problem mit dem Zielseitenverhältnis auf Tablets wurde behoben. Wenn das Zielseitenverhältnis auf AspectRatio.RATIO_16_9 festgelegt ist, sollte eine Größe im Verhältnis 16:9 ausgewählt werden. (Ib7fcf, b/151969438)
  • Lösen Sie eine InitializationException aus, damit die App den AssertionError, der beim Erstellen von CameraCharacteristics aufgetreten ist, ordnungsgemäß verarbeiten kann. (I89c8c, b/160524721)
  • Experimentelle Schnittstellen für ExposureCompensation (If96c7) hinzugefügt

Camera-Core-Version 1.0.0-beta09

16. September 2020

androidx.camera:camera-core:1.0.0-beta09 wird veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.

API-Änderungen

  • Der Fehler wurde behoben, bei dem der Darstellungsbereich in UseCaseGroup als „nicht null“ markiert wurde. Entwickler sollten einen Viewport erstellen können, ohne einen Viewport festzulegen. (Ie3d2e)
  • Experimentelle Schnittstellen für ExposureCompensation hinzugefügt (If96c7)
  • Beliebige Zielrotation für die Vorschau zulassen. Die Transformationsinformationen werden dynamisch über einen neuen TranformationInfoListener-Callback berechnet und an den Nutzer zurückgegeben. (I21470)

Fehlerkorrekturen

  • Das Problem, dass der Blitz auf einigen Geräten nicht ausgeschaltet wurde, wurde behoben. Das Problem trat auf, wenn der Blitzmodus zum Aufnehmen eines Bildes auf FLASH_MODE_ON eingestellt und dann auf FLASH_MODE_OFF geändert wurde, während der Blitz ausgelöst wurde. Das Symptom ähnelt dem aktivierten Taschenlampenmodus. (Ib4451, b/162568128)
  • Erzwingt die Verwendung von TextureView für PreviewView, wenn der Erweiterungseffekt aktiviert ist und die Implementierung der Anbieterbibliothek eine spezielle Verarbeitung auf der Ausgabefläche erfordert. (I0c3cc)
  • Das Problem mit dem Activity-/Fragment-Leak wurde behoben, wenn ein Activity-/Fragment-Kontext an ProcessCameraProvider.getInstance(Context) übergeben wird.

Bekannte Probleme

  • Wenn ViewPort festgelegt ist, ist das Zuschneiderechteck von ImageCapture auf Geräten, die den Bildpuffer in HAL drehen, möglicherweise falsch. Dieses Problem wird im nächsten Release behoben.

Camera-Camera2 Version 1.0.0-beta08

19. August 2020

androidx.camera:camera-camera2:1.0.0-beta08 wird veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.

Fehlerkorrekturen

  • Die Methode „bindToLifecycle“ wurde optimiert, damit sie schnell im Hauptthread ausgeführt wird. (I1d57e)
  • DisplayOrientedMeteringPointFactory verwendet eine CameraInfo-Instanz anstelle eines CameraSelector, sodass eine direkte Zuordnung dazu besteht, für welche Kamera die Factory Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, akzeptieren auch eine CameraInfo-Instanz anstelle von CameraSelector. (I400c1)
  • Ein Problem mit der Gruppierung von Seitenverhältnissen bei der automatischen Auflösung wurde behoben. Dabei wurde eine Größe von 864 × 480 (16:9 mod16) ausgewählt, obwohl die Zielauflösung auf 2.016 × 1.080 eingestellt war und eine andere Größe von 1.920 × 1.080 (16:9) unterstützt wurde. (I53167, b/159363774)
  • Problem mit CameraControl behoben, das durch einen Race Condition-Fehler verursacht wurde (I2279f, b/152333890, b/160714166)

Camera-Core-Version 1.0.0-beta08

19. August 2020

androidx.camera:camera-core:1.0.0-beta08 wird veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.

API-Änderungen

  • DisplayOrientedMeteringPointFactory akzeptiert eine CameraInfo-Instanz anstelle einer CameraSelector. So kann direkt zugeordnet werden, für welche Kamera die Fabrik Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, akzeptieren auch eine CameraInfo-Instanz anstelle von CameraSelector. (I400c1)

Fehlerkorrekturen

  • Überschreiben Sie für die Bildaufnahme das Flag „Horizontal spiegeln“ in den Metadaten basierend auf der Kameraausrichtung. (I28499)
  • Die Initialisierung sollte nicht mehr abstürzen, wenn ein Kontext verwendet wird, der kein Anwendungsobjekt von Context.getApplicationContext() zurückgibt. (I3d3c9, b/160817073)

Camera-Camera2 Version 1.0.0-beta07

22. Juli 2020

androidx.camera:camera-camera2:1.0.0-beta07 wird veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem, dass die Vorschau auf Android 5.0-Geräten gestreckt wurde, wurde behoben. (I0c03a)
  • Einige unterstützte JPEG-Größen wurden ausgeschlossen, da sie auf einigen Geräten zu WYSIWYG-Problemen führen. (Ib5128)

Camera-Core-Version 1.0.0-beta07

22. Juli 2020

androidx.camera:camera-core:1.0.0-beta07 wird veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.

API-Änderungen

  • Führe FIT_CENTER, FIT_START und FIT_END mit FIT zusammen. FITbedeutet, dass das zurückgegebene Zuschnittrechteck das maximal mögliche Sensorrechteck ist. (Ia73c3)
  • Das Zuschneiderechteck der Vorschau wird durch den Darstellungsbereich konfiguriert. Nur der Bereich, der vom Zuschneiderechteck abgedeckt wird, sollte für Endnutzer sichtbar sein. (I142a4)

Fehlerkorrekturen

  • Das Problem, dass die Vorschau auf Android 5.0-Geräten gestreckt wurde, wurde behoben. (I0c03a)
  • Das Problem mit der ConcurrentModificationException-Ausnahme beim Aufheben der Bindung von Anwendungsfällen wurde behoben. (I371c0)

Camera-Camera2 Version 1.0.0-beta06

24. Juni 2020

androidx.camera:camera-camera2:1.0.0-beta06 wird veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.

API-Änderungen

  • Experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und CameraCharacteristics hinzugefügt. (I28f61)

Fehlerkorrekturen

  • Das Problem wurde behoben, durch das startFocusAndMetering auf dem Samsung Galaxy S7 nicht richtig fokussierte. (If3be7, b/159039233)
  • Problem behoben: Die Kamera kann nach dem Beenden der App nicht geschlossen werden. (I7a7b3)
  • Problem behoben: Wiederholtes Umschalten der Kamera unterbricht die Vorschau bei Verwendung der SurfaceView-Implementierung von PreviewView (I920ce)
  • CameraControl#startFocusAndMetering schlägt fehl, wenn für keinen der angegebenen MeteringPoint gültige Messrechtecke generiert werden können. (Id53ce)

Camera-Core-Version 1.0.0-beta06

24. Juni 2020

androidx.camera:camera-core:1.0.0-beta06 wird veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.

API-Änderungen

  • Experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und CameraCharacteristics hinzugefügt. (I28f61)

Fehlerkorrekturen

  • CameraX kann jetzt mit ProcessCameraProvider#configureInstance() konfiguriert werden, bevor ProcessCameraProvider#getInstance() aufgerufen wird. So kann CameraXConfig angepasst werden, ohne dass CameraXConfig.Provider in der Application-Klasse der App implementiert werden muss. (Ia1a8d)
  • CameraControl#startFocusAndMetering schlägt fehl, wenn für keinen der angegebenen MeteringPoint gültige Messrechtecke generiert werden können. (Id53ce)

Camera-Camera2 Version 1.0.0-beta05

10. Juni 2020

androidx.camera:camera-camera2:1.0.0-beta05 wird veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem mit Abstürzen beim Starten der App beim Initialisieren von CameraX, wenn sich das Smartphone im Modus „Bitte nicht stören“ befindet, wurde behoben. Ein InitializationException enthält ein CameraUnavailableException, das auf das ListenableFuture des Initialisierungsergebnisses gesetzt wird, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)
  • Der Absturz beim Aufrufen von startFocusAndMetering auf Geräten, auf denen CONTROL_AF_STATE null ist, wurde behoben. (Ife55e, b/157084254)

Camera-Core-Version 1.0.0-beta05

10. Juni 2020

androidx.camera:camera-core:1.0.0-beta05 wird veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.

API-Änderungen

  • Das Problem mit Abstürzen beim Starten der App beim Initialisieren von CameraX, wenn sich das Smartphone im Modus „Bitte nicht stören“ befindet, wurde behoben. Ein InitializationException, das ein CameraUnavailableException enthält, wird auf das ListenableFuture des Initialisierungsergebnisses festgelegt, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)

Fehlerkorrekturen

  • Die Javadocs von setTargetResolution und setTargetRotation wurden aktualisiert. (Iae16f)

Camera-Camera2 Version 1.0.0-beta04

27. Mai 2020

androidx.camera:camera-camera2:1.0.0-beta04 wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.

Fehlerkorrekturen

  • Apps können jetzt beliebige Parameter für die Aufnahmeanfrage von Camera2 über Camera2Interop festlegen, ohne dass es zu einem Absturz kommt. Beachten Sie, dass Probleme auftreten können, wenn Sie Parameter überschreiben. Stabilität und Verhalten können nicht garantiert werden, wenn Parameter mit Camera2Interop überschrieben werden. (Ibe5a1, b/149103700)
  • Die automatische Initialisierung funktioniert jetzt auch, wenn eine App auf einem Gerät mit einer Pseudolokalisierung verwendet wird. (I3bef3, b/154767663)
  • Das konvertierte Fehlerlog für den Anwendungsfall „Getrennt verwendet“ wurde in ein Debug-Log in Camera2CameraImpl umgewandelt. (I1a565, b/154422490)
  • Ein Problem wurde behoben, durch das aufgenommene Bilder manchmal zu dunkel waren, obwohl der Blitz ausgelöst wurde. (I5d9fa, b/149729613)
  • Fehler behoben, durch den der Puffer in ImageProxy ab ImageCapture nicht zurückgespult wurde (I0c455, b/153249512)
  • Die folgenden Probleme wurden behoben, die beim Binden von ImageCapture auftraten: (1) Fotos konnten nicht mit MAX_QUALITY aufgenommen werden. (2) Die Bildqualität war schlecht, weil die automatische Belichtung nicht funktionierte. (I17782, b/145326998)
  • Die Zuverlässigkeit beim erneuten Öffnen der Kamera wurde verbessert, wenn CameraX von einem anderen Prozess oder Codepfad getrennt wird, der die Kamera übernimmt (I1fbc3, b/153714651).

Camera-Core-Version 1.0.0-beta04

27. Mai 2020

androidx.camera:camera-core:1.0.0-beta04 wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.

API-Änderungen

  • Es wird eine experimentelle API, CameraXConfig.Builder#setSchedulerHandler(), zum Festlegen des Handlers hinzugefügt, der intern vom CameraX-Kamerastapel verwendet wird. Diese neue API sollte zusammen mit CameraXConfig.Builder#setCameraExecutor() die vollständige Kontrolle über die Threads ermöglichen, die vom CameraX-Kamerastack verwendet werden. (I7bf32, b/121160431)

Fehlerkorrekturen

  • Behebt einen Absturz in ImageAnalysis, bei dem auf ImageProxy zugegriffen wird, nachdem ImageReaderProxy geschlossen wurde. Außerdem müssen alle von der Analyzer empfangenen ImageProxy geschlossen werden, bevor die ImageReaderProxy geschlossen wird. (I4b299, b/145956416, b/154155377, b/156357269)
  • Der Parameter CameraInfo wurde aus PreviewView#createSurfaceProvider() entfernt. PreviewView ruft ihn jetzt intern aus SurfaceRequest ab. (If18f0, b/154652477)
  • Die automatische Initialisierung funktioniert jetzt auch, wenn eine App auf einem Gerät mit einer Pseudolokalisierung verwendet wird. (I3bef3, b/154767663)
  • Ein Problem wurde behoben, durch das aufgenommene Bilder manchmal zu dunkel waren, obwohl der Blitz ausgelöst wurde. (I5d9fa, b/149729613)
  • Ein Problem mit ImageAnalysis wurde behoben, bei dem mehrere Aufrufe von setAnalyzer/clearAnalyzer dazu führten, dass der Analyzer keine zu analysierenden Bilder empfing. (I6169f, b/151605317, b/153514544)
  • Fehler behoben, durch den der Puffer in ImageProxy ab ImageCapture nicht zurückgespult wurde (I0c455, b/153249512)
  • Das Problem, dass die erste Kamera in der Liste der unterstützten Kameras von CameraManager nicht immer für die Verwendung ausgewählt wird, wurde behoben. (I4c624, b/153418028)
  • Ein zeitweiliger Absturz wurde behoben, der dadurch verursacht wurde, dass durch das Festlegen von Preview.SurfaceProvider die zuvor angeforderte Oberfläche nicht freigegeben wurde. “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation” (I8e4e7, b/155936225)

Camera-Camera2 Version 1.0.0-beta03

15. April 2020

androidx.camera:camera-camera2:1.0.0-beta03 wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Korrekturen zur Unterstützung der Veröffentlichung von camera-core

Camera-Core-Version 1.0.0-beta03

15. April 2020

androidx.camera:camera-core:1.0.0-beta03 wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Eine Regression aus Beta 03 wurde behoben, bei der beim Aufrufen von bindToLifecycle() mit null UseCases eine Ausnahme ausgelöst wurde. Dadurch wurde verhindert, dass eine Camera ohne Bindung einer UseCase abgerufen werden konnte.

Camera-Camera2 Version 1.0.0-beta02

1. April 2020

androidx.camera:camera-camera2:1.0.0-beta02 wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Der ImageInfo.getRotationDegrees() aus dem ImageProxy, der von ImageCapture generiert wurde, wurde korrigiert, damit er mit dem Rotationswert der EXIF-Ausrichtung übereinstimmt. (Id4281, b/150802561)
  • Für die Verwendung der standardmäßigen CameraX-/Camera2-Implementierung ist keine explizite Anordnung der CameraX-Abhängigkeiten in build.gradle mehr erforderlich. In Fällen, in denen die Deklaration strenger Abhängigkeiten erforderlich ist, können jetzt alle CameraX-Abhängigkeiten in die Build-Datei aufgenommen werden. (I46e88)
  • Das IllegalArgumentException-Problem auf Geräten mit einer Anzeigegröße von weniger als 640 × 480 wurde behoben. (Ife3f2, b/150506192)
  • bindToLifecycle wurde korrigiert, sodass der UseCase nur geändert wird, wenn er erfolgreich gebunden wird. Bisher wurde der UseCase aktualisiert, wenn bindToLifecycle aufgerufen wurde, um Berechnungen zur Auflösung durchzuführen. Der UseCase muss jetzt nicht mehr aktualisiert werden, um die Berechnungen durchzuführen (I78d9e).

Camera-Core-Version 1.0.0-beta02

1. April 2020

androidx.camera:camera-core:1.0.0-beta02 wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Der ImageInfo.getRotationDegrees() aus dem ImageProxy, der von ImageCapture generiert wurde, wurde korrigiert, damit er mit dem Rotationswert der EXIF-Ausrichtung übereinstimmt. (Id4281, b/150802561)
  • bindToLifecycle wurde korrigiert, sodass der UseCase nur geändert wird, wenn er erfolgreich gebunden wird. Bisher wurde der UseCase aktualisiert, wenn bindToLifecycle aufgerufen wurde, um Berechnungen zur Auflösung durchzuführen. Der UseCase muss jetzt nicht mehr aktualisiert werden, um die Berechnungen durchzuführen (I78d9e).
  • Ein Problem wurde behoben, bei dem die Aufnahmesitzung des Anwendungsfalls Preview nicht aktualisiert wurde, wenn sich die Vorschauoberfläche nach dem Aufrufen von Preview.setSurfaceProvider() mehr als einmal geändert hat.

Camera-Camera2 Version 1.0.0-beta01

26. Februar 2020

androidx.camera:camera-camera2:1.0.0-beta01 wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.

Fehlerkorrekturen

  • SurfaceRequest.setSurface(Surface) wurde in SurfaceRequest.provideSurface(Surface) und SurfaceRequest.setWillNotComplete() in SurfaceRequest.willNotProvideSurface() umbenannt. (I224fe)
  • Ein Problem wurde behoben, bei dem das Seitenverhältnis eines gespeicherten Bildes nach dem Ändern des Zielrotationswerts mit ImageCapture.setTargetRotation() nicht korrekt war. (I474ea, b/148763432)
  • Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert, indem das Flag beibehalten wurde, mit dem der Standardanbieter CameraXConfig festgelegt wird. (I2d6c1)

Camera-Core-Version 1.0.0-beta01

26. Februar 2020

androidx.camera:camera-core:1.0.0-beta01 wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.

API-Änderungen

  • Das ListenableFuture auf SurfaceRequest.provideSurface() wurde durch ein Executor und Callback ersetzt. Dadurch wird die API vereinfacht, da keine Ausnahmen für provideSurface() mehr behandelt werden müssen. Außerdem wird erzwungen, dass der provideSurface() -Callback nicht abgebrochen werden kann. So werden Abstürze auf älteren Geräten verhindert, die durch das vorzeitige Freigeben von Oberflächen verursacht werden. Das SurfaceRequest.Result-Objekt wird jetzt verwendet, um zu erfassen, wie ein SurfaceRequest die bereitgestellte Surface verwendet. (I7854b)
  • SurfaceRequest.setSurface(Surface) wurde in SurfaceRequest.provideSurface(Surface) und SurfaceRequest.setWillNotComplete() in SurfaceRequest.willNotProvideSurface() umbenannt. (I224fe)

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem das Seitenverhältnis eines gespeicherten Bildes nach dem Ändern des Zielrotationswerts mit ImageCapture.setTargetRotation() nicht korrekt war. (I474ea, b/148763432)
  • Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert, indem das Flag beibehalten wurde, mit dem der Standardanbieter CameraXConfig festgelegt wird. (I2d6c1)
  • Die Dokumentation für die APIs für den Blitzmodus wurde aktualisiert und enthält jetzt mögliche Werte. (I4a3ec)

Camera-Camera2 Version 1.0.0-alpha10

10. Februar 2020

androidx.camera:camera-camera2:1.0.0-alpha10 wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.

Fehlerkorrekturen

  • Die Stabilität auf INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY-Geräten wurde verbessert, indem dafür gesorgt wurde, dass Surface nur für die Dauer der Verwendung durch Camera2 beibehalten werden. (I9dac2)
  • Das Problem mit der unterbelichteten Vorschau auf LEGACY-Geräten wurde behoben, indem CONTROL_AE_TARGET_FPS_RANGE richtig angepasst wurde. (1224638)

Camera-Core-Version 1.0.0-alpha10

10. Februar 2020

androidx.camera:camera-core:1.0.0-alpha10 wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.

API-Änderungen

  • ImageCapture wurde aktualisiert, damit Bilder in Uri und OutputStream gespeichert werden können. Kombinierte überlastete takePicture-Methoden in einer. Die Test-App wurde aktualisiert, sodass Uri als kanonisches Beispiel verwendet wird. (Ia3bec)
  • Preview.PreviewSurfaceProvider wurde in Preview.SurfaceProvider umbenannt. SurfaceProvidererfordern nicht mehr, dass Entwickler ihre eigenen ListenableFutureerstellen. Die Bereitstellung eines Surface erfolgt jetzt über ein neues SurfaceRequest-Objekt. Die Methode Preview.getPreviewSurfaceProvider() wurde entfernt, da sie in Kombination mit anderen Klassen wie PreviewView missbraucht werden kann.Preview (I20105)
  • getTargetRotation() und getTargetName() wurden zu Preview hinzugefügt. (Iceee7)
  • getTargetRotation(), getBackpressureStrategy() und getImageQueueDepth() in ImageAnalysis hinzugefügt. (I9d6d9)
  • getTargetRotation() und getCaptureMode() in ImageCapture() hinzugefügt (I5bc17)
  • Die Argumente, die zuvor in ImageCapture.OnImageSavedCallback.onError() und ImageCapture.OnImageCapturedCallback.onError() übergeben wurden, wurden jetzt durch ein einzelnes Argument ImageCaptureException ersetzt, das weiterhin alle Informationen enthält, die zuvor übergeben wurden.
  • Das zuvor in ImageCapture.OnImageSavedCallback.onImageSaved() übergebene Dateiargument wurde entfernt. (I750d2)
  • Die Klassen Preview und ImageCapture sind jetzt als „final“ gekennzeichnet. (I2500b)
  • Die API wurde aktualisiert. Die Methoden getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() und getLinearZoom() von CameraInfo werden in getZoomState() zusammengeführt, die eine ZoomState-Instanz zurückgibt. (Ib19fe)
  • Die API-Felder OPTION_TARGET_CLASS und OPTION_TARGET_NAME wurden aus CameraXConfig entfernt, da sie nur für die interne Bibliotheksnutzung vorgesehen sind. Der Konstruktor für CameraXConfig.Builder wurde entfernt. (I96912)
  • Die Anforderung, dass die App Application erweitern muss, um CameraX zu initialisieren, wurde entfernt. CameraX wird jetzt mit einer standardmäßigen Camera2-Konfiguration initialisiert, sofern das camera-camera2-Artefakt in der build.gradle der Anwendung enthalten ist. (I58ff5) (b/146923574)

Camera-Camera2 Version 1.0.0-alpha09

22. Januar 2020

androidx.camera:camera-camera2:1.0.0-alpha09 wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.

API-Änderungen

  • Es wurde ein Camera2-Interop-Pfad zum Extrahieren einer Camera2-Kamera-ID hinzugefügt. Sie können die Kamera-ID aus CameraInfo mit Camera2CameraInfo.extractCameraId() extrahieren. Das folgende Codebeispiel zeigt, wie Sie dies verwenden:

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

    Für die Klasse Camera2CameraInfo ist die markerClass ExperimentalCamera2Interop erforderlich.

Camera-Core-Version 1.0.0-alpha09

22. Januar 2020

androidx.camera:camera-core:1.0.0-alpha09 wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.

API-Änderungen

  • Der Parameter SurfaceOrientedMeteringPointFactory useCaseForSurface wurde in useCaseForAspectRatio umbenannt und die Referenzdokumentation wurde erweitert.
  • FocusMeteringAction.Builder.from()-Methoden werden durch die Konstruktoren FocusMeteringAction.Builder() ersetzt.
  • Entfernt: DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float) Anwendungen sollten den Konstruktor verwenden, der einen Display-Parameter akzeptiert, und das aktuelle Display übergeben.
  • Javadoc-Verbesserungen für Fokus- und Mess-APIs in Bezug auf MeteringMode- und 3A-Flags sowie die Verwendung des Parameters Display.
  • Die Referenzdokumentation für setZoomRatio und setLinearZoom wurde erweitert.

Fehlerkorrekturen

  • Es wurden Probleme behoben, die beim Schließen und anschließenden Öffnen von Kameras zu einem Fehler bei der Vorbedingungsprüfung geführt haben.
  • Ein ConcurrentModificationException wurde behoben, das bei der Verwendung von Taschenlampen- und Zoom-APIs auftreten konnte.
  • Ein Problem wurde behoben, durch das jetzt Auflösungen ausgewählt werden, die näher an der angeforderten Auflösung liegen, wenn eine Größe mit mod16-Dimensionen verfügbar ist.
  • Die APIs startFocusMetering und cancelFocusMetering verhalten sich jetzt wie dokumentiert, mit korrekten Zeitangaben und potenziellen Fehlern, wenn sie auftreten.
  • Ein Problem wurde behoben, das auftrat, wenn auf einem Gerät, das solche Größen nicht unterstützt, eine bestimmte Zielauflösung mit einem Zuschneide-Seitenverhältnis angefordert wurde. Wenn verfügbar, wird jetzt eine nicht zugeschnittene Größe mit ausreichender Auflösung ausgewählt, um die ursprüngliche Anfrage zu begrenzen.

Camera-Camera2 Version 1.0.0-alpha08

18. Dezember 2019

androidx.camera:camera-camera2:1.0.0-alpha08 wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

Bekannte Probleme

  • Nicht alle Camera2-Optionen für Erfassungsanfragen funktionieren bei der Verwendung von Camera2-Interop. Wenn die angeforderte Option nicht unterstützt wird, kann die Sitzung nicht gestartet werden und es kann ein Fehler wie dieser auftreten: 09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem nach dem Drehen oder Wechseln der Kamera bei API-Level 21 und 22 ein schwarzer Bildschirm in der Vorschau angezeigt wurde.

API-Änderungen

  • Experimentell: Es wurde ein Camera2-Interop-Pfad zum Extrahieren der Kamera-ID hinzugefügt.

Camera-Core-Version 1.0.0-alpha08

18. Dezember 2019

androidx.camera:camera-core:1.0.0-alpha08 wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

Bekannte Probleme

  • Bei Apps, die PreviewView oder CameraView verwenden, wird möglicherweise eine Vorschau mit dem falschen Seitenverhältnis angezeigt. Das passiert nach dem Pausieren oder Fortsetzen auf einigen FULL-Geräten wie dem Pixel 2.

Fehlerkorrekturen

  • Die Dokumentation für FocusMeteringAction und CameraControl wurde aktualisiert.
  • TorchControl für enableTorch() und getTorchState() implementiert.

API-Änderungen

  • IntDefs wurden ausgeblendet und IntDef-Konstanten wurden aus der IntDef-Definition verschoben.
  • rotationDegrees wurde von der Klasse OnImageCaptureCallback nach ImageInfo verschoben.
  • rotationDegrees wurde von der Klasse Analyzer nach ImageInfo verschoben.

Camera-Camera2 Version 1.0.0-alpha07

4. Dezember 2019

androidx.camera:camera-camera2:1.0.0-alpha07 wird veröffentlicht. Version 1.0.0-alpha07 von camera-camera2 enthält diese Commits

  • Camera2Config kann jetzt zum Initialisieren und Konfigurieren einer Camera2-basierten Implementierung für CameraX verwendet werden. Weitere Informationen zur Verwendung bei der Initialisierung finden Sie in den Versionshinweisen im Abschnitt „camera-core“.
  • Die Camera2-Interop-Funktionalität ist jetzt als experimentell gekennzeichnet und wurde in ein separates Paket verschoben: androidx.camera.camera2.interop.

Camera-Core-Version 1.0.0-alpha07

4. Dezember 2019

androidx.camera:camera-core:1.0.0-alpha07 wird veröffentlicht. Version 1.0.0-alpha07 von camera-core enthält diese Commits

In dieser Alphaversion gibt es einige wesentliche Änderungen, da wir uns auf die Betaphase vorbereiten. Wir empfehlen Ihnen, sich die Änderungen anzusehen und uns Ihr Feedback in der CameraX-Google-Gruppe mitzuteilen. Entwicklern, die CameraX in Apps verwenden, die im Play Store verfügbar sind, empfehlen wir, mit dem Upgrade der Bibliothek in ihren Anwendungen bis zur offiziellen Beta-Version zu warten.

API-Änderungen

  • Wichtig: Die CameraX-Initialisierung hat sich geändert. Anwendungen sollten CameraXConfig.Provider implementieren und die Standard-Camera2Config verwenden, die von androidx.camera.camera2 bereitgestellt wird. Ein typisches Beispiel:

    import androidx.camera.camera2.Camera2Config
    import androidx.camera.core.CameraXConfig
    
    public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
        override fun getCameraXConfig(): CameraXConfig {
                return Camera2Config.defaultConfig(this)
        }
    }
    
  • Die CameraX-Klasse wurde entfernt. Die zuvor über den CameraX-Klassenaufruf bereitgestellten bindToLifecycle()-, unbind()-, unbindAll()-, isBound()- und hasCamera()-Werte sind jetzt über ProcessCameraProvider verfügbar.

  • Eine prozessbezogene Instanz von ProcessCameraProvider wird asynchron mit der statischen Methode ProcessCameraProvider.getInstance() abgerufen. Diese gibt ein „listenable future“ zurück, das bei Abschluss die ProcessCameraProvider bereitstellt. Hier ist sie in onCreate() für eine typische Verwendung dargestellt. Sie können Aufrufe von getInstance() später im Lebenszyklus der Aktivität platzieren, um die Initialisierungslatenz auf einen späteren Zeitpunkt zu verschieben, z. B. wenn durch eine Nutzeraktion eine Kamera-UI geöffnet wird.

    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);
      }
    
  • Der von getInstance() zurückgegebenen ListenableFuture kann ein Listener hinzugefügt werden. So kann der Kameraanbieter aus Future abgerufen werden, ohne dass Future.get() blockiert wird.

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • Die Kameraauswahl erfolgt jetzt über eine Kameraauswahl und nicht mehr pro Anwendungsfall.

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • CameraProvider.bindToLifecycle erhält den Lifecycle-Inhaber, die Kameraauswahl und die Anwendungsfälle, die dann an den angegebenen Lifecycle-Inhaber gebunden sind und für die ausgewählte Kamera ausgeführt werden.

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • Die Klassen für den Anwendungsfall „Config“ wurden entfernt. Stattdessen können Sie Anwendungsfälle direkt erstellen und Optionen für jeden Anwendungsfall-Builder festlegen. Beispiel:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • Der Preview-Anwendungsfall wurde aktualisiert, um eine von der Anwendung erstellte und verwaltete Oberfläche zu akzeptieren, um Android-Best Practices zu gewährleisten. Es wird dringend empfohlen, die im Paket „camera-view“ bereitgestellte Ansichtsklasse PreviewView zu verwenden.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • Informationen zum Anhängen einer von der App verwalteten Oberfläche finden Sie in der Dokumentation. In diesen Fällen verwaltet die App den Lebenszyklus der Oberfläche.

  • Wichtig: Bei der Implementierung der ImageAnalysis-Analysemethode muss image.close() für empfangene Bilder aufgerufen werden, wenn sie nicht mehr verwendet werden. Andernfalls werden möglicherweise keine neuen Bilder empfangen oder die Kamera bleibt hängen, je nach Einstellung des Gegendrucks. Weitere Informationen finden Sie in der Referenzdokumentation.

  • ImageAnalysis ImageReaderMode wurde in eine Backpressure-Strategie intdef geändert.

  • ImageProxy.getImage() ist als experimentell gekennzeichnet. Die Nutzung sollte in Anwendungen beispielsweise über @androidx.camera.core.ExperimentalGetImage annotiert werden.

  • Die Anmerkung „UIThread“ ist für die Analyzer nicht mehr erforderlich.

  • Die Funktion ImageAnalysis.clearAnalyzer() wird zum Entfernen eines Analysators hinzugefügt.

  • Listener mit mehr als einer Methode wurden in „Callback“ umbenannt:

    • ImageCapture.OnImageCapturedListener heißt jetzt ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener heißt jetzt ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener heißt jetzt VideoCapture.OnVideoSavedCallback
  • Enums wurden in IntDef geändert

  • Es wurden Zoomsteuerelemente hinzugefügt:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • CameraInfo.hasFlashUnit() wird hinzugefügt, um festzustellen, ob eine Blitz-/Taschenlampen-Hardware vorhanden ist.

  • CameraInfo.isFlashAvailable() wurde entfernt. Die Taschenlampe überschreibt die Blitzfunktion. Weitere Informationen finden Sie in der Referenzdokumentation.

  • ImageCapture.Metadata-Felder werden durch get/set/is-Accessoren ersetzt.

  • startFocusMetering und cancelFocusMetering geben jetzt ListenableFutures zurück, was den asynchronen Vorgang des Aufrufs darstellt.

  • MeteringPoints fungieren jetzt als Handles für Abrechnungsaktionen und werden von Factories erstellt. Apps sollten die vorhandenen Factories anstelle von benutzerdefinierten Factories verwenden.

Behobene Probleme

  • Ein Problem wurde behoben, das beim Aufnehmen eines Bilds nach dem Fortsetzen auftrat, wenn zuvor angehaltene Aufnahmen noch nicht abgeschlossen waren.
  • Bekanntes Problem: CameraControl.enableTorch() funktioniert, aber der zurückgegebene ListenableFuture<Void> ist immer eine sofortige complete(success)-Zukunft, auch wenn kein Blitzgerät vorhanden ist. In zukünftigen Versionen wird dieses Problem behoben und das endgültige Verhalten implementiert: Wenn kein Blitzgerät vorhanden ist, schlägt enableTorch(true) sofort fehl (es wird keine Anfrage an CaptureSession gesendet) und TorchState bleibt deaktiviert.
  • Bekanntes Problem: startFocusAndMetering und cancelFocusAndMetering starten und beenden die Fokusmessung, geben aber sofort ein completed (success)-Future zurück, das nicht dem dokumentierten Verhalten entspricht. Der FocusMeteringResult von ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() ist ein gefälschtes Ergebnis, das isFocusSuccessful() und immer „false“ ist. Das weicht vom beabsichtigten, dokumentierten Verhalten ab.
  • Bekanntes Problem: Eine Messpunkt-Factory für die Verwendung mit PreviewView-Touch-Ereignissen wird entwickelt. Apps, die benutzerdefinierte verwaltete Oberflächen verbinden, können vorerst die vorhandenen Messpunkt-Factories verwenden. Andernfalls ist für PreviewView keine Touch-Fokus-Funktion verfügbar.

Camera-Camera2 und Camera-Core Version 1.0.0-alpha06

9. Oktober 2019

androidx.camera:camera-camera2:1.0.0-alpha06 und androidx.camera:camera-core:1.0.0-alpha06 werden veröffentlicht. Das sind die Commits, die in camera-camera2:1.0.0-alpha06 enthalten sind, und das sind die Commits, die in camera-core:1.0.0-alpha06 enthalten sind.

Neue Funktionen

Änderungen beim Festlegen von Seitenverhältnissen:

  • setTargetAspectRatioMode() wurde hinzugefügt und akzeptiert ein Enum-Argument. Dadurch wird der Seitenverhältnismodus mit den Optionen RATIO_4_3 oder RATIO_16_9 anstelle eines beliebigen Seitenverhältnisses festgelegt. Dies entspricht eher der Tatsache, dass die Kamera nur bestimmte Seitenverhältnisse und nicht ein beliebiges Verhältnis bereitstellt.
    • Derzeit sind nur die Seitenverhältnisse 16:9 und 4:3 verfügbar. Bei 1:1 ist diese Funktion nur auf bestimmten Geräten über die Kamera und dann auch nur bei begrenzten Auflösungen verfügbar. Bei Anwendungen, die eine 1:1-Schnittstelle oder -Verarbeitung verwenden, sollten die flexibleren Optionen 16:9 oder 4:3 verwendet und die Anzeige zugeschnitten oder eine Unterregion verarbeitet werden.
    • Diese Seitenverhältnisse sind darauf ausgerichtet, die maximale Sensorfläche zu nutzen.
  • getTargetAspectRatio() wurde den APIs zur Konfiguration von Anwendungsfällen hinzugefügt, um das Seitenverhältnis zurückzugeben, für das die Ausgabe des Anwendungsfalls vorgesehen ist.
  • Die Methode setTargetAspectRatio(Rational aspectRatio) wurde für ImageCapture in setTargetAspectRatioCustom(Rational aspectRatio) geändert. Wenn diese Option festgelegt ist, wird die ImageCapture-Ausgabe entsprechend zugeschnitten.

Executor-APIs

  • Die folgenden Funktionen akzeptieren einen Executor-Parameter, mit dem die App steuern kann, auf welchem Executor die Funktion ausgeführt wird.
    • Preview.setOnPreviewOutputUpdateListener() API. Wenn der Executor für diese Funktion nicht vorhanden ist, wird sie im Hauptthread ausgeführt.
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

CameraInfo mit den APIs „Flash Available“ und „Sensor Rotation“ hinzugefügt

  • CameraInfo und eine getCameraInfo-Methode wurden hinzugefügt, mit der Apps prüfen können, ob eine CameraInfo mit Blickrichtung des Objektivs verfügbar ist und ob ein Blitz auf dieser Kamera verfügbar ist. Beispiel:

    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() wurde hinzugefügt. Sie gibt die Ausrichtung des Kamerasensors relativ zur natürlichen Ausrichtung des Geräts oder, zur Vereinfachung, relativ zu einer Ausrichtung an, die durch eine Surface-Drehung beschrieben wird (die eine Ausrichtung relativ zur natürlichen Ausrichtung beschreibt).

API-Änderungen und Fehlerkorrekturen

  • Seitenverhältnisse: Für jeden Anwendungsfall sollten Anwendungen nur setTargetResolution() oder setTargetAspectRatio() aufrufen. Wenn Sie beide für dasselbe Erstellungstool aufrufen, wird ein Fehler zurückgegeben.
    • Im Allgemeinen wird empfohlen, setTargetAspectRatio() basierend auf dem UI-Design der Anwendung zu verwenden. Die konkreten Lösungen hängen vom Anwendungsfall ab. Die Vorschau hat beispielsweise eine ähnliche Auflösung wie der Bildschirm und die Bildaufnahme liefert hochauflösende Fotos. Weitere Informationen finden Sie in der Tabelle mit automatischen Auflösungen.
    • Verwenden Sie setTargetResolution() für spezifischere Fälle, z. B. wenn minimale (zur Einsparung von Rechenleistung) oder maximale Auflösungen (zur Verarbeitung von Details) erforderlich sind.
  • Executor API: Der setCallbackHandler()-Aufruf wurde aus den APIs zur Konfiguration von Anwendungsfällen entfernt. Stattdessen können Anwendungen den Executor als Parameter in verschiedenen anderen APIs festlegen, die einen Rückruf festlegen.
  • Die Null-Annotationen für verschiedene Funktionen wurden aktualisiert.
  • Ein Problem wurde behoben, das beim Öffnen der Kamera zu einem java.lang.IllegalStateException at Camera$StateCallback.onError-Fehler geführt hat.
  • Es wurde ein Problem behoben, bei dem Auflösungen ausgewählt wurden, die zu klein waren (weniger als 640 × 480), wenn die App größere oder Standardauflösungen angefordert hat. Dies führte zu einem blockigen oder verschwommenen Vorschaubild. Anwendungen, die kleinere Auflösungen benötigen, können diese explizit anfordern.
  • Es wurde ein Problem behoben, durch das die Kamera einen schwarzen Bildschirm anzeigte (die Kamera konnte nicht gestartet werden), nachdem sie von einem Intent zurückgekehrt war, der eine andere Kameraanwendung gestartet hatte.
  • Ein Fehler wurde behoben, der beim wiederholten Starten oder Beenden von Apps den folgenden Fehler verursacht hat: java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • Der folgende Fehler, der beim Deaktivieren von „Bildanalyse“ auftritt, wurde behoben: java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
  • Es wurden zusätzliche Tests für den Ablauf beim Trennen der Kamera hinzugefügt.
  • Die Robustheit des Testsystems wurde verbessert, wenn mehrere Kameratests direkt nacheinander ausgeführt werden.

Camera-Camera2 und Camera-Core Version 1.0.0-alpha05

5. September 2019

androidx.camera:camera-camera2:1.0.0-alpha05 und androidx.camera:camera-core:1.0.0-alpha05 werden veröffentlicht. Hier findest du die Commits, die in camera-camera2:1.0.0-alpha05 enthalten sind, und hier die Commits, die in camera-core:1.0.0-alpha05 enthalten sind.

  • API-Änderung: Variablen für Anwendungsfallfehler umbenannt:

    • ImageCapture.UseCaseError wird in ImageCapture.ImageCaptureError umbenannt.
    • VideoCapture.UseCaseError wird in VideoCapture.VideoCaptureError umbenannt.
  • CameraControl API mit Tap-to-Focus-APIs hinzugefügt

    • Es wurde eine API hinzugefügt, mit der ein CameraControl von CameraX für eine Kamera abgerufen werden kann, die nach Ausrichtung des Objektivs ausgewählt wird:

      CameraX.getCameraControl(LensFacing lensFacing)

    • MeteringPointFactory, MeteringPoint, MeteringMode und FocusMeteringAction wurden hinzugefügt, um „Fokus durch Tippen“ auszuführen:

      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 für CameraControl hinzugefügt, um die Fokusmessung zu starten und abzubrechen:

      getCameraControl(lensFacing).startFocusAndMetering(action); getCameraControl(lensFacing).cancelFocusAndMetering();

    • Es wurden APIs für Messstellenfabriken hinzugefügt, die dabei helfen, Tippkoordinaten basierend auf Ansichtsklassen in Sensorkoordinaten zu übersetzen:

      MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView); MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);

  • Erzwingen Sie den Aufruf der folgenden Methoden im Hauptthread (UI) und lösen Sie eine IllegalStateException aus, wenn dies nicht der Fall ist. In zukünftigen Versionen wird die Verwendung in anderen Threads möglich sein und die Serialisierung wird sichergestellt.

    • CameraX.bindToLifecycle()
    • CameraX.unbind()
    • CameraX.unbindAll()
    • ImageAnalysis.setAnalyzer()
    • ImageAnalysis.getAnalyzer()
    • ImageAnalysis.removeAnalyzer()
    • Preview.removePreviewOutputListener()
    • Preview.getOnPreviewOutputUpdateListener()
    • Preview.setOnPreviewOutputUpdateListener()
  • Für verschiedene Konfigurationseinstellungen sind jetzt Nullparameter zulässig und entsprechende Getter können „null“ zurückgeben.

  • Ein Problem beim Testen auf Emulatoren, die keine AF-/AE-/AWB-Einstellungen unterstützen, wurde behoben.

  • Ein Absturzfehler beim Drehen während der Bildanalyse wurde behoben.

  • Ein Fehler wurde behoben, durch den die Vorschau beim Starten, nach dem Drehen oder beim Wechseln zwischen Front- und Rückkamera schwarz angezeigt wurde (keine Kameradaten).

  • Tests für mehrere gleichzeitige Anwendungsfälle für die Bildanalyse wurden entfernt. Um die Kompatibilität zu gewährleisten, sollten Anwendungen nur einen Anwendungsfall für die Bildanalyse anhängen.

  • Erste Robolectric-Tests für die gefälschte Kamera in der Kamera-Testsuite hinzugefügt (WIP).

  • Der Camera2Inititalizer-Test wurde entfernt, da seine Abdeckung unklar/irreführend war.

Camera-Camera2 und Camera-Core Version 1.0.0-alpha04

7. August 2019

androidx.camera:camera-camera2:1.0.0-alpha04 und androidx.camera:camera-core:1.0.0-alpha04 werden veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.

Neue Funktionen

Änderungen bei der Auswahl von Seitenverhältnis und Auflösung

Ziel von CameraX ist es, eine Kamerasitzung erfolgreich zu initialisieren. Das bedeutet, dass CameraX die Auflösung und das Seitenverhältnis basierend auf den Gerätefunktionen anpasst, um eine Aufnahmesitzung zu starten. Daher werden genaue Anfragen möglicherweise nicht berücksichtigt. Mögliche Ursachen:

  • Geräte, die die angeforderte Auflösung nicht unterstützen
  • Kompatibilitätsprobleme, z. B. auf LEGACY-Geräten, auf denen bestimmte Auflösungen verwendet werden müssen, damit sie richtig funktionieren
  • Auf einigen Geräten sind bestimmte Formate nur bei bestimmten Seitenverhältnissen verfügbar.
  • Eine Präferenz für „nearest mod16“ für die JPEG- oder Videocodierung. Siehe CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP

Obwohl CameraX die Sitzung erstellt und verwaltet, sollten Sie immer die zurückgegebenen Bildgrößen in der Ausgabe des Anwendungsfalls in Ihrem Code prüfen und entsprechend anpassen.

Es wurden einige Änderungen an der Festlegung von Auflösungen und Seitenverhältnissen vorgenommen, um die API verständlicher zu gestalten:

  • Für den Vorschau-Anwendungsfall wird jetzt standardmäßig ein Seitenverhältnis von 4:3 verwendet, wenn keines festgelegt ist.
  • Wenn CameraX intern Änderungen an angeforderten Auflösungen und Seitenverhältnissen basierend auf der Gerätefunktion vornimmt, wird zuerst versucht, das gleiche Seitenverhältnis beizubehalten (wie durch setTargetAspectRatio- oder setTargetResolution-Aufrufe bestimmt).
  • Eine „Nearest mod16“-Version der Auflösung wird als dasselbe Seitenverhältnis betrachtet.

ImageAnalysis Non-Blocking Mode

  • Das Verhalten von ImageReaderMode.ACQUIRE_LATEST_IMAGE ist jetzt nicht blockierend. Es wird das neueste Bild in der Warteschlange abgerufen, aber ungenutzte Bilder werden kontinuierlich verworfen, damit die Kamerapipeline nicht blockiert wird.
  • Der Analyzer kann ein einzelnes Bild auf unbestimmte Zeit speichern, ohne die Pipeline zu blockieren.
  • Wenn die Anwendung einen Executor bereitstellt, der dann blockiert wird, wird der ImageAnalysis-Anwendungsfall blockiert.
  • Der standardmäßige Executor-Satz verhält sich intern wie ein nicht blockierender Executor.

Fehlerkorrekturen

  • Es wurden Zeitüberschreitungsprobleme behoben, die beim Warten auf die 3A-Konvergenz beim Aufnehmen von Bildern auf Geräten ohne Autofokus, automatische Belichtung und automatischen Weißabgleich auftraten.
  • Ein Problem beim schnellen Aufnehmen von Bildern mit ImageCapture wurde behoben. Fehlerkorrekturen: java.lang.IllegalStateException: maxImages (2) has already been acquired
  • Ein Problem wurde behoben, bei dem setLensFacing für einen Anwendungsfall nicht aufgerufen wurde, was zu java.lang.IllegalArgumentException: Unable to get camera ID for use case führte.
  • Ein Problem wurde behoben, bei dem für LEGACY-Geräte ein bestimmtes Seitenverhältnis als maximale JPEG-Auflösung erforderlich war.
  • Ein Problem wurde behoben, das beim Minimieren der App während des Öffnens der Kamera auftrat.
  • Problem bei API < 25 behoben, Fehler checkAndUpdateEglState: invalid current EGLDisplay entfernt
  • Ein Problem wurde behoben, das beim Aufheben der Bindung der Vorschau nach dem Aktivieren und Starten von Erweiterungen auftrat.
  • Build-Artefakte für die Kameraansicht und Kameraerweiterungen werden jetzt als Alphaversionen veröffentlicht.

Camera-Camera2 und Camera-Core Version 1.0.0-alpha03

2. Juli 2019

androidx.camera:camera-core:1.0.0-alpha03 und androidx.camera:camera-camera2:1.0.0-alpha03 werden veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

API-Änderungen

  • Javadoc-Klarstellung für „target“ in setTarget-Konfigurationsaufrufen hinzugefügt

Camera-Core

  • Absturz der nicht konfigurierten Ein-/Ausgabeoberfläche bei schnellem Öffnen/Schließen oder Binden/Entbinden behoben
  • Zu neuen Futures-Implementierungen wechseln
  • Korrekturen testen, um die Tests robuster zu machen
  • Im Core-Integrationstest wird jetzt die Aufnahmezeit für Fotos angezeigt
  • Interne Kompatibilitätsklasse für Executors entwickelt
  • Die Timing-Test-App wartet, bis die vorherige Aufnahme abgeschlossen ist, bevor sie Bilder aufnimmt. Außerdem wurde die Stabilität verbessert.

Erweiterungen

  • Versionsprüfungen hinzugefügt
  • Zusätzliche Testabdeckung – Erweiterungsereignis-Callbacks
  • Verbesserungen bei intern übereinstimmenden Bildern und Metadaten
  • Fehlerbehebungen beim Wechseln des Modus in der Test-App

Camera-Camera2 und Camera-Core Version 1.0.0-alpha02

5. Juni 2019

androidx.camera:camera-core:1.0.0-alpha02 und androidx.camera:camera-camera2:1.0.0-alpha02 werden veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

Fehlerkorrekturen

  • Problem mit Division durch null bei Verwendung des Emulators behoben
  • Der Fehler „NullPointerException/Surface Abandoned“ wurde behoben, der auf einigen Geräten aufgetreten ist, wenn schnell Fotos aufgenommen wurden, während Anwendungsfälle schnell entbunden und neu gebunden wurden.
  • Ein internes Problem wurde behoben, damit sich Aktualisierungen von Erfassungsanfragen einheitlich auf alle Oberflächen auswirken.
  • Stabilitätsverbesserungen beim Neustarten von Anwendungsfällen in neuen App-Instanzen
  • Interne Architekturänderungen zur Vorbereitung auf die Unterstützung von Executors in der API
  • Zusätzliche Javadoc-Klarstellungen zur CameraX-Klasse und zur Lebenszyklusverwaltung
  • Instrumentierte Tests für die Antelope-Leistungstest-App hinzugefügt
  • Entfernen der Notwendigkeit von „-keepattributes Signature“ in der Proguard-Konfiguration der App

Camera-Camera2 und Camera-Core 1.0.0-alpha01

7. Mai 2019

androidx.camera:camera-core:1.0.0-alpha01 und androidx.camera:camera-camera2:1.0.0-alpha01 werden veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.

Camera-Lifecycle-Version 1.0.0-beta11

14. Oktober 2020

androidx.camera:camera-lifecycle:1.0.0-beta11 wird veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.

Fehlerkorrekturen

  • <UseCase>.getTargetRotation() gibt Surface.ROTATION_0 zurück, wenn es vor dem Anhängen an eine Kamera-Instanz aufgerufen wird, es sei denn, eine targetRotation wurde im Builder oder UseCase festgelegt. (I80fcd)

Camera-Lifecycle Version 1.0.0-beta10

23. September 2020

androidx.camera:camera-lifecycle:1.0.0-beta10 wird veröffentlicht. Version 1.0.0-beta10 enthält diese Commits.

Fehlerkorrekturen

Camera-Lifecycle Version 1.0.0-beta09

16. September 2020

androidx.camera:camera-lifecycle:1.0.0-beta09 wird veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.

Camera-Lifecycle Version 1.0.0-beta08

19. August 2020

androidx.camera:camera-lifecycle:1.0.0-beta08 wird veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.

Fehlerkorrekturen

  • Die Initialisierung sollte nicht mehr abstürzen, wenn ein Kontext verwendet wird, der kein Anwendungsobjekt von Context.getApplicationContext() zurückgibt. (I3d3c9, b/160817073)

Camera-Lifecycle Version 1.0.0-beta07

22. Juli 2020

androidx.camera:camera-lifecycle:1.0.0-beta07 wird veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.

Camera-Lifecycle Version 1.0.0-beta06

24. Juni 2020

androidx.camera:camera-lifecycle:1.0.0-beta06 wird veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.

API-Änderungen

  • CameraX kann jetzt mit ProcessCameraProvider#configureInstance() konfiguriert werden, bevor ProcessCameraProvider#getInstance() aufgerufen wird. So kann die CameraXConfig angepasst werden, ohne dass CameraXConfig.Provider in der Application-Klasse der App implementiert werden muss. (Ia1a8d)

Camera-Lifecycle Version 1.0.0-beta05

10. Juni 2020

androidx.camera:camera-lifecycle:1.0.0-beta05 wird veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem mit Abstürzen beim Starten der App beim Initialisieren von CameraX, wenn sich das Smartphone im Modus „Bitte nicht stören“ befindet, wurde behoben. Ein InitializationException, das ein CameraUnavailableException enthält, wird auf das ListenableFuture des Initialisierungsergebnisses festgelegt, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)

Camera-Lifecycle Version 1.0.0-beta04

27. Mai 2020

androidx.camera:camera-lifecycle:1.0.0-beta04 wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.

Camera-Lifecycle Version 1.0.0-beta03

15. April 2020

androidx.camera:camera-lifecycle:1.0.0-beta03 wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Eine Regression aus Beta 03 wurde behoben, bei der beim Aufrufen von bindToLifecycle() mit null UseCases eine Ausnahme ausgelöst wurde. Dadurch wurde verhindert, dass eine Camera ohne Bindung einer UseCase abgerufen werden konnte.
  • Korrekturen zur Unterstützung der Veröffentlichung von camera-core

Camera-Lifecycle Version 1.0.0-beta01

26. Februar 2020

androidx.camera:camera-lifecycle:1.0.0-beta01 wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.

Fehlerkorrekturen

  • Die Dokumentation wurde korrigiert, um darauf hinzuweisen, dass bei der Initialisierung eines ProcessCameraProvider eine Standardkonfiguration verwendet wird und dass die Erweiterung von Application optional ist. (I5e395)

Camera-Lifecycle Version 1.0.0-beta02

1. April 2020

androidx.camera:camera-lifecycle:1.0.0-beta02 wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Aktualisiert, um die Fehlerkorrekturen in den Artefakten camera-camera2:1.0.0-beta02 und camera-core:1.0.0-beta02 zu unterstützen.

Camera-Lifecycle Version 1.0.0-alpha10

10. Februar 2020

androidx.camera:camera-lifecycle:1.0.0-alpha10 wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.

API-Änderungen

  • Die Annotation @MainThread wurde den Methoden „BindToLifecycle“, „unbind“ und „unbindAll“ hinzugefügt. (I990d2)

Camera-Lifecycle Version 1.0.0-alpha03

22. Januar 2020

androidx.camera:camera-lifecycle:1.0.0-alpha03 wird veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

Updates

  • Verschiedene Fehlerkorrekturen und Updates zur Unterstützung von Camera Core- und Camera2-Änderungen.

Camera-Lifecycle Version 1.0.0-alpha02

18. Dezember 2019

androidx.camera:camera-lifecycle:1.0.0-alpha02 wird veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

Änderungen an Abhängigkeiten

  • Aktualisiert, um androidx.camera:camera-core:1.0.0-alpha08 zu verwenden.

Camera-Lifecycle Version 1.0.0-alpha01

4. Dezember 2019

androidx.camera:camera-lifecycle:1.0.0-alpha01 wird veröffentlicht. Version 1.0.0-alpha01 von camera-lifecycle enthält diese Commits

API-Hinweise

  • Das Artefakt für den Kameralebenszyklus wird hinzugefügt und bietet die LifeCycleCameraProvider-Schnittstelle und eine Implementierung namens ProcessCameraProvider, die viele der Funktionen der vorherigen CameraX-Klasse im Core bietet und über eine getInstance()-Methode abgerufen wird.
  • Apps sollten die CameraX-Bibliothek für den Kameralebenszyklus enthalten, um CameraX zu verwenden.
  • Hinweise zur Initialisierung von CameraX mit einem ProcessCameraProvider finden Sie im Abschnitt camera-core.

Kamera-Erweiterungen und Kameraansicht Version 1.0.0

Version 1.0.0-alpha32

15. Dezember 2021

androidx.camera:camera-extensions:1.0.0-alpha32 und androidx.camera:camera-view:1.0.0-alpha32 werden veröffentlicht. Version 1.0.0-alpha32 enthält diese Commits.

API-Änderungen

  • Unnötige @RequiresApi(21)-Annotationen aus den inneren Klassen/Schnittstellen wurden entfernt. (I8e286, b/204917951)
  • API-Dateien für das Artefakt „camera-extensions“ aktualisieren (If683a, b/161377155)

Fehlerkorrekturen

  • Verhindert, dass die App Erweiterungsmodi aktiviert, wenn VideoCapture gebunden wird. CameraX-Erweiterungen unterstützen nur ImageCapture und Preview. VideoCapture kann noch nicht unterstützt werden. Wenn die App VideoCapture bindet und einen Erweiterungsmodus aktiviert, wird eine IllegalArgumentException ausgelöst. (I0d87b)
  • CameraSelector#filter löst nicht mehr die Ausnahme IllegalArgumentException aus, wenn das Ergebnis-Set leer ist. (I27804)
  • Die ExtensionsManager#getInstance API wurde in getInstanceAsync umbenannt, da sie ListenableFuture zurückgibt. Das Suffix „Async“ im Funktionsnamen macht deutlich, dass es sich um eine asynchrone Funktion handelt. (I279d2)
  • Entfernen Sie den Auflösungsparameter aus der ExtensionsManager#getEstimatedCaptureLatencyRange API, da Nutzer nicht wissen können, welche Größen für den ImageCapture-Anwendungsfall unterstützt werden, und nicht unterscheiden können, ob sich die zurückgegebenen Latenzinformationen auf die maximale Erfassungs-Ausgabegröße oder den Eingabeauflösungsparameter beziehen. (I74bb2)
  • Verschieben Sie den Parameter CameraProvider der Funktionen ExtensionsManager in die getInstance() API. So müssen Nutzer den Parameter CameraProvider nicht jedes Mal eingeben, wenn sie die ExtensionsManager-Funktionen aufrufen. (Ic7e48)

Version 1.0.0-alpha31

17. November 2021

androidx.camera:camera-extensions:1.0.0-alpha31 und androidx.camera:camera-view:1.0.0-alpha31 werden veröffentlicht. Version 1.0.0-alpha31 enthält diese Commits.

API-Änderungen

  • CameraSelector#filter wurde der öffentlichen API hinzugefügt, um eine Liste von CameraInfos basierend auf einem CameraSelector zu filtern. (I105d0)

Fehlerkorrekturen

  • Ein Absturz wurde behoben, der auf bestimmten Geräten beim schnellen Wechseln des Erweiterungsmodus auftrat. (Iebbef)

Version 1.0.0-alpha30

13. Oktober 2021

androidx.camera:camera-extensions:1.0.0-alpha30 und androidx.camera:camera-view:1.0.0-alpha30 werden veröffentlicht. Version 1.0.0-alpha30 enthält diese Commits.

API-Änderungen

  • Der Annotation @RequiresApi(21) wurde allen CameraX-Klassen hinzugefügt und minSdkVersion wurde aus AndroidManifest.xml entfernt. Dadurch kann „camera-core“ problemlos in Anwendungen mit einem minSdkVersion unter 21 eingebunden werden, die jedoch bedingt Codepfade verwenden möchten, die auf API 21 und höher basieren. Bei Apps mit minSdkVersion 21 oder höher ist keine Aktion erforderlich. (Ie7f2e, b/200599470)

Fehlerkorrekturen

  • Das Problem „AbstractMethodError“ wurde behoben, das auftritt, wenn ProGuard aktiviert ist. (Iae468, b/201177844)

Version 1.0.0-alpha29

29. September 2021

androidx.camera:camera-extensions:1.0.0-alpha29 und androidx.camera:camera-view:1.0.0-alpha29 werden veröffentlicht. Version 1.0.0-alpha29 enthält diese Commits.

API-Änderungen

  • Die Annotation „ExperimentalUseCaseGroup“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I01ef5)
  • RotationProvider#removeAllListeners() entfernen. Verwenden Sie stattdessen RotationProvider#removeListener(...). (Id9d4a)
  • Die Klasse „RotationReceiver“ wurde aktualisiert: „set/clear Listener“ wurde in „add/remove/removeAll“ geändert, die „setListener“-Variante, die standardmäßig den Hauptthread verwendet, wurde entfernt und Methoden wurden mit Anmerkungen versehen. (Ib1669)

Fehlerkorrekturen

  • ExtensionMode#BEAUTY wurde in FACE_RETOUCH umbenannt, um die Funktion des Erweiterungsmodus korrekt darzustellen. (I61f54, b/198515274)
  • Das Problem, dass die Kamera unerwartet geschlossen wurde, wenn mehrere CameraController und PreviewView in einer Activity verwendet wurden, wurde behoben. (Ibfd18, b/197539358)

Version 1.0.0-alpha28

18. August 2021

androidx.camera:camera-extensions:1.0.0-alpha28 und androidx.camera:camera-view:1.0.0-alpha28 werden veröffentlicht. Version 1.0.0-alpha28 enthält diese Commits.

API-Änderungen

  • Die Annotation „ExperimentalUseCaseGroupLifecycle“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I17b85)
  • RotationListener wurde umgestaltet und in RotationProvider umbenannt. Sie bietet weiterhin dieselbe Funktion, aber mit einer leicht anderen API. (Idffc5)
  • Benennen Sie TAP_TO_FOCUS_UNSUCCESSFUL in TAP_TO_FOCUS_NOT_FOCUSED und TAP_TO_FOCUS_SUCCESSFUL in TAP_TO_FOCUS_FOCUSED um. OutputSize als „final“ festgelegt (I099fa)

Fehlerkorrekturen

  • Die eingestellten <EffectName><UseCase>Extender-Klassen, ExtensionsErrorListener und zugehörige ExtensionsManager-APIs wurden entfernt. (I3b8c3)

Version 1.0.0-alpha27

21. Juli 2021

androidx.camera:camera-extensions:1.0.0-alpha27 und androidx.camera:camera-view:1.0.0-alpha27 werden veröffentlicht. Version 1.0.0-alpha27 enthält diese Commits.

API-Änderungen

  • Die Viewport API ist nicht mehr experimentell. Entfernen Sie die experimentelle Anmerkung der API. (I717ea)
  • CoordinateTransform#getTransform wurde in CoordinateTransform#transform umbenannt und JavaDoc wurde aktualisiert (I864ae)

Fehlerkorrekturen

  • Das Problem mit dem Strecken im PreviewView PERFORMANCE-Modus bei der Verwendung zusammen mit Compose UI wurde behoben. (Ie1137, b/183864890)

Version 1.0.0-alpha26

30. Juni 2021

androidx.camera:camera-extensions:1.0.0-alpha26 und androidx.camera:camera-view:1.0.0-alpha26 werden veröffentlicht. Version 1.0.0-alpha26 enthält diese Commits.

API-Änderungen

  • Fügen Sie eine neue Methode CameraController#getTapToFocusState() hinzu, die das letzte Ergebnis von „Tippen zum Fokussieren“ verfügbar macht. (Iaccb0)
  • CameraController wurden weitere Kamera-Kernfunktionen hinzugefügt: Getter/Setter für das Ziel-Seitenverhältnis, die Zielauflösung, den Aufnahmemodus, CameraControl und benutzerdefinierte Executors. (Iea8f2)
  • Fügen Sie eine RotationReceiver-Klasse hinzu, die Änderungen an der Oberflächenrotation empfängt. Damit kann die Zielrotation festgelegt werden, wenn sich das Gerät im festen Hoch- oder Querformat befindet. (Ib278f)
  • Es wurden neue öffentliche APIs vom Typ „getEstimatedCaptureLatencyRange“ in der ExtensionsManager-Klasse bereitgestellt. (I6a8ec)
  • Deprecated ExtensionsErrorListener. Derzeit wird diese Schnittstelle nur verwendet, um zu prüfen, ob eine Vorschau oder ImageCapture fehlt, wenn Erweiterungsmodi aktiviert werden. CameraX fügt automatisch eine zusätzliche Vorschau oder ImageCapture hinzu, damit die Erweiterungsfunktionen gut funktionieren. Danach wird über diese Schnittstelle kein Fehler mehr gemeldet. (I47d9e)
  • Die öffentlichen APIs „ExtensionsManager getInstance“, „isExtensionAvailable“ und „getExtensionEnabledCameraSelector“ wurden eingeführt und die alten <EffectName><UseCase>Extender-Klassen und zugehörigen APIs wurden eingestellt. (I329e6)

Version 1.0.0-alpha25

2. Juni 2021

androidx.camera:camera-extensions:1.0.0-alpha25 und androidx.camera:camera-view:1.0.0-alpha25 werden veröffentlicht. Version 1.0.0-alpha25 enthält diese Commits.

API-Änderungen

  • Die experimentellen CameraFilter-APIs sind jetzt nicht mehr experimentell und werden zu offiziellen APIs. Sie können ohne annotiertes Opt-in verwendet werden. (I4bc94)
  • Fügen Sie ein Tool hinzu, mit dem Koordinaten zwischen Anwendungsfällen transformiert werden können. Beispiel für die Verwendung: Transformieren der im Anwendungsfall „ImageAnalysis“ erkannten Koordinaten und Hervorheben des erkannten Objekts in der Vorschau. (I63ab1, b/137515129)
  • CameraView wurde entfernt. CameraView wurde durch CameraController ersetzt. Weitere Informationen zur Migration (Id5005)

Fehlerkorrekturen

  • ExperimentalUseCaseGroupLifecycle wurde durch ExperimentalUseCaseGroup ersetzt. (I3b2ef, b/159033688)

Version 1.0.0-alpha24

21. April 2021

androidx.camera:camera-extensions:1.0.0-alpha24 und androidx.camera:camera-view:1.0.0-alpha24 werden veröffentlicht. Version 1.0.0-alpha24 enthält diese Commits.

Fehlerkorrekturen

  • Die Anmerkung @Experimental wurde durch @RequiresOptIn für experimentelle APIs ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle des eingestellten androidx.annotation.experimental.UseExperimental. (Iff226)
  • Das Problem mit der gestreckten PreviewView auf dem Samsung J5 Prime wurde behoben (Ib10b6).

Kamera-Erweiterungen und Ansicht Version 1.0.0-alpha23

24. März 2021

androidx.camera:camera-extensions:1.0.0-alpha23 und androidx.camera:camera-view:1.0.0-alpha23 werden veröffentlicht. Version 1.0.0-alpha23 enthält diese Commits.

API-Änderungen

  • CameraView wird eingestellt. Verwenden Sie stattdessen LifecycleCameraController. Migrationsanleitung (Idac2c)
  • Die Annotation „FloatRange“ wurde zu „setLinearZoom()“ hinzugefügt (I69971).

Fehlerkorrekturen

  • Abhängigkeiten der angepinnten Kameraansicht, die auf 1.0.0-Artefakten basieren. Die Abhängigkeit von „camera-view“ führt nicht mehr dazu, dass die Abhängigkeitsauflösung von Gradle „camera-core“, „camera-camera2“ und „camera-lifecycle“ automatisch auf die neuesten 1.1.0-Artefakte aktualisiert. „camera-view“ ist jedoch weiterhin mit diesen Artefakten kompatibel, wenn sie explizit auf die Verwendung von 1.1.0 festgelegt sind. (Ic8fa1, b/181599852)
  • Es wurde ein Problem behoben, bei dem die Vorschau auf dem Samsung A3 in PreviewView gestreckt dargestellt wurde. (Iacb30, b/180121821)
  • Das Problem, dass die Kameraauswahl nicht festgelegt werden kann, bevor die Kamera initialisiert wird, wurde behoben. (Ic8bd0)

Kamera-Erweiterungen und Ansicht Version 1.0.0-alpha22

24. Februar 2021

androidx.camera:camera-extensions:1.0.0-alpha22 und androidx.camera:camera-view:1.0.0-alpha22 werden veröffentlicht. Version 1.0.0-alpha22 enthält diese Commits.

API-Änderungen

Fehlerkorrekturen

  • Es wurde ein Fehler im ExtensionsErrorListener behoben, der dazu führte, dass Fehler gemeldet wurden, wenn nur Preview oder ImageCapture gebunden war. (I5ae39)

Kamera-Erweiterungen und Ansicht Version 1.0.0-alpha21

27. Januar 2021

androidx.camera:camera-extensions:1.0.0-alpha21 und androidx.camera:camera-view:1.0.0-alpha21 werden veröffentlicht. Version 1.0.0-alpha21 enthält diese Commits.

Veröffentlichung zur Unterstützung anderer Artefakte der Kameralibrary.

Kamera-Erweiterungen und Ansicht Version 1.0.0-alpha20

16. Dezember 2020

androidx.camera:camera-extensions:1.0.0-alpha20 und androidx.camera:camera-view:1.0.0-alpha20 werden veröffentlicht. Version 1.0.0-alpha20 enthält diese Commits.

Veröffentlichung zur Unterstützung anderer Artefakte der Kameralibrary.

Kamera-Erweiterungen und Kameraansicht Version 1.0.0-alpha19

11. November 2020

androidx.camera:camera-extensions:1.0.0-alpha19 und androidx.camera:camera-view:1.0.0-alpha19 werden veröffentlicht. Version 1.0.0-alpha19 enthält diese Commits.

Fehlerkorrekturen

  • Die Anmerkung „@ExperimentalVideo“ wurde in der Kameraansicht eingeführt. Diese Anmerkung kennzeichnet APIs, die experimentelle Videofunktionen enthalten, die sich ändern können, wenn die Funktionen vollständig entwickelt werden. Für jede Methode, die diese APIs verwendet, sollte die Annotation @UseExperimental mit ExperimentalVideo als markerClass verwendet werden. (I6d729)

Camera-Extensions Version 1.0.0-alpha18

14. Oktober 2020

androidx.camera:camera-extensions:1.0.0-alpha18 wird veröffentlicht. Version 1.0.0-alpha18 enthält diese Commits.

Fehlerkorrekturen

  • Die Latenz der CameraX-Initialisierung und von „bindToLifecycle“ wurde verbessert (I61dc5).
  • <UseCase>.getTargetRotation() gibt Surface.ROTATION_0 zurück, wenn es vor dem Anhängen an eine Kamera-Instanz aufgerufen wird, es sei denn, eine targetRotation wurde im Builder oder UseCase festgelegt. (I80fcd)

Camera-View Version 1.0.0-alpha18

14. Oktober 2020

androidx.camera:camera-view:1.0.0-alpha18 wird veröffentlicht. Version 1.0.0-alpha18 enthält diese Commits.

Veröffentlichung zur Unterstützung anderer Artefakte der Kameralibrary.

Camera-Extensions Version 1.0.0-alpha17

23. September 2020

androidx.camera:camera-extensions:1.0.0-alpha17 wird veröffentlicht. Version 1.0.0-alpha17 enthält diese Commits.

Fehlerkorrekturen

Camera-View Version 1.0.0-alpha17

23. September 2020

androidx.camera:camera-view:1.0.0-alpha17 wird veröffentlicht. Version 1.0.0-alpha17 enthält diese Commits.

Fehlerkorrekturen

Camera-Extensions Version 1.0.0-alpha16

16. September 2020

androidx.camera:camera-extensions:1.0.0-alpha16 wird veröffentlicht. Version 1.0.0-alpha16 enthält diese Commits.

Fehlerkorrekturen

  • Der Klasse ExtensionsManager wurde eine Methode hinzugefügt, mit der ein Extensions-Objekt abgerufen werden kann, das zum Aktivieren und Abfragen von Erweiterungen für Kamera-Instanzen verwendet wird (I4fb7e).

Camera-View Version 1.0.0-alpha16

16. September 2020

androidx.camera:camera-view:1.0.0-alpha16 wird veröffentlicht. Version 1.0.0-alpha16 enthält diese Commits.

API-Änderungen

  • PreviewView#setDeviceRotationForRemoteDisplayMode() und PreviewView#getDeviceRotationForRemoteDisplayMode() wurden entfernt. Die beiden Methoden dienen zum Anpassen der Vorschaurotation, wenn die gewünschte Rotation nicht die Displayrotation ist, z.B. bei einem Remote-Display. Um die Rotation der Vorschau ohne Display jetzt zu verarbeiten, legen Sie die gewünschte Rotation mit Preview#setTargetRotation() und dem neu hinzugefügten PreviewView#getViewPort(targetRotation) fest. (Ib62cc)
  • createSurfaceProvider() wurde in getSurfaceProvider() umbenannt. Die Methode gibt immer dieselbe Instanz von Preview.SurfaceProvider zurück. (Iff83c)

Fehlerkorrekturen

  • Erzwingt die Verwendung von TextureView für PreviewView, wenn der Erweiterungseffekt aktiviert ist und die Implementierung der Anbieterbibliothek eine spezielle Verarbeitung auf der Ausgabefläche erfordert. (I0c3cc)
  • Beliebige Zielrotation für die Vorschau zulassen. Die Transformationsinformationen werden dynamisch über einen neuen TranformationInfoListener-Callback berechnet und an den Nutzer zurückgegeben. (I21470)

Bekannte Probleme

  • In PreviewView wird OnClickListener#onClick() nicht aufgerufen, wenn der Endnutzer auf PreviewView klickt. Das Touch-Ereignis wird fälschlicherweise von PreviewView#onTouchEvent() verarbeitet. Das Problem wird im nächsten Release behoben.
  • Der von PreviewView#getMeteringPointFactory() abgerufene MeteringPoint ist möglicherweise falsch, wenn ViewPort mit PreviewView verwendet wird.

Camera-Extensions Version 1.0.0-alpha15

19. August 2020

androidx.camera:camera-extensions:1.0.0-alpha15 wird veröffentlicht. Version 1.0.0-alpha15 enthält diese Commits.

Fehlerkorrekturen

  • Die Methode ExtensionsManager.init() verwendet jetzt einen Kontext als Parameter anstelle von 0 Argumenten. (Ife754)
  • Die Initialisierung sollte nicht mehr abstürzen, wenn ein Kontext verwendet wird, der kein Anwendungsobjekt von Context.getApplicationContext() zurückgibt. (I3d3c9, b/160817073)

    Camera-View Version 1.0.0-alpha15

    19. August 2020

androidx.camera:camera-view:1.0.0-alpha15 wird veröffentlicht. Version 1.0.0-alpha15 enthält diese Commits.

Fehlerkorrekturen

  • DisplayOrientedMeteringPointFactory akzeptiert eine CameraInfo-Instanz anstelle einer CameraSelector. So kann direkt zugeordnet werden, für welche Kamera die Fabrik Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, akzeptieren auch eine CameraInfo-Instanz anstelle von CameraSelector. (I400c1)
  • TextureViewMeteringPointFactory wurde entfernt. PreviewView bietet eine öffentliche API (createMeteringPointFactory()) zum Erstellen einer Zählerpunkt-Factory, unabhängig davon, ob sie TextureView oder SurfaceView verwendet. (Ide693)
  • Benennen Sie die Implementierungsmodi SURFACE_VIEW/TEXTURE_VIEW von PreviewView in PERFORMANCE/COMPATIBLE um. PERFORMANCE ist der alte Modus SURFACE_VIEW und COMPATIBLE der alte Modus TEXTURE_VIEW. (I0edc2)
  • Überschreiben Sie für die Bildaufnahme das Flag „Horizontal spiegeln“ in den Metadaten basierend auf der Kameraausrichtung. (I28499)

Camera-Extensions Version 1.0.0-alpha14

22. Juli 2020

androidx.camera:camera-extensions:1.0.0-alpha14 wird veröffentlicht. Version 1.0.0-alpha14 enthält diese Commits.

Camera-View Version 1.0.0-alpha14

22. Juli 2020

androidx.camera:camera-view:1.0.0-alpha14 wird veröffentlicht. Version 1.0.0-alpha14 enthält diese Commits.

Camera-Extensions Version 1.0.0-alpha13

24. Juni 2020

androidx.camera:camera-extensions:1.0.0-alpha13 wird veröffentlicht. Version 1.0.0-alpha13 enthält diese Commits.

Fehlerkorrekturen

  • Experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und CameraCharacteristics hinzugefügt. (I28f61)

Camera-View Version 1.0.0-alpha13

24. Juni 2020

androidx.camera:camera-view:1.0.0-alpha13 wird veröffentlicht. Version 1.0.0-alpha13 enthält diese Commits.

Fehlerkorrekturen

  • CameraView stürzt nicht mehr mit einer IllegalArgumentException ab, wenn sie an einen LifecycleOwner gebunden wird, dessen Lifecycle kurz nach dem Binden in den Status DESTROYED übergeht. Bei Bindungs-Lifecycles im Status DESTROYED wird nicht versucht, die Kamera zu öffnen. (I7c2b8)
  • PreviewView StreamState ist jetzt über CameraView.getPreviewStreamState() verfügbar (I21a2b).

Camera-Extensions Version 1.0.0-alpha12

10. Juni 2020

androidx.camera:camera-extensions:1.0.0-alpha12 wird veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem mit Abstürzen beim Starten der App beim Initialisieren von CameraX, wenn sich das Smartphone im Modus „Bitte nicht stören“ befindet, wurde behoben. Ein InitializationException, das ein CameraUnavailableException enthält, wird auf das ListenableFuture des Initialisierungsergebnisses festgelegt, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)

Camera-View Version 1.0.0-alpha12

10. Juni 2020

androidx.camera:camera-view:1.0.0-alpha12 wird veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.

Fehlerkorrekturen

  • Die PreviewView#getBitmap()-API wurde hinzugefügt, die eine Bitmap-Darstellung des Inhalts zurückgibt, der auf der Vorschauoberfläche angezeigt wird. (I9b500, b/157659818)

Camera-Extensions Version 1.0.0-alpha11

27. Mai 2020

androidx.camera:camera-extensions:1.0.0-alpha11 wird veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.

Camera-View Version 1.0.0-alpha12

10. Juni 2020

androidx.camera:camera-view:1.0.0-alpha12 wird veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.

Neue Funktionen

API-Änderungen

Fehlerkorrekturen

  • Die PreviewView#getBitmap()-API wurde hinzugefügt, die eine Bitmap-Darstellung des Inhalts zurückgibt, der auf der Vorschauoberfläche angezeigt wird. (I9b500, b/157659818)

Camera-View Version 1.0.0-alpha11

27. Mai 2020

androidx.camera:camera-view:1.0.0-alpha11 wird veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.

API-Änderungen

  • Die PreviewView#getPreviewStreamState API wurde hinzugefügt, mit der Apps beobachten können, ob ein Vorschaustream läuft oder nicht. Wenn sich die PreviewView im TEXTURE_VIEW-Modus befindet, wird durch den STREAMING-Status auch sichergestellt, dass das Vorschaubild sichtbar ist. (Ic0906, b/154652477)
  • Die PreviewView#setDeviceRotationForRemoteDisplayMode() API wurde hinzugefügt, um die Geräteausrichtung für Transformationsberechnungen bereitzustellen, wenn die Anwendung im Remote-Display-Modus ausgeführt wird. (I59b95, b/153514525)

Fehlerkorrekturen

  • Das Problem mit der verzerrten Vorschau auf FULL/LIMITED/LEVEL_3-Kameras mit Android 7.0 und niedriger wurde behoben. Erzwungene Verwendung des ImplementationMode#TEXTURE_VIEW-Modus bei Android-Version 7.0 oder niedriger. (I83e30, b/155085307)
  • Der Parameter CameraInfo wurde aus PreviewView#createSurfaceProvider() entfernt. PreviewView ruft ihn jetzt intern aus SurfaceRequest ab. (If18f0, b/154652477)
  • Das Standardseitenverhältnis von VideoCapture in CameraView wurde auf 16:9 festgelegt. (Ie6a7b, b/153237864)
  • Ein Problem wurde behoben, bei dem ein schwarzer Bildschirm angezeigt wurde, wenn das PreviewView-Fragment herausgewischt und dann in ViewPager2 zurückgewischt wurde.Preview Das Problem wurde auch behoben, wenn removeView(previewview) und dann addView(previewView) verwendet wurde. (Iab555, b/149877652, b/147354615)
  • Aktualisieren Sie die CameraView#takePicture() API, um das Speichern von Bildern in Uri und OutputStream zu ermöglichen. Aktualisieren Sie die Test-App, damit Uri als kanonisches Beispiel verwendet wird. (Ia2459, b/153607583)
  • Sie können den Skalierungstyp von PreviewView in einem XML-Layout festlegen, indem Sie das Attribut ScaleType festlegen. (I08565, b/153015659)
  • CameraView.ScaleType wurde entfernt. Verwenden Sie stattdessen PreviewView.ScaleType, um einen Skalierungstyp mit CameraView festzulegen oder abzurufen. (Ia8974, b/153014831)
  • Weisen Sie PreviewView standardmäßig eine Hintergrundfarbe zu, falls noch keine vorhanden ist. Dadurch wird verhindert, dass Inhalte dahinter sichtbar sind, bevor der Vorschaustream beginnt. (I09fad)

Camera-Extensions Version 1.0.0-alpha10

15. April 2020

androidx.camera:camera-extensions:1.0.0-alpha10 wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.

Fehlerkorrekturen

  • Korrekturen zur Unterstützung der Veröffentlichung von Camera-Core

Camera-View Version 1.0.0-alpha10

15. April 2020

androidx.camera:camera-view:1.0.0-alpha010 wird veröffentlicht. Version 1.0.0-alpha010 enthält diese Commits.

Fehlerkorrekturen

  • Ein bekanntes Problem wurde behoben, bei dem die surfaceView-Implementierung von PreviewView auf bestimmten Geräten nicht richtig funktionierte und die App nach dem Fortsetzen der Vorschau abstürzte. (I5ed6b)

Camera-Extensions Version 1.0.0-alpha09

1. April 2020

androidx.camera:camera-extensions:1.0.0-alpha09 wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.

Fehlerkorrekturen

  • Aktualisiert, um die Fehlerkorrekturen in den Artefakten camera-camera2:1.0.0-beta02, camera-core:1.0.0-beta02 und camera-lifecycle:1.0.0-beta02 zu unterstützen

Camera-View Version 1.0.0-alpha09

Am 1. April 2020 wird androidx.camera:camera-view:1.0.0-alpha09 veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.

Bekannte Probleme

  • Die Verwendung von ImplementationMode.SURFACE_VIEW mit PreviewView funktioniert auf bestimmten Geräten möglicherweise nicht gut, da die für die Vorschau verwendete SurfaceView ihre Oberfläche ungültig macht, wenn der Lebenszyklus des Fensters, in dem sie sich befindet, beendet wird. Wenn sie neu gestartet wird, wird die Kamera wieder geöffnet und versucht möglicherweise, die Vorschau fortzusetzen, bevor die Oberfläche der SurfaceView wieder gültig ist. Verwenden Sie vorerst ImplementationMode.TEXTURE_VIEW.

API-Änderungen

  • PreviewView.setImplementationMode() wurde in PreviewView.setPreferredImplementationMode() umbenannt.
  • PreviewView.getImplementationMode() wurde in PreviewView.getPreferredImplementationMode() umbenannt.
  • PreviewView.getSurfaceProvider() wurde durch PreviewView.createSurfaceProvider(CameraInfo) ersetzt. Diese Funktion verwendet eine nullable CameraInfo-Instanz, um die Vorschau nach Möglichkeit mit ImplementationMode.SURFACE_VIEW zu optimieren. Wenn eine Null-Instanz übergeben wird oder Sie den bevorzugten Implementierungsmodus auf ImplementationMode.TEXTURE_VIEW festlegen, wird intern ImplementationMode.TEXTURE_VIEW verwendet.
  • Das folgende Codebeispiel zeigt, wie ein Vorschau-Anwendungsfall zuvor mit PreviewView verwendet wurde.

    preview.setSurfaceProvider(previewView.previewSurfaceProvider)
    cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    

    Derzeit können Sie Folgendes schreiben:

    val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW
    preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
    
  • Die Anmerkung „@UiThread“ wurde zu PreviewView.getSurfaceProvider() hinzugefügt. Das bedeutet, dass sie aus dem Hauptthread aufgerufen werden muss. (I192f3)

  • PreviewView.setScaleType() wurde hinzugefügt, um den Skalierungstyp der Vorschau festzulegen. Es wird einer der Werte in PreviewView.ScaleType akzeptiert. Der Standardwert ist PreviewView.ScaleType.FILL_CENTER.

  • PreviewView.getScaleType() wurde hinzugefügt.

  • Die Unterstützung für das Festlegen des Implementierungsmodus für PreviewView in einem XML-Layout mithilfe des Attributs implementationMode wurde entfernt.

  • Fügen Sie der PreviewView die createMeteringPointFactory() API hinzu, um die Konvertierung von (x, y) in PreviewView in MeteringPoint zu unterstützen. (Ib36d7)

Fehlerkorrekturen

  • Das Problem, dass nach einer Größenänderung von PreviewView eine falsche Vorschau angezeigt wurde, wurde behoben. (I71101)

Camera-Extensions Version 1.0.0-alpha08

26. Februar 2020

androidx.camera:camera-extensions:1.0.0-alpha08 wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

Camera-View Version 1.0.0-alpha08

26. Februar 2020

androidx.camera:camera-view:1.0.0-alpha08 wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

Fehlerkorrekturen

  • Das ListenableFuture auf SurfaceRequest.provideSurface() wurde durch ein Executor und Callback ersetzt. Dadurch wird die API vereinfacht, da keine Ausnahmen für provideSurface() mehr behandelt werden müssen. Außerdem wird erzwungen, dass der provideSurface() -Callback nicht abgebrochen werden kann. So werden Abstürze auf älteren Geräten verhindert, die durch das vorzeitige Freigeben von Oberflächen verursacht werden. Das SurfaceRequest.Result-Objekt wird jetzt verwendet, um zu erfassen, wie ein SurfaceRequest die bereitgestellte Surface verwendet. (I7854b)
  • SurfaceRequest.setSurface(Surface) wurde in SurfaceRequest.provideSurface(Surface) und SurfaceRequest.setWillNotComplete() in SurfaceRequest.willNotProvideSurface() umbenannt. (I224fe)
  • Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert, indem das Flag beibehalten wurde, mit dem der Standardanbieter CameraXConfig festgelegt wird. (I2d6c1)

Camera-Extensions Version 1.0.0-alpha07

10. Februar 2020

androidx.camera:camera-extensions:1.0.0-alpha07 wird veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.

Fehlerkorrekturen

  • Die Argumente, die zuvor in ImageCapture.OnImageSavedCallback.onError() und ImageCapture.OnImageCapturedCallback.onError() übergeben wurden, wurden jetzt durch ein einzelnes Argument ImageCaptureException ersetzt, das weiterhin alle Informationen enthält, die zuvor übergeben wurden.
  • Das zuvor in ImageCapture.OnImageSavedCallback.onImageSaved() übergebene Dateiargument wurde entfernt. (I750d2)

Camera-View Version 1.0.0-alpha07

10. Februar 2020

androidx.camera:camera-view:1.0.0-alpha07 wird veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.

API-Änderungen

  • Bei der PreviewView-Implementierung von PreviewView wird die Größe von TextureView jetzt auf die Ausgabegröße des Kamerasensors festgelegt, bevor sie so skaliert wird, dass sie das übergeordnete PreviewView ausfüllt.TextureView Wenn die Kameravorschau einen ganzen Teil der Benutzeroberfläche (z. B. den gesamten Bildschirm) ausfüllen soll, dürfen Sie die Größe des PreviewView nicht auf einen festen Wert festlegen oder den Inhalt umschließen lassen (z. B. mit dem Attribut „wrap_content“). Andernfalls füllt die Kameravorschau möglicherweise nur einen Teil des PreviewView aus, wenn die Ausgabegröße des Kamerasensors kleiner ist. Stattdessen sollten Sie PreviewView so groß wie das übergeordnete Element festlegen, z. B. mit dem Attribut „match_parent“. (1204869)

Fehlerkorrekturen

  • ImageCapture wurde aktualisiert, damit Bilder in Uri und OutputStream gespeichert werden können. Kombinierte überlastete takePicture-Methoden in einer. Die Test-App wurde aktualisiert, sodass Uri als kanonisches Beispiel verwendet wird. (Ia3bec)
  • Preview.PreviewSurfaceProvider wurde in Preview.SurfaceProvider umbenannt. SurfaceProvidererfordern nicht mehr, dass Entwickler ihre eigenen ListenableFutureerstellen. Die Bereitstellung eines Surface erfolgt jetzt über ein neues SurfaceRequest-Objekt. Die Methode Preview.getPreviewSurfaceProvider() wurde entfernt, da sie in Kombination mit anderen Klassen wie PreviewView missbraucht werden kann.Preview (I20105)
  • Die Argumente, die zuvor in ImageCapture.OnImageSavedCallback.onError() und ImageCapture.OnImageCapturedCallback.onError() übergeben wurden, wurden jetzt durch ein einzelnes Argument ImageCaptureException ersetzt, das weiterhin alle Informationen enthält, die zuvor übergeben wurden.
  • Das zuvor in ImageCapture.OnImageSavedCallback.onImageSaved() übergebene Dateiargument wurde entfernt. (I750d2)
  • Die API wurde aktualisiert. Die Methoden getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() und getLinearZoom() von CameraInfo werden in getZoomState() zusammengeführt, die eine ZoomState-Instanz zurückgibt. (Ib19fe)

Camera-Extensions Version 1.0.0-alpha06

22. Januar 2020

androidx.camera:camera-extensions:1.0.0-alpha06 wird veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.

Updates

  • Verschiedene Fehlerkorrekturen und Updates zur Unterstützung von Camera Core- und Camera2-Änderungen.

Camera-View Version 1.0.0-alpha06

22. Januar 2020

androidx.camera:camera-view:1.0.0-alpha06 wird veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.

Updates

  • Verschiedene Fehlerkorrekturen und Updates zur Unterstützung von Camera Core- und Camera2-Änderungen.

Camera-Extensions Version 1.0.0-alpha05

18. Dezember 2019

androidx.camera:camera-extensions:1.0.0-alpha05 wird veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.

Fehlerkorrekturen

  • Aktualisiert, um den internen Camera Core-APIs zu entsprechen.

Camera-View Version 1.0.0-alpha05

18. Dezember 2019

androidx.camera:camera-view:1.0.0-alpha05 wird veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.

Bekannte Probleme

  • Das Seitenverhältnis ist bei Verwendung von PreviewView möglicherweise falsch (b/146215202).

Neue Funktionen

  • Es wurde eine neue Klasse namens PreviewView.TextureViewImplementation implementiert, die den Lebenszyklus von SurfaceTexture mit der Verwendung der Oberfläche von TextureView durch die Kamera synchronisiert.

Camera-Extensions Version 1.0.0-alpha04

4. Dezember 2019

androidx.camera:camera-extensions:1.0.0-alpha04 wird veröffentlicht. Version 1.0.0-alpha04 von camera-extensions enthält diese Commits

API-Änderungen

  • Die Prüfung der Verfügbarkeit und Aktivierung einer Erweiterung erfordert jetzt CameraSelector als Eingabeparameter. Es muss dasselbe CameraSelector sein, das für die Bindung des Anwendungsfalls verwendet wird.

    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)
    
  • Sie müssen Erweiterungen initialisieren, bevor Sie die Erweiterungsbibliothek verwenden können.

    val availability = ExtensionsManager.init()
    Futures.addCallback<ExtensionsManager.ExtensionsAvailability>(
       availability,
       object : FutureCallback<ExtensionsManager.ExtensionsAvailability> {
           override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) {
               // Ready to make extensions calls
           }
           override fun onFailure(throwable: Throwable) {
               // Extensions could not be initialized
           }
       },
       Executors.newSingleThreadExecutor()
    )
    

Camera-View Version 1.0.0-alpha04

4. Dezember 2019

androidx.camera:camera-view:1.0.0-alpha04 wird veröffentlicht. Version 1.0.0-alpha04 von camera-view enthält diese Commits

API-Änderungen

  • Für die einfache Darstellung der Ausgabe des Vorschau-Anwendungsfalls in einer Anwendung wird eine PreviewView-Klasse bereitgestellt.
  • PreviewView kann im Layout enthalten sein:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
       />
    
  • PreviewView bietet eine PreviewSurfaceProvider, um einen Vorschau-Anwendungsfall einfach zu verbinden.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • ZoomLevel“ heißt jetzt „ZoomRatio“ in der API-Benennung

  • Die Nullable-Eigenschaft einiger Methodenparameter hat sich geändert

Kamera-Erweiterungen und Kameraansicht Version 1.0.0-alpha03

9. Oktober 2019

androidx.camera:camera-extensions:1.0.0-alpha03 und androidx.camera:camera-view:1.0.0-alpha03 werden veröffentlicht. Das sind die Commits, die in camera-extensions:1.0.0-alpha03 enthalten sind, und das sind die Commits, die in camera-view:1.0.0-alpha03 enthalten sind.

Neue Funktionen

  • Kontextinitialisierung für Erweiterungen hinzugefügt. Version der Erweiterungen auf 1.1.0 erhöht

Kamera-Erweiterungen und Kameraansicht Version 1.0.0-alpha02

5. September 2019

androidx.camera:camera-extensions:1.0.0-alpha02 und androidx.camera:camera-view:1.0.0-alpha02 werden veröffentlicht. Commits in camera-extensions:1.0.0-alpha02 und Commits in camera-view:1.0.0-alpha02

  • Es wurden Tests hinzugefügt, um zu prüfen, ob PreviewImageProcessorImpl Zeitstempel korrekt implementiert hat.
  • Beheben Sie den ExtensionTest-Testfehler auf dem Nexus 5 (API-Level 21) und sorgen Sie dafür, dass die Vorschau verfügbar ist.

Camera-Extensions und Camera-View Version 1.0.0-alpha01

7. August 2019

androidx.camera:camera-extensions:1.0.0-alpha01 und androidx.camera:camera-view:1.0.0-alpha01 werden veröffentlicht. Das sind die Commits in camera-extensions:1.0.0-alpha01 und das sind die Commits in camera-view:1.0.0-alpha01.

  • Neue Bibliothek für zukünftige Kameraerweiterungen für den Zugriff auf Effekte auf unterstützten Geräten. Diese Bibliothek ist noch in der Entwicklung.
  • Neue Klasse „Camera View“. Diese Bibliothek ist noch in der Entwicklung.