CameraX

CameraX ist eine Ergänzung zu Jetpack, mit der sich Kamerafunktionen einfacher in Ihre App einbinden lassen. Die Bibliothek bietet eine Reihe von Kompatibilitätskorrekturen und Problemumgehungen, um die Entwicklung auf vielen Geräten einheitlich zu gestalten.

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

Artefakt Stabile Release Releasekandidat Beta-Release Alpha-Release
camera-camera2 1.6.2 1.7.0-rc01 - -
camera-core 1.6.2 1.7.0-rc01 - -
camera-compose 1.6.2 1.7.0-rc01 - -
camera-effects 1.6.2 1.7.0-rc01 - -
camera-extensions 1.6.2 1.7.0-rc01 - -
camera-feature-combination-query - - - 1.5.0-alpha06
camera-feature-combination-query-play-services - - - 1.5.0-alpha06
camera-lifecycle 1.6.2 1.7.0-rc01 - -
camera-mlkit-vision 1.6.2 1.7.0-rc01 - -
Kameraansicht 1.6.2 1.7.0-rc01 - -
camera-viewfinder - - 1.3.0-beta02 1.4.0-alpha07
camera-video 1.6.2 1.7.0-rc01 - -
Diese Bibliothek wurde zuletzt am 21. Oktober 2026 aktualisiert.

Gerätetests

CameraX wird in unserem Labor auf vielen Geräten getestet. Eine Liste der Geräte, die sich derzeit im Lab befinden, findest du unter Im Lab getestete CameraX-Geräte.

Abhängigkeiten deklarieren

Für eine Abhängigkeit von CameraX musst du deinem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Google-Maven-Repository.

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

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.7.0-rc01"
  // 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.7.0-rc01"
    // 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. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.

Neues Problem melden

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Camera Viewfinder Compose Version 1.0

Version 1.0.0-alpha02

12. Juni 2024

androidx.camera:camera-viewfinder-compose:1.0.0-alpha02 ist 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 ist veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Neue Bibliothek. Diese Bibliothek führt eine native Viewfinder-Komponierbare Funktion ein, die mit CameraX und Camera2 verwendet werden kann. Der composable Viewfinder unterstützt verschiedene Seitenverhältnisse und die Verarbeitung von Touch-Events.

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 sind 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 sind veröffentlicht. Version 1.4.0-alpha06 enthält diese Commits.

API-Änderungen

  • Die Enums von Viewfinder in ImplementationMode wurden umbenannt, um die zugrunde liegenden Implementierungen besser widerzuspiegeln, und es wurden feste Konstanten für TransformationInfo.sourceRotation hinzugefügt. (Ic6149)
  • ZoomGestureDetector.ZoomEvent hinzugefügt, um die Status einer Zoom-Geste zu kapseln. (I84cdf)

Version 1.7

Version 1.7.0-rc01

21. Oktober 2026

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

API-Änderungen

  • UseCaseCamera2Interop, ImageCaptureCamera2Interop, SessionConfigCamera2Interop und CameraControlCamera2Interop wurden von Schnittstellen in abstrakte Klassen umgewandelt. (If654e)
  • Das Problem mit der Mehrdeutigkeit von Camera2Interop V2 wurde behoben (I1bbe5).

Fehlerkorrekturen

  • Es wurde ein nativer SIGSEGV-Absturz im CameraX-OpenGL-Thread behoben, der auftrat, wenn ein SurfaceProcessor eine Eingabe-SurfaceTexture freigegeben hat, deren SurfaceRequest vor dem Abschluss durch die automatische Speicherbereinigung gelöscht wurde. (I76f73, b/563673593)
  • Es wurde ein Surface-Leak und ein nativer OpenGL-Absturz behoben, der während der automatischen Speicherbereinigung auftreten konnte, wenn der Executor oder HandlerThread eines CameraEffect beendet wurde, bevor der SurfaceOutput des Effekts geschlossen wurde. (Ifcc19, b/558819242)
  • Verbesserung des Verhaltens des Low Light-Modus: Der Low Light-Modus und die Taschenlampe folgen jetzt der Richtlinie „Letzte Einstellung gewinnt“. Wenn eine der beiden Funktionen aktiviert wird, wird die andere automatisch deaktiviert, anstatt die Anfrage abzulehnen. Außerdem kann der Blitz jetzt während der Bilderfassung ausgelöst werden, wenn die Funktion „Optimierung bei schlechten Lichtverhältnissen“ aktiv ist. (Ie583f)
  • Die Abhängigkeit androidx.lifecycle:lifecycle-runtime wurde auf 2.10.0 aktualisiert. Diese Version ist erforderlich, damit die gebündelten Lint-Prüfungen für die Lebenszyklus-Laufzeit mit AGP-Version 9.5.0-alpha04 oder höher ausgeführt werden können. (I99bfd, b/556807521)
  • Unterstützung für das Abrufen von CameraSelector auf physischen Kameras von CameraInfo.getPhysicalCameraInfos() und das Binden von UseCases an physische Kameras. Wenn Sie CameraInfo mit einem physischen CameraSelector abfragen, wird jetzt der physische CameraInfo anstelle des logischen CameraInfo zurückgegeben. (Ibe7f2)
  • In der Javadoc für OutputOptions.Builder.setLocation wurde klargestellt, dass nur Längen- und Breitengrade in den Videometadaten gespeichert werden. (I77d3b, b/551348846)
  • In ImageAnalysis wurde ein Fehler behoben, bei dem das dynamische Ändern der Ausgabedrehung oder das Aufheben der Bindung des Anwendungsfalls zu einem Ressourcenleck bei Surface/ImageReader führen konnte. (I25cef)
  • CameraInfo.getIntrinsicZoomRatio() rundet das zurückgegebene Verhältnis jetzt auf zwei Dezimalstellen. (Ibe9a8)
  • Die HardwareBuffer.isSupported-Prüfung für das PRIVATE-Format in ImageAnalysis wurde gelockert, um falsch negative Fehler auf einigen Geräten zu vermeiden. (I347a4, b/545866947)
  • Ein Kompilierungsabsturz bei neueren JDK-Versionen wurde behoben, der beim Auflösen transitiv importierter JSpecify-Typanmerkungen für interne CameraX-Felder auftrat. (I00bb4, b/543937345)

Version 1.7.0-alpha03

12. August 2026

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

API-Änderungen

  • Eingestellte Legacy-Camera2Interop APIs (Camera2Interop.Extender, Camera2CameraControl, Camera2CameraInfo und CaptureRequestOptions) zugunsten von Camera2Interop-Konfigurator-Factory-Methoden und Kotlin-Erweiterungsfunktionen. (Ib0845, b/529609261)
  • Kotlin DSL-Erweiterungsblöcke (camera2Interop) für preview, imageAnalysis, videoCapture, imageCapture und SessionConfig.Builder sowie die Erweiterungsfunktion CameraControl.applyCamera2InteropAsync hinzugefügt. (I51af9, b/529609261)
  • Neue Camera2Interop-Konfigurator-Factory-Methoden (forUseCase, forImageCapture, forSessionConfig, forCameraControl) und entsprechende setInterop- / applyInteropAsync-Methoden für Preview.Builder, ImageCapture.Builder, ImageAnalysis.Builder, VideoCapture.Builder, SessionConfig.Builder und CameraControl hinzugefügt. (I0007b, b/529609261)
  • Camera2Interop wurden Hilfsmethoden und entsprechende Kotlin-Erweiterungseigenschaften (CameraInfo.cameraId, CameraInfo.cameraCharacteristics und String.toCameraSelector()) hinzugefügt, um die Camera2-Kamera-ID und ‑Eigenschaften aus CameraInfo abzurufen. (I11803, b/529609261)
  • Preview.setMirrorMode, Preview.getMirrorMode und VideoCapture.setMirrorMode wurden zu öffentlichen APIs hinzugefügt und die Annotation ExperimentalMirrorMode wurde entfernt. (I4ed60, b/519794349, b/470629643)
  • Kotlin DSL-Builder preview { ... }, imageCapture { ... }, imageAnalysis { ... } und videoCapture { ... } zum Erstellen von UseCases hinzugefügt. (I91df9, b/530013719)
  • ImagePlane.buffer wurde in einen nicht nullfähigen ByteBuffer geändert. (I98593)
  • Die Property-Getter für SessionConfig.Builder, HighSpeedVideoSessionConfig.Builder und ExtensionSessionConfig.Builder in der Kotlin DSL wurden eingestellt, um Nur-Schreib-Properties zu erzwingen. (I2875b, b/534570559)

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem das Binden mehrerer Preview-Anwendungsfälle mit einem OverlayEffect zu einem Fehler bei der Bereitstellung des Vorschaustreams führte. (I7a383, b/532577546, b/532924417)
  • Es wurde ein Problem behoben, bei dem Recording.pause() und Recording.resume() beim Wechseln der Kamera während einer laufenden Videoaufnahme fehlschlugen. (I71004, b/532327691, b/367121726)
  • Es wurden HAL-Abstürze behoben, die bei Verwendung der Funktion „Zero Shutter Lag“ (ZSL) beim Zoomen über die physischen Kameragrenzen auf Geräten mit mehreren Kameras auftraten. (I1c374, b/527782712, b/514757157)
  • Es wurde ein Problem behoben, bei dem die HDR-Videoaufnahme auf Samsung Galaxy S25-, S26- und Fold 7-Geräten fehlschlagen konnte. (Ic0827, b/529618629)

Version 1.7.0-alpha02

1. Juli 2026

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

API-Änderungen

  • CameraXViewfinder unterstützt jetzt integrierte Gesten für das Zoomen durch Auf- und Zuziehen und das Fokussieren durch Tippen. Außerdem werden das Aufleuchten bei Benachrichtigungen und der Streamstatus unterstützt. FocusState ist jetzt in viewfinder-core öffentlich, damit die Ergebnisse von „Zum Fokussieren tippen“ beobachtet werden können. (I66a17, b/522549890)
  • isAutoRotationEnabled wurde zu SessionConfig.Builder, HighSpeedVideoSessionConfig.Builder und ExtensionSessionConfig.Builder hinzugefügt und es wurden Kotlin-DSL-Factory-Funktionen für sie eingeführt. So kann die entsprechende Ausrichtung automatisch anhand der Gerätesensoren festgelegt werden. (I5b4a3, b/510752515)
  • Das Attribut TransformationMode wurde zu TransformationInfo hinzugefügt, damit Apps die OpenGL-Pipeline im EMBEDDED-Modus verwenden können. (Id1de1, b/487826941)
  • isNightModeIndicatorSupported() und getNightModeIndicator() wurden zu CameraInfo hinzugefügt, um zu bestimmen, wann die Umgebungsbedingungen die Kriterien für den Nachtmodus erfüllen. (Iae47b, b/499389465)
  • ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE und ImageProxy.getHardwareBuffer() wurden als öffentliche API verfügbar gemacht, um GPU-basierte ImageAnalysis zu unterstützen. (I41cb3, b/496022391, b/492934501)
  • „ExtensionsManager#getExtensionEnabledCameraSelector“ wurde eingestellt. Verwenden Sie die neue ExtensionSessionConfig API, um Erweiterungsmodi zu aktivieren. (I2b336, b/473715607)
  • Unterstützung für die visuelle Gestaltung von Kamerabildern während der gleichzeitigen Kamerakomposition hinzugefügt. Du kannst jetzt Folgendes anpassen:
  • Abgerundete Ecken: Verwenden Sie setRoundedCornerRatio(float), um eine normalisierte Rundung (0,0 bis 1,0) auf die Rahmenkanten anzuwenden.
  • Rahmen: Mit „setBorderWidthRatio(float)“ und „setBorderColor(int)“ können Sie einen dekorativen Rahmen mit einheitlicher Breite hinzufügen (I18a07, b/366349205).
  • „CompositionSettings“ wurde aktualisiert, um eine nicht negative Z-Reihenfolge zu erzwingen. Außerdem wurde eine Validierung für „ConcurrentCamera.setCompositionSettings“ hinzugefügt, um sicherzustellen, dass die Methode mit der richtigen Anzahl von Einstellungen in einem gültigen Kompositionsmodus aufgerufen wird. (If660d, b/496951658)
  • „getNightModeIndicator()“ und „isNightModeIndicatorAvailable()“ wurden zu „CameraExtensionsInfo“ hinzugefügt, damit Anwendungen bei Verwendung von Kameraerweiterungen prüfen können, ob die aktuelle Umgebung im Nachtmodus ist. (I62bb4, b/499389465)
  • Unterstützung für die Videoqualität QHD in VideoCapture hinzugefügt. (I0ac20, b/501305592)
  • Recorder.Builder.setTargetAudioChannelCount(int) und Recorder.getTargetAudioChannelCount() wurden hinzugefügt, damit Entwickler eine explizite Anzahl von Audiokanälen festlegen können. (I6bee0, b/441895100)
  • Recorder.Builder.setTargetAudioEncodingBitRate(int) wurde hinzugefügt, um die Festlegung einer Ziel-Bitrate für die Audiocodierung zu ermöglichen. (I29062, b/241151504)
  • Die ConcurrentCamera.setCompositionSettings API wurde hinzugefügt, damit Apps die Zusammensetzung der aktuellen Kamera dynamisch aktualisieren können, nachdem der Lebenszyklus gebunden wurde. Außerdem ermöglicht eine neue setZOrder-API in CompositionSettings.Builder die genaue Steuerung der Rendering-Reihenfolge sich überschneidender Kamerastreams. (I90528, b/473702287)
  • Einführung von APIs für die detaillierte Steuerung von Codierungsformaten. Entwickler können jetzt mit Recorder.getSupportedVideoMimeTypes() und getSupportedAudioMimeTypes(), die sich derzeit in der Testphase befinden, vom Gerät unterstützte Formate ermitteln. Bevorzugte Formate können explizit über Recorder.Builder.setVideoMimeType() und setAudioMimeType() konfiguriert werden. Außerdem können mit Recorder.getVideoCapabilities(CameraInfo, String) kameraspezifische Funktionen wie unterstützte Qualitäten und Dynamikbereiche für einen ausgewählten Codec abgefragt werden. (I4620e, b/491319384)
  • CameraController.setAutoRotationEnabled(boolean) wurde hinzugefügt, um das Deaktivieren des automatischen Geräterotations-Listeners zu ermöglichen. (Ia0c03, b/449573627)
  • Unterstützung für die AE/AWB-Sperre in FocusMeteringAction über eine neue setLockingMode API hinzugefügt. Dadurch können auch 3A-Regionen aktualisiert werden, ohne den Fokus zu sperren. So kann die Kamera im kontinuierlichen Autofokusmodus bleiben, während der Fokusbereich aktualisiert wird. (I6416f, b/481624745)

Fehlerkorrekturen

  • Anforderung für compileSdk 37 entfernt (If78b4)
  • Es wurden CameraXViewfinder-Transformationsprobleme im EMBEDDED-Modus behoben, wenn die OpenGL-Pipeline von CameraX aktiviert wird, um mehr UseCases- oder Oberflächenverarbeitung zu binden. (I3e637, b/487826941)
  • Tests und Aktivitäten wurden aktualisiert, um „ExtensionSessionConfig“ anstelle der verworfenen API „getExtensionEnabledCameraSelector“ zu verwenden. (I765d8, b/473715607)
  • Der Kompilierungsfehler „Cannot access class 'ListenableFuture'“ wurde behoben. (Ic8cba, b/497571473)
  • compileSdk von Compose wurde auf API 37 aktualisiert. Das bedeutet, dass bei der Verwendung von Compose mindestens die AGP-Version 9.2.0 erforderlich ist. (Id45cd, b/413674743)

Version 1.7.0-alpha01

11. März 2026

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

API-Änderungen

  • Die CameraController.setSessionConfig() API wurde verfügbar gemacht. So kann ein benutzerdefiniertes SessionConfig für erweiterte UseCase-Konfigurationen bereitgestellt werden, die nicht direkt von CameraController verfügbar gemacht werden. Wenn ein SessionConfig aktiv ist, sind andere Konfigurationsmethoden für CameraController deaktiviert.(I35cf1, b/448525636)

Fehlerkorrekturen

  • Verschiebt Bibliotheken, um das Java 11-Ziel zu verwenden. Das bedeutet, dass der erzeugte Bytecode Java 11 (Klassendateiversion 55) ist und möglicherweise eine Entzuckerung erforderlich ist, um die Bibliothek zu verwenden (If4c2a, b/457821470).
  • In ImageAnalysis wurde ein Fehler behoben, durch den Bilder nicht richtig gedreht wurden, wenn die Drehung des Ausgabebilds aktiviert war und die anfängliche relative Drehung 0 Grad betrug. (Id46c2, b/487160584)

Kameraversion 1.6

Version 1.6.2

26. August 2026

androidx.camera:camera-*:1.6.2 ist veröffentlicht. Version 1.6.2 enthält diese Commits.

Fehlerkorrekturen

  • Ein Kompilierungsabsturz bei neueren JDK-Versionen wurde behoben, der beim Auflösen transitiv importierter JSpecify-Typanmerkungen für interne CameraX-Felder auftrat. (I00bb4, b/543937345)

Version 1.6.1

6. Mai 2026

androidx.camera:camera-*:1.6.1 ist veröffentlicht. Version 1.6.1 enthält diese Commits.

Fehlerkorrekturen

  • Ein Kompilierungsfehler „Cannot access class ListenableFuture“ (Zugriff auf Klasse nicht möglich) bei Verwendung von CameraX 1.6.0 wurde behoben. (Ic8cba, b/497571473)

Version 1.6.0

25. März 2026

androidx.camera:camera-*:1.6.0 ist veröffentlicht. Version 1.6.0 enthält diese Commits.

Wichtige Änderungen seit 1.5.0:

1. Migration zu einem leistungsstarken, einheitlichen Kamera-Stack

  • CameraX verwendet jetzt CameraPipe – denselben modernen, leistungsstarken Stack, der auch die Pixel-Kamera unterstützt. Diese Umstellung optimiert die Architektur und bietet eine skalierbare Grundlage, um Entwicklern erweiterte Funktionen für die computergestützte Fotografie zur Verfügung zu stellen.

2. Media3-Muxer-Integration

  • CameraX bindet jetzt standardmäßig den Media3-Muxer in die VideoCapture API ein. Diese Migration bietet mehrere Vorteile:
    • Verbesserte Leistung: Effizientere Videoverarbeitung und -multiplexierung.
    • Absturzsicherheit:Verbesserter Schutz vor Beschädigung von Videodateien, sodass Daten auch dann erhalten bleiben, wenn die App während der Aufnahme abstürzt.

3. Verbesserung der Featuregruppe

4. Stabilisierte SessionConfig API

  • SessionConfig ist nicht mehr experimentell, sondern eine vollständig stabile öffentliche API, einschließlich SessionConfig und HighSpeedVideoSessionConfig. CameraX-Erweiterungen können jetzt mit einer neuen ExtensionSessionConfig-API implementiert werden. Es wird eine neue isSessionConfigSupported API eingeführt, mit der Entwickler vor der Bindung an den Lebenszyklus abfragen können, ob eine bestimmte Kombination aus Anwendungsfällen und Funktionen (z. B. HDR, Stabilisierung, bestimmte Auflösungen, CameraX-Erweiterungen oder Zeitlupe) vom Gerät unterstützt wird.

Fehlerkorrekturen

  • Es wurde ein Problem behoben, das auf bestimmten Geräten mit Android 17 (API 37) oder höher zu einem Absturz führte. Wenn diese Geräte neue Profile für den Dynamikbereich (z. B. STANDARD_SMPTE_2094_50(ID 8192)) verfügbar machen, die in CameraX Version 1.5.1 und früher nicht bekannt waren, konnte die Bibliothek diese IDs bisher nicht richtig verarbeiten. Das führte zu einem NullPointerException oder IllegalArgumentException während ProcessCameraProvider.bindToLifecycle(). Mit dieser Korrektur kann CameraX nicht erkannte Profile für den Dynamikbereich ignorieren, was den Absturz verhindert und die Aufwärtskompatibilität aufrechterhält. Aktualisieren Sie Ihre CameraX-Abhängigkeit auf Version 1.5.2 oder 1.6.0 (oder höher), um dieses Problem auf Geräten zu vermeiden, die diese neuen Profile verfügbar machen. Weitere Informationen finden Sie unter Problem 519796838. (Ibd7b5)
  • Die Groups API liefert jetzt konsistente Ergebnisse, wenn PREVIEW_STABILIZATION mit VideoCapture verwendet wird. Dadurch wird ein Fehler behoben, der zu inkonsistenten Ergebnissen führte, wenn ein Anwendungsfall für die Vorschau nicht ebenfalls aktiv war. (Ifed82, b/449913903)
  • Ein Problem wurde behoben, bei dem nicht unterstützte bevorzugte Funktionen fälschlicherweise verfügbar gemacht wurden. Funktionen werden jetzt korrekt gefiltert, wenn die erforderlichen Anwendungsfälle nicht erfüllt sind. (I38db8, b/449532342)
  • Fehlerhaftes Videoergebnis auf dem Samsung Galaxy S6 behoben. (I612d9, b/235127608)
  • Ein Problem wurde behoben, bei dem CameraInfo#isFeatureGroupSupported fälschlicherweise „true“ für PREVIEW_STABILIZATION zurückgeben konnte, wenn die SessionConfig in der Abfrage bereits mit anderen Funktionen konfiguriert war. (I2c355c, b/437816469)
  • Problematische Ausgabegrößen im YUV-Format wurden vom Samsung Z Fold 4-Gerät ausgeschlossen. Die empfangenen Bilder weisen bei Verwendung dieser Ausgabegrößen Verzerrungen auf. (I776bf, b/460322307)
  • Ein gerätespezifisches Problem auf dem Samsung A53 wurde behoben, bei dem die Bildaufnahme mit aktiviertem Blitz manchmal fehlschlug, wenn der Anwendungsfall VideoCapture gebunden war. (I0f183, b/458197367)
  • Es wurde ein Problem auf einigen Geräten behoben, bei dem die Verwendung des Blitzes mit der Ultraweitwinkelkamera zu unterbelichteten Bildern führen konnte. (Ib7530, b/444590340)
  • Die Abhängigkeit ExifInterface wurde aktualisiert und enthält jetzt eine Fehlerbehebung für das Parsen von JPEGs mit 0xFF-Padding. Dadurch werden Fehler bei der Bilderfassung auf Geräten behoben, bei denen der JPEG-Encoder vor Markierungen Füllbytes hinzufügt. (I0eb49)

Version 1.6.0-rc01

25. Februar 2026

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

Version 1.6.0-beta02

11. Februar 2026

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

Fehlerkorrekturen

  • Ein Problem mit der In-Memory-Aufnahme von ImageCapture OUTPUT_FORMAT_RAW_JPEG IllegalArgumentException wurde behoben. (Id4eec, b/479990902)
  • Migration zum AndroidX Media3-Muxer. Dadurch wurden 1. Videofehler bei unerwarteten Unterbrechungen oder beim Beenden der App und 2. Abstürze beim Speichern von Videos in Proxy-Dateideskriptoren behoben. (I23b63, b/433649708, b/264812009, b/475750115)

Version 1.6.0-beta01

28. Januar 2026

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

Fehlerkorrekturen

  • In CameraX 1.6.0-alpha wurde ein Problem mit dem aktuellen Typ CameraExtensionsInfo behoben, bei dem das LiveData-Objekt die aktualisierten Typdaten nicht empfangen konnte. (I2c7a5)
  • Die ExifInterface-Abhängigkeit wurde aktualisiert und enthält jetzt eine Fehlerbehebung für das Parsen von JPEGs mit 0xFF-Padding. Dadurch werden Fehler bei der Bilderfassung auf Geräten behoben, auf denen der JPEG-Encoder vor Markierungen Füllbytes hinzufügt. (I0eb49)

Version 1.6.0-alpha02

17. Dezember 2025

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

Neue Funktionen

  • Es wurde eine gruppierbare Funktion hinzugefügt, um die Videostabilisierungsfunktion in einer Sitzungskonfiguration zu kennzeichnen. Entwickler können jetzt die Videostabilisierung als erforderliche oder bevorzugte Funktion anfordern und sie mit anderen gruppierbaren Funktionen wie UHD_RECORDING und PREVIEW_STABILIZATION abstimmen. (Ic6757, b/419766630)
  • Es wurden gruppierbare Funktionen hinzugefügt, um die Videoaufzeichnungsqualität in einer Sitzungskonfiguration anzugeben. Entwickler können jetzt eine bestimmte Qualität (z.B. UHD, FHD) als erforderliche oder bevorzugte Funktion anfordern und sie mit anderen gruppierbaren Funktionen wie HDR und 60 fps abgleichen. (Ib5cd3, b/437820285)
  • Unterstützung für die Verwendung der CameraEffect- und der Featuregruppen-API in SessionConfig hinzugefügt. (I17f18, b/406370934)
  • Unterstützung für die Verwendung der ImageAnalysis- und der Feature Groups API in SessionConfig hinzugefügt. (I87833, b/406371720)

API-Änderungen

  • Die Setter-Funktion addUseCase für ExtensionSessionConfig.Builder und die fehlenden Getter für ExtensionSessionConfig wurden hinzugefügt. (I71e07, b/453988621)
  • Die ExtensionsManager.getInstance API wurde hinzugefügt. Sie ist eine aussetzende Version von ExtensionsManager.getInstanceAsync. (I3a0a9, b/452208792)
  • isFeatureGroupSupported wurde in isSessionConfigSupported umbenannt und unterstützt jetzt alle Arten von SessionConfig. (I21616, b/448781299)
  • ExtensionsManager wurde in eine Kotlin-Implementierung konvertiert. (I73091, b/452208792)
  • CameraProvider#getCameraInfo(CameraSelector, SessionConfig) wurde hinzugefügt, um CameraInfo abzurufen, wenn sich SessionConfig auf die Kameraauswahl auswirken kann. Beispiel: Bei Verwendung eines ExtensionSessionConfig. (Ic548c, b/451891648)
  • ExtensionSessionConfig-API verfügbar gemacht. Apps können jetzt eine ExtensionSessionConfig erstellen und damit eine Erweiterungssitzung starten. (I6354c, b/448524373)
  • Die androidx.camera.video.HighSpeedVideoSessionConfig API ist nicht mehr experimentell und jetzt eine vollständig stabile öffentliche API. (I492d4, b/447558239)
  • Die androidx.camera.core.SessionConfig API ist nicht mehr experimentell und jetzt eine vollständig stabile öffentliche API. (Idc87a, b/447558437)

Fehlerkorrekturen

  • Ein Absturz aufgrund eines IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: unter Android 17 oder höher wurde behoben. (Ibd7b5, b/463465353)
  • Problematische Ausgabegrößen im YUV-Format wurden vom Samsung Z Fold 4-Gerät ausgeschlossen. Die empfangenen Bilder weisen bei Verwendung dieser Ausgabegrößen Verzerrungen auf. (I776bf, b/460322307)
  • Es wurde ein Problem behoben, bei dem CaptureRequest.FLASH_MODE nicht angewendet wurde, wenn es über die Camera2Interop API festgelegt wurde. (I0004c, b/459608684)
  • Ein gerätespezifisches Problem auf dem Samsung A53 wurde behoben, bei dem die Bilderfassung mit aktiviertem Blitz manchmal fehlschlug, wenn der Anwendungsfall VideoCapture gebunden war. (I0f183, b/458197367)
  • Es wurde ein Problem auf einigen Geräten behoben, bei dem die Verwendung des Blitzes mit der Ultraweitwinkelkamera zu unterbelichteten Bildern führen konnte. (Ib7530, b/444590340)

Version 1.6.0-alpha01

22. Oktober 2025

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

Neue Funktionen

  • CameraX wurde auf einen einheitlichen, leistungsstarken Kamera-Stack migriert, der auch von der Pixel-Kamera-App verwendet wird. Dieser neue Stack, der als CameraPipe bezeichnet wird, ist das Ergebnis einer Zusammenarbeit zwischen den CameraX- und Pixel-Kamera-Teams. So wird sichergestellt, dass alle Verbesserungen geteilt werden, was sowohl CameraX-Nutzern als auch der Pixel-Kamera-App zugutekommt.

API-Änderungen

  • Neue APIs für die Erkennung des dynamischen Hinzufügens/Entfernens von Kameras hinzugefügt. Weitere Informationen finden Sie in der CameraPresenceListener API. (I41ead, b/427182232, b/419441394)

Fehlerkorrekturen

  • Die Groups API liefert jetzt konsistente Ergebnisse, wenn PREVIEW_STABILIZATION mit VideoCapture verwendet wird. Damit wird ein Fehler behoben, der zu inkonsistenten Ergebnissen führte, wenn ein Preview-Anwendungsfall nicht ebenfalls aktiv war. (Ifed82, b/449913903)
  • Ein Problem wurde behoben, bei dem nicht unterstützte bevorzugte Funktionen fälschlicherweise verfügbar gemacht wurden. Funktionen werden jetzt korrekt gefiltert, wenn die erforderlichen Anwendungsfälle nicht erfüllt sind. (I38db8, b/449532342)
  • Fehlerhaftes Videoergebnis auf dem Samsung Galaxy S6 behoben. (I612d9, b/235127608)
  • Ein Problem wurde behoben, bei dem CameraInfo#isFeatureGroupSupported fälschlicherweise „true“ für PREVIEW_STABILIZATION zurückgeben konnte, wenn die SessionConfig in der Abfrage bereits mit anderen Funktionen konfiguriert war. (I2c355c, b/437816469)

Kameraversion 1.5

Version 1.5.3

28. Januar 2026

androidx.camera:camera-*:1.5.3 ist veröffentlicht. Version 1.5.3 enthält diese Commits.

Fehlerkorrekturen

  • Die ExifInterface-Abhängigkeit wurde auf 1.4.2 aktualisiert. Dadurch wird ein Fehler bei der Bilderfassung behoben, der auf Geräten auftritt, die JPEGs mit zusätzlichen (und zulässigen) 0xFF-Byte vor einer Markierung erzeugen. (I16df4)

Version 1.5.2

4. Dezember 2025

androidx.camera:camera-*:1.5.2 ist veröffentlicht. Version 1.5.2 enthält diese Commits.

Fehlerkorrekturen

  • Ein Absturz aufgrund eines IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: unter Android 17 oder höher wurde behoben. (Ic9184)
  • Es wurde ein Fehler behoben, der zu inkonsistenten Groups API-Ergebnissen führte, wenn das Feature PREVIEW_STABILIZATION mit dem Anwendungsfall VideoCapture, aber ohne den Anwendungsfall Preview hinzugefügt wurde. (Ifed82)
  • Es wurde ein Problem behoben, bei dem bevorzugte Funktionen nicht herausgefiltert wurden, obwohl die erforderlichen Anwendungsfälle für die Unterstützung der Funktionen fehlten. (I38db8)

Version 1.5.1

8. Oktober 2025

androidx.camera:camera-*:1.5.1 ist veröffentlicht. Version 1.5.1 enthält diese Commits.

Fehlerkorrekturen

  • Unterstützung von CameraEffect im Modus für gleichzeitige Kameraaufnahmen. Der Effekt wird auf die Ausgabe der Komposition angewendet. Beachte, dass mirrorMode in VideoCapture ignoriert wird, wenn der Effekt im Modus für die gleichzeitige Kamerakomposition festgelegt ist. (If3d00, b/425565129)
  • Es wurde ein Problem behoben, bei dem mirrorMode im Modus für die gleichzeitige Kamerakomposition nicht korrekt auf die sekundäre Kamera angewendet wurde. (I686cd, b/446430827)
  • Unterstützung für die Bindung von Preview, ImageCapture und VideoCapture im Modus ohne Zusammenstellung bei gleichzeitiger Kameranutzung. (Ib410a, b/443009871)
  • Es wurde ein Problem behoben, bei dem UseCases wie ImageCapture und VideoCapture ihre Informationen zur Zieldrehung verloren, wenn sie neu erstellt wurden. Dies kann dazu führen, dass Bilder oder Videos eine falsche Ausrichtung haben, wenn eine Einstellung wie imageCaptureMode geändert wurde, nachdem das Gerät gedreht wurde. (I477c8, b/444734537)
  • Es wurde ein Problem behoben, durch das in der Vorschau keine 16:9-Auflösungen ausgewählt werden konnten und VideoCapture nicht mit QUALITY_1080P aufnehmen konnte. Dieses Problem trat auf, wenn eine Standardkonfiguration für die Vorschauauflösung verwendet wurde, während die interne StreamSharing-Funktion aktiv war (z.B. wenn vier UseCases gleichzeitig gebunden waren). (I493cb, b/440364875)
  • Der Absturz, der auftrat, wenn ein Effekt nach dem Herunterfahren von SurfaceProcessor aktiviert wurde, wurde behoben (I2c450, b/414150174).
  • In CameraController wurde ein Fehler behoben, der zu einem IllegalStateException führte, wenn ein erster UseCase die maximale Auflösung auswählte, was anschließend verhinderte, dass andere UseCases gebunden wurden. (Ifb758, b/440374234)
  • Schließt problematische YUV_420_888-Ausgabegrößen für das Nokia 7 Plus aus, die das Problem des unbemerkten Fehlers ohne Fehlermeldungen verursachen. (I3af47, b/436524501)
  • Ein Problem wurde behoben, bei dem CameraInfo#isFeatureGroupSupported für die Funktion PREVIEW_STABILIZATION fälschlicherweise „true“ zurückgeben konnte. Dies kann manchmal vorkommen, wenn Sie eine Abfrage mit einem SessionConfig ausführen, das bereits mit anderen Funktionen konfiguriert wurde. (I2c355, b/437816469)
  • Die Stabilität von CameraXViewfinder auf älteren API-Levels und Geräten mit SurfaceView-Problemen wurde verbessert, indem in solchen Szenarien standardmäßig TextureView verwendet wird. Dieser Fallback-Mechanismus ist die neue Standardeinstellung, kann aber programmatisch überschrieben werden. (Ieb476, b/437496463)
  • Ein Speicherleck in PreviewView wurde behoben, das verhindern konnte, dass die Aktivität durch die automatische Speicherbereinigung entfernt wird. Dies geschieht, wenn ein neuer SurfaceRequest eintrifft, bevor der vorherige verarbeitet wurde. (I4aa0b,b/443112512)
  • Es wurde ein Problem behoben, bei dem die Aufnahme mit hoher Geschwindigkeit/in Zeitlupe auf dem Huawei P smart, Infinix Hot 40i und Realme C53 fehlschlug. (40a668e, b/442984200)

Version 1.5.0

10. September 2025

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

Wichtige Änderungen seit 1.4.0:

  • Highspeed- und Zeitlupenaufnahmen: Highspeed- (120/240 fps) und Zeitlupenaufnahmen lassen sich mit minimalem Code einbinden. Weitere Informationen finden Sie unter Recorder#getHighSpeedVideoCapabilities(CameraInfo) und HighSpeedVideoSessionConfig.
  • SessionConfig- und FeatureGroup-API: Mit der neuen SessionConfig-API kannst du die Kamerasitzung konfigurieren und mehrere Funktionen gleichzeitig aktivieren, darunter HLG (HDR), UltraHDR, 60 fps und Vorschaustabilisierung. Sie können auch eine bevorzugte Featuregruppe mit Priorität festlegen, damit CameraX die optimale unterstützte Kombination ermitteln kann. Weitere Informationen finden Sie unter SessionConfig.Builder#setPreferredFeatureGroup, SessionConfig.Builder#setRequiredFeatureGroup und CameraInfo#isFeatureGroupSupported(SessionConfig).
  • Deterministic Frame Rate API: Beheben Sie frühere Einschränkungen mit setTargetFrameRate, indem Sie CameraInfo.getSupportedFrameRateRanges(sessionConfig) zum Abfragen und SessionConfig.setExpectedFrameRateRange zum Festlegen präziser und unterstützter Frameraten verwenden.
  • Kameraerweiterungen: Das UltraHDR-Format wird jetzt mit Erweiterungen unterstützt. Prüfe ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats() und aktiviere die Option in ImageCapture.Builder.setOutputFormat. Wenn Erweiterungen aktiviert sind, werden jetzt das Zoomverhältnis und die Stabilisierungsfunktionen für die Vorschau berücksichtigt.
  • Taschenlampenhelligkeit: Passe die Helligkeit der Taschenlampe mit CameraControl.setTorchStrengthLevel an.
  • Low Light Boost-Modus: Du kannst den Low Light Boost-Modus(CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) über die folgenden APIs aktivieren: Siehe CameraInfo#isLowLightBoostSupported, CameraInfo#getLowLightBoostState und CameraControl#enableLowLightBoostAsync.
  • Videoaufnahme: VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE wird jetzt ausgelöst, wenn während der Aufnahme nicht genügend Speicherplatz vorhanden ist. Mit PendingRecording.withAudioEnabled(boolean initialMuted) kann der anfängliche Stummschaltungsstatus für die Audioaufnahme gesteuert werden.
  • Bilderfassung: Unterstützung für die Formate DNG (RAW) und JPEG + DNG (RAW) in ImageCapture. Prüfe, ob ImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats() RAW unterstützt. Verwende überladene takePicture-APIs mit mehreren OutputFileOptions für die RAW+DNG-Aufnahme.
  • Bildanalyse: Unterstützung für das NV21-Format in ImageAnalysis. Aktivieren Sie sie mit ImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).

Version 1.5.0-rc01

13. August 2025

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

Fehlerkorrekturen

  • Die Standard-minSdk wurde von API 21 auf API 23 verschoben. (Ibdfca, b/380448311, b/435705964, b/435705223)
  • Die 10-Bit-Ausgabebeschränkung für den automatischen Belichtungsmodus für die Nachtsichtoptimierung wurde entfernt. Anwendungen können jetzt beide Funktionen gleichzeitig auf unterstützten Geräten aktivieren. (I5a638)
  • Es wurde ein Problem behoben, durch das Geräte mit UniSoc-Chipsätzen beim Aufnehmen eines Bildes hängen blieben. Das Problem trat auf, wenn VideoCapture, Preview und ImageCapture gleichzeitig verwendet wurden und alle Streams auf eine Auflösung von 1280 × 720 eingestellt waren. (Ia00c4, b/380802479)
  • Es wurde ein Problem behoben, bei dem in der Vorschau ein schwarzer Bildschirm angezeigt wurde, wenn für die Zeitraffer-/Zeitlupenaufnahme keine hohe Framerate festgelegt war. (cdf0ff2e9)
  • Fehlerbehandlung und Logging in getViewportAspectRatioInt verbessern (82fca18)

Version 1.5.0-beta02

16. Juli 2025

androidx.camera:camera-*:1.5.0-beta02 ist 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 auf allen Geräten als Kombination 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 können Sie prüfen, ob eine Featuregruppe unterstützt wird, bevor Sie eine SessionConfig binden. Mit SessionConfig kann auch ein Listener festgelegt werden, um zu erfahren, welche Funktionen letztendlich ausgewählt werden, wenn eine Sitzungskonfiguration gebunden wird. (Ie4d60)
  • Die neuen APIs SessoinConfig.Builder.setFrameRateRange(Range<Integer>) und CameraInfo.getSupportedFrameRateRanges(SessionConfig) wurden hinzugefügt. Damit können Entwickler garantierte unterstützte Frameraten abfragen, die durch eine bestimmte SessionConfig eingeschränkt sind, und die Framerate dann auf SessionConfig anwenden. (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 ein SessionConfig an einen LifecycleOwner gebunden wird, wird die Kamerasitzung geöffnet, mit den angegebenen Anwendungsfällen und Sitzungsparametern konfiguriert und die angegebenen CameraEffect und ViewPort werden angewendet. Wenn Sie eine neue SessionConfig für dieselbe LifecycleOwner aktualisieren, können Sie einfach eine neue Sessionconfig binden, ohne zuerst „unbind“ oder unbindAll aufrufen zu müssen. (Iedfc3)
  • Neue APIs zum Aufnehmen von Highspeed-/Zeitlupenvideos 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 RAW nicht unterstützen, RAW-Formate als unterstützt gemeldet hat. (Ibcadb)
  • Der Speicherverlust, der bei Verwendung von PreviewView, Aktivierung von CameraEffect oder Bindung von 4 Anwendungsfällen(StreamSharing) auftritt, wurde behoben (I87468).
  • Ein Absturz bei der Videoaufnahme wurde behoben: AssertionError: Ungültiger interner Audiostatus: IDLING. (I38d4b, b/414259796)
  • Es wurde ein Problem behoben, bei dem die Vorschau in PreviewView gestreckt oder seitlich angezeigt wurde, wenn die App auf einem externen Display ausgeführt wurde und das Gerät im Querformat war (Ia917a).
  • Es wurde ein Problem behoben, bei dem die Einstellungen für die Stabilisierung der Vorschau nicht richtig angewendet wurden, wenn der Kamerastream zwischen Vorschau und Videoaufnahme geteilt wurde.(I5430e)
  • CameraXViewfinder verarbeitet jetzt den Oberflächenersatz in der zugrunde liegenden Viewfinder ordnungsgemäß. Dies umfasst Szenarien, in denen ein EXTERNAL-Sucher auf API-Level 28 oder niedriger vom Bildschirm verschwindet oder wenn ein CameraXViewfinder (mit einem beliebigen ImplementationMode) Teil von moveableContentOf() ist. Wenn die zugrunde liegende ViewfinderSurfaceSession nicht aktiv gehalten werden kann, wird die aktuelle CameraX-SurfaceRequest durch die CameraXViewfinder ungültig gemacht, sodass CameraX die neue Surface verwenden kann. (I79432)
  • Es wurde ein Problem unter Android 10/11 behoben, bei dem die EXTERNAL CameraXViewfinder aufgrund von Transformationsvorgängen (z. B. Skalierung oder Übersetzung), die zu früh angewendet wurden, gestreckt oder falsch angezeigt 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)
  • Das Compose-Element CameraXViewfinder funktioniert jetzt korrekt mit dem Pager von Compose. Durch diese Änderung wird sichergestellt, dass das Composable erfolgreich zurückgesetzt werden kann, indem der onReset-Callback von AndroidView implementiert wird. Dabei werden sowohl EMBEDDED- als auch EXTERNAL-Implementierungen unterstützt. (I0d9be)
  • Es wurde ein Speicherleck beim Lebenszyklusinhaber behoben, das auftritt, wenn Anwendungsfälle von einem Lebenszyklusinhaber getrennt werden, ohne den Kameraanbieter zu beenden.

Version 1.5.0-beta01

7. Mai 2025

androidx.camera:camera-*:1.5.0-beta01 ist 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 innerhalb ihres Containers zu skalieren und zu platzieren, ähnlich wie bei androidx.compose.foundation.Image. (Ibcea3)
  • TransformationInfo hat jetzt Standardwerte für alle Argumente. Dadurch können Viewfinder ohne TransformationInfo erstellt werden. Standardmäßig wird dann eine Quelldrehung von 0, keine Quellspiegelung und kein Zuschneiderechteck verwendet. (I2b1b2)
  • LifecycleCameraProvider wurde hinzugefügt. Dies ist ein Kameraanbieter, der mit verschiedenen Konfigurationen für Funktionen instanziiert werden kann, z. B. für den Zugriff auf die Kamera eines virtuellen Geräts durch Konfiguration mit einem benutzerdefinierten Kontext. (Ia2992)

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem die Vorschau eingefroren ist, wenn ImageAnalysis mit einem anderen Stream verwendet wurde, der TEMPLATE_RECORD auf dem Samsung SM-E556B-Gerät verwendet. (Ic0e62, b/409478042)
  • Es wurde ein Problem behoben, bei dem die Vorschau auf dem Samsung SM-M556B-Gerät eingefroren ist, wenn ImageAnalysis mit einem anderen Stream verwendet wurde, der TEMPLATE_RECORD verwendet. (Ic1a6a, b/395822788)
  • Ein Problem mit dem NACHTMODUS (AssertError) von Erweiterungen auf Pixel-Geräten mit Android 15 wurde behoben, das bei Zoomvorgängen auftrat. (I27a5d, b/401460276)
  • Problem mit falschen Begrenzungsrahmenkoordinaten im ML Kit Analyzer bei Verwendung von CameraController behoben. (Iae91b, b/409808510)

Version 1.5.0-alpha06

26. Februar 2025

androidx.camera:camera-*:1.5.0-alpha06 ist 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)
  • Es wurde eine neue API CameraController#setTapToFocusAutoCancelDuration hinzugefügt, mit der Nutzer das Verhalten für den automatischen Abbruch von PreviewView-Ereignissen vom Typ „Zum Fokussieren tippen“ steuern können. Standardmäßig bricht CameraX die Fokussierungsereignisse nach 5 Sekunden ab, d. h. der Kamerafokus wird zurückgesetzt. Mit dieser API kann diese Dauer geändert oder der automatische Abbruch ganz deaktiviert werden. (Icf59a)
  • FLASH_STATE_READY wurde in NOT_FIRED umbenannt und die anderen FlashState-Konstantennamen wurden zur besseren Lesbarkeit vereinfacht. (I8771d)
  • Exposed Low Light Boost API. Geräte mit Android 15 oder höher können die Funktion „Nachtmodus“ 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 Folgendes verwenden: 1. Mit CameraInfo#isLowLightBoostSupported können Sie die Verfügbarkeit der Funktion prüfen. 2. Verwenden Sie CameraControl#enableLowLightBoostAsync, um den Modus zu aktivieren, wenn die Geräte ihn unterstützen. 3. Verwende CameraInfo#getLowLightBoostState, um den Status der Optimierung bei wenig Licht zu überwachen. (I937ed)
  • Kompatibilitätsklassen hinzugefügt, um eine schnellere Abfrage von Nicht-Camera2-Geräten in „camera-feature-combination-query“ zu ermöglichen. (Ie97ee)
  • Für CameraController-Ereignisse, bei denen durch Tippen fokussiert wird, stellt eine neue API getTapToFocusInfoState() jetzt auch die entsprechende Tippposition bereit, indem sie ein LiveData der Klasse TapToFocusInfo zurückgibt. Die vorherige API LiveData<Integer>, die getTapToFocusState() zurückgibt, wird zugunsten der neuen API eingestellt. (I238d2)

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem die Vorschau-Stabilisierung nicht angewendet wurde, wenn sie mit Erweiterungen aktiviert war. (I24ad7)
  • Es wurde ein Problem behoben, bei dem der Fokusstatus CameraController nicht auf TAP_TO_FOCUS_NOT_STARTED zurückgesetzt wurde, wenn CameraX ein Fokusereignis automatisch abbricht. Das passiert standardmäßig nach 5 Sekunden. (I31954)
  • Es wurde ein Problem behoben, bei dem die Vorschau bei Verwendung der Funktion „Zero Shutter Lag“ (ZSL) nach mehreren Aufnahmen aufgrund nicht freigegebener Bildressourcen eingefroren ist. (Ic3c2a)
  • Es wurden Probleme behoben, bei denen UHD-Videos auf einigen Geräten einen Rotstich hatten, wenn die Pipeline OpenGL umfasst. (Idcedc)

Version 1.5.0-alpha05

15. Januar 2025

androidx.camera:camera-*:1.5.0-alpha05 ist 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 Bilderfassung mit der ImageCapture.OnImageCapturedCallback API aufgerufen wird, kann die ImageInfo unter der zurückgegebenen ImageProxy jetzt verwendet werden, um zu erfahren, ob der Blitz über die neue ImageInfo.getFlashState() API ausgelöst wurde. (Id2c61, b/380527406)
  • Unterstützung für das Ausgabeformat OUTPUT_IMAGE_FORMAT_NV21 für ImageAnalysis hinzugefügt. (I484ab)
  • Die experimentelle Annotation des featurecombinationquery-Artefakts wurde entfernt (I4427f)
  • Der zulässige Zoombereich für CameraControl wird durch erweiterungsspezifische Merkmale angepasst, wenn ein Erweiterungsmodus aktiviert ist. (I85af1)

Fehlerkorrekturen

  • compileSdk wurde auf 35 aktualisiert, um die Android 15-bezogene API zu verwenden. Apps, die CameraX-Bibliotheken verwenden, müssen auch ihre compileSdk-Konfigurationseinstellung aktualisieren. (Ic80cd)
  • In dieser Bibliothek werden jetzt JSpecify-Annotationen für Nullsicherheit 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 ist 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 wurden als stabile APIs verfügbar gemacht. (I74fee)

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem auf dem Vivo 1610-Gerät keine Fotos mit Blitz im Dunkeln aufgenommen werden konnten. (I366f4)
  • Ein Problem wurde behoben, bei dem sich die Taschenlampe nach der Bilderfassung auf dem Redmi Note 6 Pro unerwartet ausschaltete. (I2e0e8, b/377144569)
  • Es wurde ein Problem auf Pixel-Geräten mit Android 15 behoben, bei dem im Nachtmodus in Erweiterungen keine Standbilder aufgenommen werden konnten, bis die Kamera auf ein Objekt in der Nähe fokussiert wurde. (I228d4)
  • Das Problem mit der Fehlfunktion bei der Standbildaufnahme wurde behoben, wenn Erweiterungen aktiviert sind und VideoCapture gebunden ist. (I5c745)
  • Unterstützung für die Aufnahme von UltraHDR-Standbildern für Erweiterungen aktiviert, sofern das Gerät dies unterstützt. (I48300)
  • Ein Problem mit dem Blitz-Timing bei der Blitzaufnahme mit CameraEffect-Ziel-Bilderfassungen auf TCL-Geräten wurde behoben. (I7698c)

Version 1.5.0-alpha03

30. Oktober 2024

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

API-Änderungen

  • Ausgabeformat-APIs für RAW und RAW + JPEG ImageCapture hinzugefügt. Die Prüfung der Gerätefunktionen wird in ImageCaptureCapabilities#getSupportedOutputFormats angezeigt. Mit OUTPUT_FORMAT_RAW werden RAW-Bilder 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 Bilderfassung verwendet. Sie muss zwei OutputFileOptions bereitstellen, die erste für das RAW-Bild und die zweite für das JPEG-Bild. (Ib0f3d)

Fehlerkorrekturen

  • Es wurde ein Problem mit der Unterbelichtung von Vorschau und Video auf TCL-Geräten behoben, wenn VideoCapture aktiviert ist. (Id7a64)
  • Das Problem, dass beim Aufrufen von startFocusMetering mit PreviewView.getMeteringPointFactory nicht die richtigen Sensorkoordinaten abgerufen werden, wenn ein Effekt aktiviert ist oder wenn vier Anwendungsfälle gebunden sind (Streamfreigabe), wurde behoben. (I916c5, b/345993685)
  • Es wurde ein Fehler behoben, bei dem das Ereignis VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE nicht ausgelöst wurde, wenn ein Video aufgenommen wurde und nicht genügend Speicherplatz verfügbar war. (I35779, b/356399842)

Version 1.5.0-alpha02

2. Oktober 2024

androidx.camera:camera-*:1.5.0-alpha02 ist 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. Beispiel: Prüfen, 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 Zielframerate von Preview/VideoCapture auf Geräten der LEGACY-Stufe wurde behoben. Die über die setTargetFrameRate- oder Camera2Interop-API festgelegte Zielframerate wurde immer mit dem von der AeFpsRangeLegacyQuirk bereitgestellten Wert überschrieben. Mit dieser Korrektur berücksichtigt die CameraX-Bibliothek den über die setTargetFrameRate- oder Camera2Interop-API festgelegten Wert. (Ie2d32)
  • Blitz-/Taschenlampen-/3A-Funktionen für Bilderfassungen mit CameraEffect hinzugefügt. Die Bilderfassung mit CameraEffect sollte jetzt dieselben Vor- und Nachbearbeitungsschritte (z.B. Blitzauslöser, 3A-Konvergenz usw., falls zutreffend) wie die Bilderfassung ohne CameraEffect haben. (I5ff30)
  • Problematische Ausgabegrößen für ImageAnalysis auf dem Samsung SM-A057G-Gerät wurden ausgeschlossen. Wenn ImageAnalysis eine Auflösung von 1920 × 1440 oder höher verwendet, wird die Vorschau schwarz angezeigt. ExcludedSupportedSizesQuirk wurde auf das SM-A057G-Gerät angewendet, um das Problem zu vermeiden. (I63dfe, b/365877975)
  • Es wurde ein Problem mit der Zielframerate von Preview/VideoCapture behoben, das auftrat, wenn der Mechanismus zum Teilen von Streams intern aktiviert war, um einen Stream mit Preview und VideoCapture zu teilen. (I4fdac)
  • Der Workaround zur Behebung des Problems mit falschen JPEG-Bildmetadaten auf Samsung S10e- und S10+-Geräten wurde aktiviert. Mit der Fehlerbehebung kann CameraX das JPEG-Bild erfolgreich speichern oder es können korrekte Bitmap-Objekte zurückgegeben werden, wenn die Funktion ImageProxy.toBitmap() auf diesen Geräten aufgerufen wird, falls das Problem mit den falschen JPEG-Bildmetadaten auftritt. (Iae493, b/356428987)
  • Erweiterungen für die Rückkamera des Samsung A52s mit der ID 0 wurden deaktiviert, da beim Aufnehmen 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)
  • Es wurde ein Fehler behoben, bei dem das Ereignis VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE nicht ausgelöst wurde, wenn ein Video aufgenommen wurde und nicht genügend Speicherplatz verfügbar war. (Ia5b4f, b/356399842)
  • Ein Problem wurde behoben, bei dem der zweite Versuch einer Videoaufnahme auf dem Oppo A5 (CPH1931) fehlschlug. (I181d6)

Version 1.5.0-alpha01

4. September 2024

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

Neue Funktionen

  • Für den CameraX Viewfinder Compose Adapter wurde ein neues Artefakt, camera-compose, veröffentlicht, das einen Vorschaustream von einer CameraX-SurfaceRequest aus camera-core anzeigt. (I8666e)
  • Es wurde eine neue zusammensetzbare Funktion (CameraXViewfinder) hinzugefügt, die als idiomatische zusammensetzbare Funktion fungiert und 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 die Überblendung, der Versatz in x- und y-Koordinaten sowie die Skalierung der Breite und Höhe des Anzeigefensters für den Kameraframe. Der Versatz, die Breite und die Höhe werden in normalisierten Gerätekoordinaten angegeben. (Ia2b8a)
  • CameraProvider.getCameraInfo wurde als formale 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

  • Ein Absturz wurde behoben, der auftrat, wenn bindToLifecycle mit einem zerstörten LifecycleOwner aufgerufen wurde. (I6e6d8)
  • Es wurde ein Problem behoben, bei dem die Vorschau der Frontkamera auf dem Motorola Edge 20 Fusion schwarz war, wenn sie mit VideoCapture verbunden war. (I1fe88)
  • Die Konfiguration für die Erkennung von Zoom-Gesten in PreviewView wurde optimiert, um die flüssige Darstellung zu verbessern. (I04ffc)

Kameraversion 1.4

Version 1.4.2

26. März 2025

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

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem die Vorschau auf dem Samsung Galaxy M55 eingefroren ist, wenn ImageAnalysis mit einem anderen Stream verwendet wurde, der TEMPLATE_RECORD verwendet. (Ic1a6a, b/395822788)

Version 1.4.1

11. Dezember 2024

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

Fehlerkorrekturen

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

Version 1.4.0

30. Oktober 2024

androidx.camera:camera-*:1.4.0 ist 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. Zusammenfassung:

Hauptfunktion: 10-Bit-HDR:

  • Atemberaubende HDR-Fotos und ‑Videos aufnehmen – ganz einfach.
  • Unterstützt HLG- und 10-Bit-HEVC-Codierung.
  • 10-Bit-HDR-Vorschau und Abfrage von Gerätefunktionen.
  • Funktioniert mit UltraHDR-Bildern und HDR-Videos auf immer mehr Geräten.

Weitere coole Funktionen:

  • Kotlin-Erweiterungen: Die Sperrfunktionen takePicture und awaitInstance wurden hinzugefügt.
  • Echtzeiteffekte: Sie können Effekte wie Wasserzeichen und Objekthervorhebung anwenden.
  • CameraController API: Neue Steuerelemente für die Konfiguration von Videoaufnahmen.
  • Vorschau-Stabilisierung: Gerätefunktion abfragen und Stabilisierung aktivieren.
  • Verbesserungen bei VideoCapture: genauere Kontrolle über die Qualität und Zugriff auf höhere Auflösungen.
  • Integration von CameraX-Erweiterungen: Nahtlose Integration mit VideoCapture und neuen ImageCapture-Funktionen.
  • Shutter Sound API: Damit lassen sich regionale Anforderungen an den Auslöseton ganz einfach prüfen.
  • Aufleuchten bei Benachrichtigungen: Verbesserte Fotos bei wenig Licht für Frontkameras.
  • Camera Extensions Metadata APIs: Unterstützende APIs zum Anpassen der Stärke von Erweiterungen und zum Erhalten 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 ist veröffentlicht. Version 1.4.0-rc04 enthält diese Commits.

Fehlerkorrekturen

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

Version 1.4.0-rc03

2. Oktober 2024

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

Fehlerkorrekturen

  • Blitz-/Taschenlampen-/3A-Funktionen für Bilderfassungen mit CameraEffect hinzugefügt. Die Bilderfassung mit CameraEffect sollte jetzt dieselben Vor- und Nachbearbeitungsschritte (z.B. Blitzauslöser, 3A-Konvergenz usw., falls zutreffend) wie die Bilderfassung ohne CameraEffect haben. (I5ff30)
  • Die Gleichmäßigkeit des Zoomens durch Auf- und Zuziehen in PreviewView wurde optimiert (I04ffc).
  • Ultra HDR wird von der 10‑Bit-Ausgabefunktion entkoppelt, da für die Ultra HDR-Unterstützung keine 10‑Bit-Ausgabefunktion mehr erforderlich ist. (I96ff2, I0c3b3)

Version 1.4.0-rc02

18. September 2024

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

Fehlerkorrekturen

  • Ein Absturz wurde behoben, der auftrat, wenn bindToLifecycle mit einem zerstörten LifecycleOwner aufgerufen wurde. (I6e6d8)
  • In ScreenFlashView wurde eine Sichtbarkeitsanimation für ScreenFlash#apply hinzugefügt. Dadurch werden auch Fehler behoben, die auftreten, wenn die Helligkeitsänderung nach einiger Zeit asynchron abgeschlossen wird. (I37cdb)
  • Die Zoomfunktion wurde verbessert, indem die Zoomeinstellungen im Framework auf unterstützten Geräten überschrieben wurden.

Version 1.4.0-rc01

7. August 2024

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

Neue Funktionen

  • Experimentelle CameraInfo.getCameraInfo hinzugefügt, um spezifische Kamerainformationen bereitzustellen, ohne dass Anwendungsfälle an die Kamera gebunden werden 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 der Belichtung und dem Farbstich wurden behoben, wenn eine Bilderfassung mit aktiviertem Blitz bei schwachem Licht und gebundenem VideoCapture-Anwendungsfall aufgenommen wurde. (Ic9814)
  • Es wurde ein Problem behoben, bei dem das Unterbrechen einer takePicture-Anfrage bei aktivierten Erweiterungen dazu führen konnte, dass kein Ergebnis zurückgegeben wurde und die nächste takePicture-Anfrage möglicherweise nicht mehr funktionierte. (Iae78f)
  • Ein Problem mit Speicherlecks, das bei aktivierten Erweiterungen auftritt, wurde behoben. (Iab276)
  • Eine Fehlfunktion der CameraX-Erweiterungen auf Geräten wie dem Pixel 7/8 und der Samsung Galaxy S24-Serie wurde behoben. Das Problem, das auf ein Camera2OutputConfigImpl-Konvertierungsproblem im Releasemodus zurückzuführen ist, trat nach dem Upgrade des Android-Gradle-Plug-ins auf Version 8.5.1 und der Aktivierung der Reduzierung auf. (I99598, b/354824993)

Version 1.4.0-beta02

12. Juni 2024

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

API-Änderungen

  • Fügen Sie ähnlich wie bei VideoCapture auch 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 wird er nicht unterstützt. (I821f4)

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem Apps auf dem Samsung Tab A8 keine Bilder aufnehmen konnten, wenn ImageCapture unter der Kombination Preview + VideoCapture + ImageCapture UseCase die Option „1920 × 1080“ auswählt. (I5a463, b/336925549)
  • Es wurde ein Problem behoben, bei dem die Aufnahme 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 ist veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem für die Standbildaufnahme und die Funktion „Zum Fokussieren tippen“ nicht die Werte für den FPS-/Stabilisierungsmodus der wiederholten Anfrage verwendet wurden. Dies konnte dazu führen, dass die Aufnahmesitzung neu erstellt wurde und es zu Latenzproblemen oder zum Einfrieren der Vorschau auf einigen Geräten kam. (I7dc0b)
  • Es wurde ein Fehler behoben, durch den auf einigen Geräten keine hohen Auflösungen ausgewählt werden konnten, wenn CameraEffect aktiviert war. (z.B. 4000 × 3000 auf dem Samsung A32 5G). (Ie3ed3, b/337336152)
  • Ein Absturz beim Aufnehmen eines Bildes mit Vorschau, ImageCapture und VideoCapture(UHD) sind auf Pixel 4 XL API29 gebunden. (I5b288)
  • Unterstützung virtueller Geräte: Der an ProcessCameraProvider übergebene Kontext behält die Geräte-ID bei, um die Funktionalität in einer virtuellen Geräteumgebung zu gewährleisten. (I5ba48)

Version 1.4.0-alpha05

17. April 2024

androidx.camera:camera-*:1.4.0-alpha05 ist 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

  • Ausgabeformat-APIs zu ImageCapture und die Methode getSupportedOutputFormats zu ImageCaptureCapabilities hinzugefügt, 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 komprimierte Ultra HDR-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 reguläre JPEGs 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)
  • PhysicalCameraInfo in CameraInfo hinzugefügt, um Informationen zur physischen Kamera abzufragen, und Setter/Getter für die ID der physischen Kamera in CameraSelector hinzugefügt (Ic5b90)
  • Ersetzen Sie CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED durch ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. Der Wert der Konstante bleibt gleich. Dadurch 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 des ImageCaptureLatencyEstimate-Objekts zur Unterstützung der Testbarkeit aktivieren (Iaba99)
  • Fügen Sie eine ImageAnalysis#COORDINATE_SYSTEM_SENSOR hinzu. Wenn diese Option verwendet wird, gibt die MlKitAnalyzer Koordinaten im Koordinatensystem des Kamerasensors zurück. (I3ec61)
  • API für Metadaten von Erweiterungen verfügbar gemacht. Über die neuen Schnittstellen CameraExtensionsInfo und CameraExtensionsControl können Anwendungen die Einstellungen für die Stärke der Erweiterung ü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 hinzugefügt, eine aussetzende Version von ProcessCameraProvider.getInstance (Ib22b9)
  • Fügen Sie eine PreviewView#getSensorToViewTransform()-API hinzu. Die Matrix stellt die Transformation von Kamerasensorkoordinaten in die Koordinaten des PreviewView dar. Damit können Koordinaten von einem UseCase in ein anderes transformiert werden. Beispielsweise werden die Koordinaten erkannter Objekte in ImageAnalysis in das PreviewView-Overlay transformiert. (I947ab)
  • camera-viewfinder-core-API allgemeiner gestalten, damit sie von camera-viewfinder und camera-viewfinder-compose verwendet werden kann. (I1e295)
  • Fügen Sie die Funktion getSurface zu ViewfinderSurfaceRequest hinzu. (I781a0)
  • Verwenden Sie camera-viewfinder-core in camera-viewfinder und stellen Sie ViewfinderSurfaceRequest und CameraViewfinder ein. (I6198c)
  • ZoomGestureDetector wurde hinzugefügt, um Skalierungsgesten zu interpretieren, die speziell für die Aktivität „Zum Zoomen auseinander- oder zusammenziehen“ konfiguriert sind. (Ifafbf)

Fehlerkorrekturen

  • Problem mit der Auflösungsauswahl von ImageAnalysis im Zusammenhang mit der Standardeinstellung für die Zielauflösung des Analysators behoben: Die Zielauflösung wurde fälschlicherweise auf 640 × 480 beibehalten, auch wenn in Anwendungen eine andere Standardeinstellung für die Analysatorauflösung festgelegt wurde. Wenn dieses Problem (1.3.0 bis 1.3.2) bei Anwendungen auftritt 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 die ImageAnalysis UseCase festgelegt wird. (I81f72, b/330091012)
  • Es wurde ein Problem behoben, bei dem eine in die Warteschlange gestellte takePicture-Anfrage möglicherweise nicht ausgeführt wurde, 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 der Fehlerbehebung kann CameraX das JPEG-Bild erfolgreich speichern oder es können korrekte Bitmap-Objekte zurückgegeben werden, wenn die Funktion ImageProxy.toBitmap() auf Samsung A24-Geräten aufgerufen wird. (I8d6eb, b/309005680)
  • Die Prüfung auf ungültige JPEG-Daten wird auf allen Samsung-Geräten 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 von ImageAnalysis in CameraX-Erweiterungen wurde entfernt, da die Erweiterungsimplementierungen 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 ist 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. So kann die App ein Wasserzeichen anwenden oder erkannte Objekte in Kameraausgaben hervorheben.
  • DynamicRange-APIs für den Anwendungsfall „Vorschau“: Der Dynamikbereich kann jetzt unabhängig vom Anwendungsfall „Video“ für den Anwendungsfall „Vorschau“ 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 Dynamikbereiche die einzelnen Kameras unterstützen.

API-Änderungen

  • ScreenFlashUiCompleter wurde in ScreenFlashListener umbenannt und ScreenFlashUiCompleter#getExpirationTimeMillis wurde in den Parameter expirationTimeMillis 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. Dadurch können HDR-Dynamikbereiche wie HLG10 nur für den Anwendungsfall „Vorschau“ verwendet werden, ohne dass gleichzeitig ein VideoCapture gebunden werden muss. (If25e3)
  • getMirroring() wurde in isMirroring() umbenannt (I47063)
  • In CameraX wurde die Unterstützung für die Schätzung der Latenz bei der Echtzeit-Standbildaufnahme 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, der Kamerastatus und die Zeit für die Verarbeitung von Anfragen zur Aufnahme mehrerer Frames sowie gegebenenfalls zusätzliche Zeit für die Codierung verarbeiteter Zwischenspeicher 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 bereitzustellen. (Iccdd0)

Fehlerkorrekturen

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

Version 1.4.0-alpha03

13. Dezember 2023

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

Neue Funktionen

  • CameraInfo.mustPlayShutterSound wurde hinzugefügt, um Informationen darüber bereitzustellen, 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 das Auslösergeräusch oder die Auslöseranimation abzuspielen. (Ic49b3)
  • Unterstützung für die Funktion „Aufleuchten bei Benachrichtigungen“ in CameraX für die Bilderfassung mit der Frontkamera hinzugefügt. CameraX übernimmt die API-Verarbeitung auf Framework-Seite und synchronisiert das Timing nach Bedarf mit den Änderungen an der Benutzeroberfläche der App (z.B. AE-Precapture-Trigger nach Änderung der Farbe/Helligkeit des App-Bildschirms). Apps müssen nur ihre UI-seitigen Implementierungen in der ScreenFlashUiControl-Schnittstelle hinzufügen, die für CameraX bereitgestellt wird. (I8ae84)
  • Unterstützung für die UI-seitige Implementierung der Funktion „Aufleuchten bei Benachrichtigungen“ in CameraX hinzugefügt. Apps können eine einfache ImageCapture.ScreenFlashUiControl-Implementierung von PreviewView oder dem neu hinzugefügten ScreenFlashView erhalten, wodurch eine einfarbige Overlay-Ansicht hinzugefügt und die Bildschirmhelligkeit während der Fotoaufnahme mit Aufleuchten bei Benachrichtigungen maximiert wird. (I1810e)

API-Änderungen

  • Unterstützung für neue Erweiterungsfunktionen(Postview und Fortschritt des Aufnahmevorgangs): ImageCapture#getImageCaptureCapabilities()-APIs wurden hinzugefügt, damit Apps die Funktionen des Postview- und Aufnahmevorgangs-Callbacks abfragen können. Apps können die Postview-Funktion über ImageCapture.Builder#setPostviewEnabled() aktivieren. Die Größe der Postview-Anzeige 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 Postview- und Verarbeitungsfortschrittsbenachrichtigung zu erhalten, sofern unterstützt. (I5cd88)
  • APIs zur Berechnung der Koordinatentransformation vom Sensor zum aktuellen Zwischenspeicher, mit einem Flag, das angibt, ob die Oberfläche die Informationen zur Kameraausrichtung enthält. (I59096)
  • API zum Abfragen von PreviewCapabitlity in der Vorabversion UseCase verfügbar machen. (Ie5b6c)
  • APIs zur Unterstützung weiterer Qualitäten für VideoCapture hinzugefügt. 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 versucht, UHD-Videos aufzunehmen, wann immer dies möglich ist, aber die CamcorderProfile des Geräts keine UHD-Einstellungen enthält, obwohl der Codec in der Lage ist, UHD-Videos aufzunehmen. (Iedbe2, b/263961771)
  • Füge ImageAnalysis-Ausgabeformat-Getter/Setter zu CameraController hinzu. (I9a96c, b/308240643)

Fehlerkorrekturen

  • Kamera 1.3.1: Die Leistung der 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)
  • Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung A71- und M51-Serie behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im komprimierten JFIF-Datensegment. Die aufgenommenen Bilder haben eine extrem große Dateigröße. Diese redundanten 0-Padding-Daten werden entfernt, damit die aufgenommenen Bilder normale Bilddateigrößen haben. (I01afc, b/288828159)
  • Deaktiviere die ImageAnalysis-Unterstützung auf Pixel, um den Fehler auf Pixel zu vermeiden, der versehentlich die nicht leeren unterstützten ImageAnalysis-Größen zurückgibt. (I7ec31)
  • Es wurde ein Leistungsproblem behoben, bei dem die CPU-Auslastung und der Stromverbrauch bei aktivierten Erweiterungen gestiegen sind. (Ibdccb)
  • Snapdragon 480 wurde zu CameraUseInconsistentTimebaseQuirk hinzugefügt. Damit wird ein Problem unter Android 12 auf Geräten mit diesem Chipsatz behoben, bei dem der Ton in Aufnahmen um die Zeitspanne versetzt ist, in der sich das Gerät im Ruhezustand befindet. (I58010)

Version 1.4.0-alpha02

18. Oktober 2023

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

API-Änderungen

  • Benennen Sie die API in setCameraOpenRetryMaxTimeoutInMillisWhileResuming um und benennen Sie das Argument um. (I72370)
  • Hinzufügen von APIs, um die Gerätefunktionen abzufragen und die Video-/Vorschau-Stabilisierung zu aktivieren. (I87544)
  • API zum Anpassen der maximalen Zeitüberschreitung für das erneute Öffnen der Kamera bereitstellen. (I0c642)
  • ProcessCameraProvider.shutdownAsync wurde als öffentliche Test-API veröffentlicht, damit der Prozesskameraanbieter in Test-Suites verwendet werden kann, in denen CameraX zwischen Tests möglicherweise auf unterschiedliche Weise initialisiert werden muss. (I9eca7)
  • 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 zur Auswahl von Auflösungen und ist mit der Camera Core API konsistent. (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 der gestreckten VideoCapture auf dem Moto E5 Play wurden behoben. (73dce2)

Version 1.4.0-alpha01

20. September 2023

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

API-Änderungen

  • Neue API hinzugefügt, um während der Aufnahme auf Informationen zur Audioamplitude zuzugreifen. (Id4925)

Fehlerkorrekturen

  • Die Stabilität von Erweiterungen wurde verbessert, indem sichergestellt wurde, dass die Initialisierungs- und Deinitialisierungsereignisse in der richtigen Reihenfolge ausgelöst werden. (Ib3b8e)
  • Fehler bei der Konfiguration der Aufnahmesitzung behoben, der auftrat, weil die unterstützte Oberflächenkombination überschritten wurde, da intern eine zusätzliche sich wiederholende Oberfläche hinzugefügt wurde. (Id718c)
  • Das Problem mit großen aufgenommenen JPEG-Bildern auf Vivo S16-Geräten wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im komprimierten JFIF-Datensegment. Die aufgenommenen Bilder haben eine große Dateigröße. Diese redundanten 0-Padding-Daten werden entfernt, damit die aufgenommenen Bilder normale Bilddateigrößen haben. (I79505, b/299069235)
  • Es wurde ein Problem behoben, bei dem ImageAnalysis nicht zusammen mit ImageCapture und der Vorschau gebunden werden konnte, wenn auf einigen Geräten bestimmte Erweiterungsmodi aktiviert waren. Durch die Korrektur wird der richtige Wert zurückgegeben, wenn Apps die Verfügbarkeit von ImageAnalysis über ExtensionsManager#isImageAnalysisSupported() abfragen. (I7d538)
  • JavaDoc wurde an das Verhalten angepasst. Anstatt sofort abgeschlossen zu werden, warten #setZoomRatio, #setLinearZoom und #enableTorch, bis die Kamera bereit ist. Außerdem wurden Informationen dazu hinzugefügt, wie Sie mit der #takePicture API das maximale Sichtfeld erhalten. (I23588)

Version 1.3

Version 1.3.4

12. Juni 2024

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

Fehlerkorrekturen

  • Das Problem, dass getZoomRatio fälschlicherweise einen verringerten Wert zurückgegeben hat, wenn ein zunehmendes Zoomverhältnis angewendet wurde, wurde behoben. (I4aa0d, b/317543616)
  • Es wurde ein Problem behoben, bei dem für die Standbildaufnahme und die Funktion „Zum Fokussieren tippen“ nicht die Werte für die FPS/den Stabilisierungsmodus der wiederholten Anfrage verwendet wurden. Dies konnte dazu führen, dass die Aufnahmesitzung neu erstellt wurde, was wiederum zu Latenzproblemen oder zum Einfrieren der Vorschau auf einigen Geräten führen konnte. (I7dc0b)
  • Es wurde ein Problem behoben, bei dem die Framerate auf einen niedrigeren Wert gesetzt wurde, wenn setTargetFrameRate mit FRAME_RATE_RANGE_UNSPECIFIED aufgerufen wurde. (I78c61)

Version 1.3.3

17. April 2024

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

Fehlerkorrekturen

  • Problem mit der Auflösungsauswahl von ImageAnalysis im Zusammenhang mit der Standardeinstellung für die Zielauflösung des Analysators behoben: Die Zielauflösung wurde fälschlicherweise auf 640 × 480 beibehalten, auch wenn in Anwendungen eine andere Standardeinstellung für die Analysatorauflösung festgelegt wurde. Wenn dieses Problem (1.3.0 bis 1.3.2) bei Anwendungen auftritt 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 den ImageAnalysis-UseCase festgelegt wird. (I81f72, b/330091012)

Version 1.3.2

6. März 2024

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

Fehlerkorrekturen

  • Ein Problem mit JPEG-Metadaten auf Samsung A24-Geräten wurde behoben. CameraX speichert Bilder jetzt korrekt und die Funktion ImageProxy.toBitmap() gibt korrekte Bitmap-Objekte zurück. (I8d6eb, b/309005680)
  • Die Auflösungsoption 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 ist 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 zu CameraUseInconsistentTimebaseQuirk hinzugefügt. Damit wird ein Problem unter Android 12 auf Geräten mit diesem Chipsatz behoben, bei dem der Ton in Aufnahmen um die Zeitspanne versetzt ist, in der sich das Gerät im Ruhezustand befindet. (I58010)

Version 1.3.0

18. Oktober 2023

androidx.camera:camera-*:1.3.0 ist 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 ist veröffentlicht. Version 1.3.0-rc02 enthält diese Commits.

Fehlerkorrekturen

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

Version 1.3.0-rc01

23. August 2023

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

API-Änderungen

  • PendingRecording.asPersistentRecording wurde hinzugefügt, damit eine Aufzeichnung rund um die Uhr fortgesetzt werden kann, während der VideoCapture, an den der Rekorder 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 behoben, bei dem auf LEGACY-Geräten ein schwarzer Bildschirm angezeigt wurde, wenn die Streamfreigabe aktiviert war.
  • Es wurde ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung S7-Serie (SM-G930T, SM-G930V) behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im komprimierten JFIF-Datensegment. Die aufgenommenen Bilder haben eine große Dateigröße. Diese redundanten 0-Padding-Daten werden entfernt, damit die aufgenommenen Bilder normale Bilddateigrößen haben. (I407b0, b/288828159)
  • Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung S22- (SM-S901B, SM-S901B/DS) und S22+-Serie (SM-S906B) behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im komprimierten JFIF-Datensegment. Dadurch haben die aufgenommenen Bilder auf dem S22 SM-S901B/DS eine große Dateigröße von etwa 13 MB. Diese redundanten 0-Padding-Daten werden entfernt, damit die aufgenommenen Bilder normale Bilddateigrößen haben. (I73be9, b/288828159)
  • Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung-Serien A5, A52, A70 und A72 behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im komprimierten JFIF-Datensegment. Dadurch haben die aufgenommenen Bilder eine extrem große Dateigröße (z. B. etwa 32 MB oder sogar 96 MB). Diese redundanten 0-Padding-Daten werden entfernt, damit die aufgenommenen Bilder normale Bilddateigrößen haben. (I97c4d, b/288828159)
  • Der native Absturz beim Aufnehmen von Bildern mit aktivierten Erweiterungen wurde behoben (I698f5).

Version 1.3.0-beta02

26. Juli 2023

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

Fehlerkorrekturen

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

Version 1.3.0-beta01

21. Juni 2023

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

API-Änderungen

  • Der Funktionsname ResolutionSelector.Builder#setHighResolutionEnabledFlag(int) wurde in setAllowedResolutionMode umbenannt und die Konstanten ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON wurden 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 HDR-Formate (High Dynamic Range) als Ausgabe von VideoCapture bis VideoCapture.Builder#setDynamicRange() ausgewählt werden. (Ib0377)
  • Der ExtensionsManager wurde eine isImageAnalysisSupported API hinzugefügt, mit der Apps feststellen können, ob ein ImageAnalysis-Anwendungsfall zusammen mit der Vorschau und ImageCapture gebunden werden kann, wenn Erweiterungen aktiviert sind. (I1bc63)
  • Die neue Klasse VideoCapabilities, die von Recorder abgerufen wird, kann verwendet werden, um die unterstützten Dynamikbereiche und Qualitäten für die Videoaufnahme auf dem Gerät abzufragen. Die Methoden getSupportedQualities() und isQualitySupported() von QualitySelector werden eingestellt. Verwenden Sie stattdessen die Methoden getSupportedQualities() und isQualitySupported() von VideoCapabilities. (I04014)
  • CameraController#setVideoCaptureTargetQuality() wird in setVideoCaptureQualitySelector umbenannt und verwendet 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 ausgelöst. (I81958, b/282057603)

Version 1.3.0-alpha07

24. Mai 2023

androidx.camera:camera-*:1.3.0-alpha07 ist 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 Frameraten als der Standardframerate des Geräts aufgenommen werden. Die verfügbaren Frameraten 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 ein Set anstelle eines List zurück, um besser darzustellen, dass die Bereiche nicht sortiert sind. (I02f43)
  • CameraEffect wurde ein Fehler-Listener hinzugefügt, um nicht behebbare Fehler zu verarbeiten (Ice471)
  • Öffentlicher Konstruktor in ResolutionInfo für bessere Testbarkeit hinzugefügt (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)
  • Die neuen APIs Preview#getTargetFrameRate und Preview.Builder#setTargetFrameRate wurden hinzugefügt, um die Zielframerate für den Anwendungsfall „Vorschau“ 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 automatischen Speicherbereinigung beendet wird. (Iba974)

Fehlerkorrekturen

  • NullPointerException wurde korrigiert, wenn die im Cache gespeicherten Ausgabegrößen in StreamConfigurationMapCompat null sind. (Idf124, b/282025204)
  • Das Problem, dass Preview.setSurfaceProvider(null) die Vorschau in Erweiterungen nicht pausiert, wurde behoben (Ia903e).
  • Es wurde ein Problem behoben, bei dem ConcurrentModificationException beim Öffnen der Kamera ausgelöst wird, wenn VideoCapture gebunden ist. (Ic8ac4)

Version 1.3.0-alpha06

19. April 2023

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

Neue Funktionen

  • Die gleichzeitige Kameranutzung ist eine neue Funktion, die mit Android 11 eingeführt wurde. Sie unterstützt das gleichzeitige Streaming von Kamerageräten, sodass beispielsweise die Front- und die Rückkamera eines Geräts gleichzeitig verwendet werden können. CameraX unterstützt derzeit nur zwei gleichzeitig aktive Kameras, wobei für jede Kamera maximal zwei {@link UseCase}s gebunden werden können. Die maximale Auflösung beträgt 720p oder 1440p. Weitere Informationen findest du unter CameraManager#getConcurrentCameraIds().
  • Die neue ResolutionSelector API bietet die folgenden Funktionen:
    • Anwendungen können Strategien für Seitenverhältnis und Auflösung angeben, um die beste Auflösung für ihre Anforderungen auszuwählen.
    • Alle Größen- und Seitenverhältnisparameter werden in den Koordinaten des Kamerasensors ausgedrückt.
    • 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 eine hohe Auflösung zu längeren Aufnahmezeiten führen kann.
    • VideoCapture-Spiegelungs-APIs hinzugefügt. Videos, die mit VideoCapture aufgenommen werden, werden standardmäßig nicht gespiegelt. Die Kameravorschau wird jedoch standardmäßig auf der Frontkamera gespiegelt. Mit den Spiegelungs-APIs von VideoCapture ist es möglich, die Kameraausrichtung an der Kameravorschau auszurichten, wenn die Frontkamera verwendet wird. Es gibt drei MirrorMode, OFF, ON und ON_FRONT_ONLY. Für die Ausrichtung an der Kameravorschau wird empfohlen, ON_FRONT_ONLY zu verwenden. Das bedeutet, dass die Spiegelung für die Rückkamera nicht aktiviert ist, für die Frontkamera aber schon.

API-Änderungen

  • Neue ResolutionSelector-API verfügbar gemacht. Anwendungen können Strategien für Seitenverhältnis und 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 mit hoher Auflösung zu aktivieren. Dadurch kann CameraX beim Aufnehmen von Fotos oder Videos höhere Auflösungen auswählen. Beachten Sie jedoch, dass eine hohe Auflösung zu längeren Aufnahmezeiten führen kann. (Ibed95)
  • Die vom AE-Algorithmus unterstützten FPS-Bereiche können jetzt über CameraInfo#getSupportedFrameRateRanges() abgefragt werden. (Iaa67f)
  • Die Namen aller Framerate-Methoden werden in „FrameRate“ zusammengefasst. Javadoc-Fehler in VideoCapture#getTargetFrameRate() korrigiert (I83304)
  • Die Legacy-APIs setTargetAspectRatio und setTargetResolution wurden verworfen. Verwenden Sie stattdessen die neue ResolutionSelector API. (I542c3)
  • Öffentliche APIs für die gleichzeitige Dual-Kamera hinzugefügt, einschließlich
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn() und ConcurrentCameraConfig, SingleCameraConfig und ConcurrentCamera (Iab1c1)
  • ImageProcessor.Response#getOutputImage als NonNull festlegen (Ib9c60)
  • VideoCapture-Spiegelungs-APIs hinzugefügt, einschließlich VideoCapture.Builder.setMirrorMode(int) und VideoCapture.getMirrorMode(). Die APIs sind nützlich für Anwendungen, bei denen die Videoaufzeichnung mit dem üblichen Verhalten der Kameravorschau übereinstimmen muss, d.h. 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)
  • Lassen Sie SurfaceOutput die Schnittstelle „Closable“ erweitern und verbergen Sie den öffentlichen Konstruktor von SurfaceOutput.Event. (I60ea8)
  • Recording.mute wurde hinzugefügt, um die Stummschaltung einer Aufnahme während der Verarbeitung dynamisch aufzuheben oder zu aktivieren. RecordingStats enthält AudioStats.AUDIO_STATE_MUTED, wenn die Aufnahme während der Verarbeitung explizit stummgeschaltet wird. (Ie17fc)
  • Der Parameter #setEffects() ist jetzt nicht null. Eine #clearEffects() API zum Löschen von Effekten hinzugefügt. Die App sollte #clearEffects() aufrufen, um Effekte zu entfernen. (I4b4d9)
  • Zweiter Konstruktor für ViewfinderSurfaceRequest.Builder hinzugefügt, um einen Builder für den Kopierkonstruktor zu verwenden (I621a7)

Fehlerkorrekturen

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

Version 1.3.0-alpha05

22. März 2023

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

API-Änderungen

  • VideoCapture-Rotations-APIs hinzugefügt, einschließlich 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 Effektziel zulassen. Effekte, die auf VIDEO_CAPTURE abzielen, werden auf den UseCase VideoCapture angewendet. Effekte, die auf PREVIEW|VIDEO_CAPTURE abzielen, werden auf einen freigegebenen Stream angewendet, bevor sie in die Vorschau und den Stream VideoCapture kopiert werden. (Iee6f3)

Fehlerkorrekturen

  • Aus Kamera 1.2.2: Es wurde ein Problem behoben, bei dem CameraX-Erweiterungen nicht richtig funktionierten, wenn ProGuard auf einigen Geräten wie Pixel aktiviert war (I90aa2).
  • Es wurde ein Fehler in PreviewView behoben, durch den die Vorschau beim Drehen verzerrt werden konnte, wenn die App die Bildschirmausrichtung selbst verwaltet. Dies geschieht nur auf bestimmten Geräten. Es 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 ist veröffentlicht. Version 1.3.0-alpha04 enthält diese Commits.

Neue Funktionen

Eine neue Funktion zur Unterstützung bisher nicht unterstützter Surface-Kombinationen durch die Freigabe eines Streams für mehrere UseCases.

  • Bisher hat CameraX IllegalArgumentException ausgegeben, wenn „Preview, VideoCapture, ImageAnalysis“ auf der Kamerahardwareebene FULL und darunter oder „Preview, VideoCapture, ImageCapture“ auf der Hardwareebene LEGACY gebunden wurde.
  • Das neue Verhalten ist, dass die Bindungen funktionieren, ohne dass Ausnahmen ausgelöst werden. Stattdessen wird in CameraX OpenGL verwendet, um einen freigegebenen Stream sowohl in die Vorschau als auch in VideoCapture zu kopieren.
  • Durch die Kosten für die Pufferkopie kann es bei der App zu einer Erhöhung der Latenz und des Stromverbrauchs 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üge CoroutineCameraViewfinder hinzu, um die Konfiguration des Suchers mit Sperrfunktionen in Kotlin zu unterstützen. (I657bc)
  • Neuen öffentlichen Konstruktor für ViewfinderSurfaceRequest hinzufügen. Sie bietet Flexibilität, wenn der Nutzer CameraCharacteristics nicht angeben kann. (Ie6549)

Fehlerkorrekturen

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

Version 1.3.0-alpha03

25. Januar 2023

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

API-Änderungen

  • CameraInfo.getIntrinsicZoomRatio wurde hinzugefügt, um Informationen zum Blickwinkel im Verhältnis zur Standardkamera bereitzustellen. (Ib300c)
  • CameraInfo.getLensFacing wurde hinzugefügt, um Informationen zur Ausrichtung der Linse bereitzustellen. CameraSelector#LENS_FACING_EXTERNAL als experimentelle Funktion zur Auswahl externer Kameras hinzugefügt (Icaf3e)
  • Füge #setEffect() zu CameraController hinzu, damit der Kameraausgabe Effekte hinzugefügt werden können. (I1d21f)
  • Fügen Sie die Methode invalidate() zu SurfaceRequest hinzu. Der Surface-Anbieter kann mitteilen, dass die zuvor bereitgestellte Oberfläche nicht mehr gültig ist. (Idc649)
  • Fügen Sie eine ImageProcessor-API hinzu. Diese Schnittstelle dient zum Einfügen von Nachbearbeitungseffekten in die ImageCapture-Pipeline. (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 Ziel-Videocodierung BitRate festzulegen, und Recorder#getTargetVideoEncodingBitRate, um die Bitrate der Ziel-Videocodierung abzurufen. (I5984d)

Fehlerkorrekturen

  • Fehler behoben, bei dem ImageCapture fehlschlug, wenn kein Blitz vorhanden und der Blitzmodus aktiviert war. (I9e8b4, b/263391112)
  • Ein Problem mit der Beschädigung von JPEG-Bildern beim Schreiben von EXIF-Standortdaten auf einigen Samsung-Geräten mit Android 12 wurde behoben. (Ib7086, b/263747161, b/263289024)
  • Wenn Sie die Taschenlampe oder den Zoom vor Abschluss der Kamerainitialisierung einstellen, z.B. durch Aufrufen von CameraController#enableTorch, wird die ausstehende Aktion im Cache gespeichert und nach Abschluss der Initialisierung gesendet. (I11e92, b/264157663)

Version 1.3.0-alpha02

7. Dezember 2022

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

API-Änderungen

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

Fehlerkorrekturen

  • Verworfene core.VideoCapture API entfernen. (I531e0)
  • Das Problem, dass der onError-Callback nicht aufgerufen wird, wenn Bilder ohne 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 Bilderfassung und der Vorschau gibt, die nicht fortgesetzt wird. (Id3ce3)
  • Es wurde ein nativer Absturz behoben, der auftrat, wenn das Zuschneiden von Videos über ViewPort auf älteren Geräten aktiviert war. (I16b8a, b/251357665)

Version 1.3.0-alpha01

9. November 2022

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

Neue Funktionen

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

API-Änderungen

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

Fehlerkorrekturen

  • Es wurde eine Problemumgehung hinzugefügt, damit einige problematische Geräte die Aufnahme einmal wiederholen können, wenn Aufnahmefehler auftreten. (Id4795)
  • Problem mit schwarzem Bildschirm bei der PreviewView-SurfaceView-Implementierung auf ViewPager2 behoben. Im Rahmen der Fehlerbehebung wird PreviewView die 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)
  • Es wurde ein Problem behoben, bei dem mit der Frontkamera aufgenommene Videos auf dem Huawei P40 lite nicht aufgezeichnet wurden. (I87c57, b/250807400)

Version 1.2

Version 1.2.3

24. Mai 2023

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

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem VideoCapture auf einigen Geräten nicht mit der Frontkamera funktionierte. Beispielsweise 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 ist veröffentlicht. Version 1.2.2 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem, dass CameraX-Erweiterungen nicht richtig funktionieren, wenn ProGuard auf einigen Geräten wie Pixel aktiviert ist, wurde behoben (I90aa2).

Version 1.2.1

25. Januar 2023

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

Fehlerkorrekturen

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

Version 1.2.0

7. Dezember 2022

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

Wichtige Änderungen seit 1.1.0

  • Neue Bibliothek „camera-mlkit-vision“. CameraX lässt sich ganz einfach in viele MLKit-Funktionen einbinden, z. B. Barcode-Scannen, Gesichtserkennung und Texterkennung. MLKitAnalyzer wurden als neue APIs hinzugefügt.
  • Neue experimentelle Zero-Shutter Lag API. Optimiert die Aufnahmepipeline, um die Latenz zu verbessern und gleichzeitig eine gute Bildqualität beizubehalten. 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 voraussichtlich minimiert. Auf Geräten, die ZERO_SHUTTER_LAG nicht unterstützen, wird auf CAPTURE_MODE_MINIMIZE_LATENCY zurückgegriffen.
  • Stellen Sie android.camera.core.VideoCapture ein.
  • setStreamUseCase() wurde als öffentliche Camera2Interop API hinzugefügt.
  • API-Level-Anforderung für setOutputImageRotationEnabled hinzugefügt.
  • ImageAnalysis.Analyzer#getTargetResolutionOverride() wurde in ImageAnalysis.Analyzer#getDefaultTargetResolution() umbenannt.
  • API zum Festlegen von Standortmetadaten für das gespeicherte Video hinzugefügt.
  • Problem mit niedriger Framerate bei Verwendung von VideoCapture und Vorschau-Anwendungsfällen mit einem Seitenverhältnis von 16:9 behoben
  • Es wurde ein Problem behoben, bei dem die Vorschau schwarz wurde, wenn die BOKEH-Erweiterung auf einigen Samsung-Geräten aktiviert war und der Nutzer die Kamera wechselte.
  • Problem mit gestrecktem Preview/VideoCapture auf Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) auf Geräten mit API-Level 27 behoben.
  • Der Workaround zum horizontalen Spiegeln des AF-Bereichs der Frontkameras auf Samsung Android T wurde deaktiviert, da das Problem behoben wurde.

Version 1.2.0-rc01

24. Oktober 2022

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

API-Änderungen

  • Fügen Sie die setStreamUseCase API für OutputConfiguration hinzu. Nutzer können den Stream-Anwendungsfall für die Stream-Sitzung angeben und die interne Logik von CameraX überschreiben, um den Stream-Anwendungsfall entsprechend ihren Anforderungen zu optimieren. (Ib1a95)

Fehlerkorrekturen

  • Problem mit gestrecktem Preview/VideoCapture auf Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) auf Geräten mit API-Level 27 behoben. Bei einer Auflösung von 1920 x 1080 werden die Preview/VideoCapture-Bilder gestreckt. Eine Problemumgehung wurde 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)
  • Problem mit niedriger Framerate bei Verwendung von VideoCapture und Vorschau-Anwendungsfällen mit einem Seitenverhältnis von 16:9 auf einigen Huawei-Geräten behoben. (If8c88, b/223643510)
  • Es wurde ein Fehler behoben, durch den die Kamera nicht geöffnet werden konnte, wenn SurfaceProvider der Vorschau nicht festgelegt war. Im Rahmen der Fehlerbehebung wird die Vorschau ohne festgelegte SurfaceProvider jetzt nicht mehr in der Kameraaufnahmesitzung konfiguriert. (I99681)

Version 1.2.0-beta02

21. September 2022

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

API-Änderungen

  • API-Level-Anforderung für setOutputImageRotationEnabled hinzugefügt (I26e3e, b/240993561)

Fehlerkorrekturen

  • Der Workaround zum horizontalen Spiegeln des AF-Bereichs der Frontkameras auf Samsung Android T wurde deaktiviert, da das Problem behoben wurde. (I05f69)
  • Es wurde ein Problem behoben, bei dem auf einigen Samsung-Geräten eine schwarze Vorschau angezeigt wurde, wenn die BOKEH-Erweiterung aktiviert war und der Nutzer die Kamera wechselte. (If6168)

Version 1.2.0-beta01

24. August 2022

androidx.camera:camera-*:1.2.0-beta01 ist 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, z. B. Barcode-Scannen, Gesichtserkennung und Texterkennung. Hier finden Sie Beispielcode.
  • Neue experimentelle Zero-Shutter Lag API. Optimiert die Aufnahmepipeline, um die Latenz zu verbessern und gleichzeitig eine gute Bildqualität beizubehalten. 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.
  • ImageAnalysis.Analyzer und MLKitAnalyzer wurden zu offiziellen APIs gemacht.
  • API zum Festlegen von Standortmetadaten für das gespeicherte Video verfügbar gemacht.
  • Benennen Sie ImageAnalysis.Analyzer#getTargetResolutionOverride() in ImageAnalysis.Analyzer#getDefaultTargetResolution() um.

Fehlerkorrekturen

  • Ein Problem mit der Bilderfassung auf dem Alps k61v1_basic_ref wurde behoben. Die von der HAL aufgenommenen JPEG-Bilder enthalten falsche EXIF-Metadaten. Die Exif-Metadaten enthalten nicht das Tag „0xffd9“ oder „0xffda“, damit ExifInterface die Attribute korrekt 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 ist 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 wird außerdem so geändert, dass der von dieser Methode zurückgegebene Wert durch den Wert von ImageAnalysis#setTargetResolution() überschrieben werden kann. (If1d36)
  • API zum Festlegen von Standortmetadaten für das gespeicherte Video verfügbar gemacht. 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 ein Foto mit ungebundener Vorschau aufgenommen wurde (Ie70b6, b/235119898)
  • Ein Absturz in Recorder wurde behoben, der auftrat, wenn versucht wurde, eine Aufnahme zu starten, während die Audioquelle nicht verfügbar war. (I9f652)

Version 1.2.0-alpha03

29. Juni 2022

androidx.camera:camera-*:1.2.0-alpha03 ist 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

  • Es wurde ein Standard-Timeout von 5.000 ms für den Autofokus hinzugefügt. Dadurch wird der Autofokus-Teil mit isFocusSuccessful = false abgeschlossen, wenn FocusMeteringAction nicht abgebrochen wird und der Autofokus-Teil nicht innerhalb der Dauer konvergiert. (Ibc2e3)
  • Problem behoben, bei dem ein Bild mit ungebundener Vorschau aufgenommen wurde (I1d3a2, b/235119898)
  • Erweiterte Extender-Implementierung aktiviert und die Version der CameraX-Support-Erweiterungsschnittstelle auf 1.2 aktualisiert (I92256)

Version 1.2.0-alpha02

1. Juni 2022

androidx.camera:camera-*:1.2.0-alpha02 ist 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

  • Füge den neuen Aufnahmemodus CAPTURE_MODE_ZERO_SHUTTER_LAG in ImageCapture und isZslSupported in CameraInfo hinzu, um die Gerätefunktion abzufragen. Der Modus „CAPTURE_MODE_ZERO_SHUTTER_LAG“ soll die minimale Latenz für die sofortige Aufnahme bieten. Sie basiert auf einem Ringpuffer, der Zwischenergebnisse der Aufnahme zwischenspeichert, damit sie später noch einmal verarbeitet werden können, wenn der Nutzer die Tasten zum Aufnehmen von Bildern drückt. Wenn {@link VideoCapture} gebunden ist, der Blitzmodus nicht auf „AUS“ steht oder die OEM-Erweiterung aktiviert ist, wird dieser Modus automatisch deaktiviert. (I9ae74)
  • Methode ImageAnalysis.getBackgroundExecutor() hinzugefügt (Icc945)

Fehlerkorrekturen

  • Die Methode „ImageCapture takePicture“ schaltet die Taschenlampe auf den gemeldeten Geräten aus. (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 ist veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

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

Fehlerkorrekturen

  • Fehler behoben, bei dem QualitySelector kein UHD-Video aufzeichnet, wenn eine Fallback-Strategie aktiviert ist. Das Problem tritt auf, wenn VideoCapture mit ImageCapture und der Vorschau auf einem Kameragerät mit Hardware-Level FULL oder höher 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 von Anwendungsfällen unterstützt und sollte verwendet werden. (I0e788, b/230651237)
  • NullPointerException am ImageCapture.takePicture() behoben. (I92366, b/230454568, b/229766155)
  • Fehler beim asynchronen Pausieren von androidx.camera.video.Recorder behoben (Ia8ce8)

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 ist veröffentlicht. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit 1.0.0

  • Die Bibliotheken „Landed View“, „Extension“ und „Video Capture“ wurden als erste RC-Version veröffentlicht. Ab 1.1.0-beta01 haben alle CameraX-Bibliotheken dieselbe Versionsnummer. So können Entwickler Versionen viel einfacher im Blick behalten und die Komplexität großer Versionskompatibilitätsmatrizen reduzieren.
  • Neue öffentliche APIs und Funktionen wurden eingeführt, darunter:
  • Füge die offizielle camera-video-Bibliothek hinzu, um Anwendungsfälle für die Videoaufnahme zu unterstützen.
  • YUV-zu-RGB-Konvertierung und Rotationsfunktion (ImageAnalysis.Builder.setOutputImageRotationEnabled und setOutputImageFormat)
  • Unterstützung des Mehrfenstermodus, indem CameraX-Anwendungen die Kamera fortsetzen können, wenn die Kamera von einer anderen App unterbrochen wird und der Fokus wiederhergestellt ist.
  • Sorgt dafür, dass CameraX auf faltbaren Geräten gut funktioniert, indem einige Probleme mit der Vorschau behoben werden.
  • Es wurde eine CameraState API hinzugefügt, die über CameraInfo bereitgestellt wird.
  • API ProcessCameraProvider.getAvailableCameraInfos() hinzugefügt, um Informationen zu den verfügbaren Kameras direkt abzurufen
  • JPEG-Format für ImageCapture#OnImageCapturedCallback ausgeben, wenn Erweiterungen aktiviert sind.
  • In CameraInfo wurde die API isFocusMeteringSupported hinzugefügt, mit der Anwendungen prüfen können, ob die angegebene FocusMeteringAction von der aktuellen Kamera unterstützt wird.
  • Die getResolutionInfo-API wurde verfügbar gemacht, um Auflösungsinformationen für die Vorschau, ImageCapture und ImageAnalysis bereitzustellen.
  • Die neue API ImageCapture.Builder#setJpegQuality wurde hinzugefügt, um die Komprimierungsqualität des JPEG-Ausgabebilds beim Aufnehmen von Bildern zu ändern.
  • CameraSelector#filter wurde der öffentlichen API hinzugefügt, um eine Liste von CameraInfos anhand eines CameraSelector zu filtern.
  • Camera2CameraControl.clearCaptureRequestOptions wurde hinzugefügt, um die vorhandenen Optionen für Erfassungsanfragen zu löschen.
  • Eine experimentelle API wurde hinzugefügt, um CameraController mit externen Bildverarbeitungsbibliotheken wie MLKit zu verwenden.
  • Die experimentelle API CameraInfo#getCameraSelector() wurde hinzugefügt, die eine für die Kamera eindeutige CameraSelector zurückgibt.
  • Mehrere experimentelle APIs wurden zu formellen öffentlichen APIs hochgestuft
  • Die Annotation @Experimental wurde bei experimentellen APIs durch @RequiresOptIn ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle der verworfenen 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(),
  • APIs von @ExperimentalCameraFilter
  • experimentelle APIs für die Belichtungskorrektur.
  • Die experimentelle UseCaseGroup API für camera-core, camera-lifecycle und camera-video wurde hochgestuft. ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection und ViewPort.Builder#setScaleType zum Anpassen des Darstellungsbereichs hinzugefügt.
  • ExperimentalUseCaseGroupLifecycle wurde zu einer offiziellen öffentlichen API hochgestuft.
  • Änderungen an den bestehenden APIs
  • Renamed MediaStoreOutputOptions.getCollection zu MediaStoreOutputOptions.getCollectionUri.
  • ActiveRecording wurde in „Aufzeichnung“ umbenannt, um die Ausführlichkeit zu reduzieren.
  • Die Creator-API QualitySelector wurde in eine listenbasierte API geändert

Fehlerkorrekturen

  • Ein Problem mit YuvToJpegProcessor EOFException wurde behoben, das auftrat, wenn der Erweiterungsmodus aktiviert und der ImageCapture#CAPTURE_MODE_MAX_QUALITY-Modus festgelegt war.
  • Fehler bei der festen Codeckonfiguration behoben, der auftrat, weil die Videoaufzeichnung geschlossen wurde
  • Das Problem, dass das Seitenverhältnis der Vorschau/des Videos bei Aufnahmen in FHD gestreckt wurde, wurde behoben.
  • Es wurde ein Problem behoben, bei dem Audio und Video nach dem Pausieren und Fortsetzen auf einigen Geräten nicht synchron waren.
  • Es wurde ein Problem behoben, bei dem der Blitz beim Tippen zum Fokussieren (startFocusAndMetering) ausgelöst wurde, wenn der Blitzmodus bei schlechten Lichtverhältnissen auf „Automatisch“ oder „Immer an“ eingestellt war.

Version 1.1.0-rc02

1. Juni 2022

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

Fehlerkorrekturen

  • NullPointerException am ImageCapture.takePicture() behoben. (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 ist 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öffentlichen

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem der Videocodec nicht freigegeben wurde, wenn die Bindung von VideoCapture<Recorder> aufgehoben wurde. Dadurch schlugen nachfolgende Verwendungen von VideoCapture<Recorder> bei der Aufnahme mit MediaCodec.CodecException fehl, insbesondere auf Geräten mit API 21–22. (Ie7f68)
  • Problem behoben, bei dem aufgenommene Bilder von CameraExtensionsActivity in ImageCaptureTest nicht gelöscht wurden

Version 1.1.0-beta03

6. April 2022

androidx.camera:camera-*:1.1.0-beta03 ist 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, bei dem die Vorschau in PreviewView seitlich angezeigt wurde, wenn die Aktivität nach dem Drehen des Geräts 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) es sich um ein Samsung-Gerät mit Android 12 handelte. (I7e9f2)
  • Workaround für Geräte, die abstürzen, wenn die Verfügbarkeit von Flash geprüft wird. Auf diesen Geräten ist die Taschenlampe nicht verfügbar. (If26a3, b/216667482)
  • Ein AbstractMethodError-Problem wurde behoben, das auftrat, wenn Apps Erweiterungen verwendeten und ProGuard aktiviert war. (I7cbaf, b/222726805)
  • Der Bokeh-Erweiterungsmodus wird auf dem Motorola razr 5G erzwungen deaktiviert, da er zu einem schwarzen Vorschaubildschirm führt. (I35d49)
  • Es wurde ein Problem behoben, bei dem Audio und Video nach dem Pausieren und Fortsetzen auf einigen Samsung-Geräten mit einer API-Version vor 29 nicht mehr synchron waren. (I64622, b/202798609, b/202798572)
  • Es wurde ein Problem behoben, bei dem Audio und Video nach dem Pausieren und Fortsetzen auf dem Sony G3125 nicht mehr synchron waren. (I2a1a5, b/202799148)
  • Ein Absturz wurde behoben, der auftrat, wenn der Rekorder auf einen InvalidConfigException stieß. Diese Korrektur verhindert jedoch nur, dass die App abstürzt, behebt aber nicht die Ursache des InvalidConfigException. Wenn die Recorder weiterhin nicht konfiguriert werden kann, erhalten Anwendungen einen Fehler-Callback, wenn die Aufzeichnung beginnt. (I89c29, b/213617227)

Externer Beitrag

  • :compose:ui:ui-test API (updateApi) aufgrund der Migration von test-coroutines-lib aktualisiert (I3366d)

Version 1.1.0-beta02

23. Februar 2022

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

API-Änderungen

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

Fehlerkorrekturen

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

Version 1.1.0-beta01

26. Januar 2022

androidx.camera:camera-*:1.1.0-beta01 ist 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 im Blick behalten und die Komplexität großer Versionskompatibilitätsmatrizen reduzieren.

API-Änderungen

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

Fehlerkorrekturen

  • Es wurde ein Absturz behoben, der bei der Videoaufnahme auf einigen Geräten mit einer Android-Version vor Android O(API 26) auftrat. (I88fdf, b/212328261)
  • Problem mit falschem AF-Bereich bei Verwendung von cameraControl#startFocusAndMetering() auf der Frontkamera von Samsung-Geräten behoben (Ifbf59, b/210548792)
  • Taschenlampe als Blitz auf dem Pixel 3a/Pixel 3a XL verwenden, um die Geschwindigkeit und die Qualität des aufgenommenen Bildes im Dunkeln zu verbessern (Ib12b6, b/211474332)
  • Ermöglicht Anwendungen, die Kamera wieder zu verwenden, 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 Sekunde 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 ist veröffentlicht. Version 1.1.0-alpha12 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Das Problem, dass im FLASH_AUTO-Modus aufgenommene Fotos bei schlechten Lichtverhältnissen auf dem Pixel 3a und Pixel 3a XL unterbelichtet sind, wurde behoben (I13f19, b/205373142).
  • Verwenden Sie immer die aktuelle Anzeigegröß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 Mindestfunktionen, die jedes Kameragerät unterstützt. Eine Kamera ohne REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE ist möglicherweise eine Kamera, 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 keine IllegalArgumentException mehr aus, wenn die Ergebnismenge leer ist. (I27804)
  • Es werden jetzt intelligentere Heuristiken verwendet, um Encoder-Einstellungen basierend auf OEM-spezifischen Profilen auszuwählen. (Iaeef0)
  • Es wurde ein Problem behoben, bei dem in der Vorschau nach dem Start der UHD-Videoaufnahme auf dem Pixel 1 interlaced Farblinien angezeigt wurden. (I833c6, b/205340278)

Version 1.1.0-alpha11

17. November 2021

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

API-Änderungen

  • Der öffentlichen API wurde „CameraSelector#filter“ hinzugefügt, um eine Liste von „CameraInfo“-Objekten anhand eines „CameraSelector“-Objekts zu filtern. (I105d0)
  • Die API „setOutputImageRotationEnabled“ wurde für die ImageAnalysis-Konfiguration hinzugefügt. Nutzer können die Drehung für den YUV-/RGB-Bildpuffer aktivieren. Der Rotationsgrad ist eine relative Rotation, die auf der Sensorrotation und der Zielrotation basiert, damit das Bild im Vordergrund bleibt.

  • Die API „setOutputImageRotationEnabled“ wurde für die ImageAnalysis-Konfiguration hinzugefügt. Nutzer können die Drehung für den YUV-/RGB-Bildpuffer aktivieren. Der Rotationsgrad ist eine relative Rotation, die auf der Sensorrotation und der Zielrotation basiert, damit das Bild im Vordergrund bleibt.

    getSensorToBufferTransformMatrix-API in ImageInfo hinzufügen. Die zurückgegebene Matrix ist eine Zuordnung von Sensorkoordinaten zu Zwischenspeicherkoordinaten, also vom Wert von CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE zu (0, 0, image.getWidth, image.getHeight). Mit der Matrix können die Koordinaten von einem {UseCase} einem anderen zugeordnet werden. Beispiel: Zuordnung der mit ImageAnalysis erkannten Gesichtserkennungskoordinaten zur Vorschau. (I9ff1e)

  • Die neue API „ImageCapture.Builder#setJpegQuality“ wurde hinzugefügt, um die Komprimierungsqualität des JPEG-Ausgabebilds beim Aufnehmen von Bildern zu ändern. (I8dcf4)

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

Fehlerkorrekturen

  • Es wurde ein Problem 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. (Id4c11)
  • HDR+ auf dem Pixel 2 XL und Pixel 3 XL im Modus MINIMIZE_LATENCY deaktiviert, um die Latenz zu reduzieren. (Ib6270, b/203505523)

Externer Beitrag

Version 1.1.0-alpha10

13. Oktober 2021

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

Neue Funktionen

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

API-Änderungen

  • Die Annotation @RequiresApi(21) wurde allen CameraX-Klassen hinzugefügt und „minSdkVersion“ wurde aus der AndroidManifest.xml entfernt. Dadurch kann „camera-core“ einfach in Anwendungen eingebunden werden, die eine minSdkVersion unter 21 haben, aber bedingt Codepfade verwenden möchten, die auf API 21 und höher basieren. Für Anwendungen mit minSdkVersion 21 oder höher sind keine Maßnahmen erforderlich. (Ie7f2e, b/200599470)

Fehlerkorrekturen

  • Löse eine InitializationException aus, damit die App den AssertionError, der beim Erstellen von CameraCharacteristics aufgetreten ist, 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

  • Behebe das Problem, dass die aufgenommenen Fotos im MAXIMIZE_QUALITY-Modus unscharf sind. (I173a9, b/193823892)
  • Ein Problem beim Samsung Galaxy J5 wurde behoben, bei dem die Kamera hängen blieb, nachdem in einer dunklen Umgebung Bilder mit Blitz (ein/automatisch) 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 setOutputImageFormat API wurde für die Konfiguration der Bildanalyse hinzugefügt. Der Nutzer kann „ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888“ oder „ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888“ auswählen. Standardmäßig wird 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

  • Der Vorschaubildschirm auf dem Huawei P20 Lite war zu hell. Dieses Problem tritt nur auf, wenn bestimmte spezielle Vorabversionen zusammen mit einem großen Zoomwert verwendet werden. (Idefce, b/192129158)
  • Es wurde ein Problem behoben, bei dem der Blitz auf einigen Geräten nicht funktionierte, wenn der Blitzmodus auf FLASH_MODE_ON gesetzt und kurz danach ein Foto aufgenommen wurde. (Ieb49b)
  • Ein Problem wurde behoben, bei dem die Vorschau beim Aufnehmen von Bildern für eine Weile angehalten wurde, wenn VideoCapture, ImageCapture und Preview gebunden waren. (I56197, b/193864120)
  • Ermöglicht ImageAnalysis, eine Auflösung von mehr als 1080p auszuwählen. Ein Gerät mit der Stufe LIMITED kann eine Auflösung der Größe RECORD für ImageAnalysis unterstützen, wenn es zusammen mit Preview und ImageCapture gebunden ist. Der Nachteil ist, dass die ausgewählte Auflösung für ImageCapture auch eine RECORD-Größe sein muss. Damit eine RECORD-Größenauflösung für ImageAnalysis ausgewählt werden kann, muss sowohl für ImageCapture als auch für ImageAnalysis eine RECORD-Zielauflösung festgelegt werden. Das zeigt, dass die Anwendung den Kompromiss klar versteht und eine höhere Auflösung für ImageAnalysis einer maximalen Auflösung für ImageCapture vorzieht. Definitionen von RECORD, MAXIMUM und weitere Informationen findest du unter https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Die RECORD-Größe bezieht sich auf die maximal unterstützte Aufnahmeauflösung der Kamera, die durch CamcorderProfile bestimmt wird. Die MAXIMALE Größe bezieht sich auf die maximale Ausgabeauflösung 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)
  • In ImageCapture wird der URI des gespeicherten Bildes zurückgegeben, wenn der Speicherort „Datei“ ist. (Ib5b49, b/149241379)
  • Es wurde ein Problem 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 nach dem Aufnehmen von Bildern mit Blitz (ein/automatisch) in dunkler Umgebung hängen blieb (If6871).
  • YuvToJpegProcessor-EOFException-Problem behoben, das auftrat, wenn der Erweiterungsmodus aktiviert und der ImageCapture#CAPTURE_MODE_MAX_QUALITY-Modus festgelegt war. (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

  • Die experimentellen APIs für die Belichtungskorrektur für camera-core wurden hochgestuft (I08ee8).
  • In „CameraInfo“ wurde die API „isFocusMeteringSupported“ hinzugefügt, mit der Anwendungen prüfen können, ob die jeweilige „FocusMeteringAction“ von der aktuellen Kamera unterstützt wird. (Ib45ae, b/188606490)
  • Die getResolutionInfo API wurde verfügbar gemacht, um 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 verfügbar gemacht, um Zugriff auf eine Reihe von Kameras zu ermöglichen. (I1a7b1)
  • Die experimentelle UseCaseGroup API für camera-core, camera-lifecycle und camera-video wurde hochgestuft. ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection und ViewPort.Builder#setScaleType zum Anpassen des Darstellungsbereichs 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

  • Camera2CameraFilter-Klasse entfernt. Schlage vor, die Kamera über „CameraFilter“ auszuwählen und bei Bedarf „CameraCharacteristics“ oder andere Camera2-bezogene Informationen über „Camera2CameraInfo“ abzurufen. (Ib887c)
  • ExperimentalCameraFilter-APIs befinden sich nicht mehr in der experimentellen Phase und sind jetzt offizielle APIs. Sie können ohne OptIn-Anmerkung verwendet werden. (I4bc94)
  • 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 für die Kamera eindeutigen CameraSelector zurückgibt (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).
  • Schnellerer Kamerawechsel und weniger Fehler bei der Kamera (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 Vorschauinstanz beibehalten wird. (I7b4b8)
  • Die Annotation @Experimental wurde bei experimentellen APIs durch @RequiresOptIn ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle des verworfenen androidx.annotation.experimental.UseExperimental. (Iff226)
  • Behoben: ImageCapture mit Blitz „Ein“/„Auto“ nimmt auf dem Samsung Galaxy S7 verwaschene Bilder auf. (I30001)
  • Eine CameraState API wurde 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

  • JPEG-Ausgabeformat für ImageCapture#OnImageCapturedCallback, wenn der Erweiterungsmodus aktiviert ist. (I0d7b1)
  • Fehler bei der Initialisierung auf UMIDIGI BISON-Geräten behoben (I57d9e, b/180818665)
  • Die gestreckte Vorschau auf dem Samsung A3 in PreviewView wurde korrigiert. (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

  • Es wurde eine API ProcessCameraProvider.getAvailableCameraInfos() hinzugefügt, um Informationen zu den verfügbaren Kameras direkt abzurufen. Dabei handelt es sich entweder um alle Kameras des Geräts oder um die Kameras, die vom CameraSelector in CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector) ausgewählt wurden. (Ieac08)

Fehlerkorrekturen

  • CameraX versucht jetzt, beim ersten Versuch das Öffnen einer Kamera zu erzwingen. Dies kann dazu führen, dass CameraX die Kamera von anderen Kamera-Clients übernimmt, wenn die App eine höhere Priorität hat. (Iab069, b/175820568)
  • Der Robolectric-Testfehler bei Verwendung von „setAvailableCamerasLimiter“ in „CameraXConfig“ wurde behoben. (Ice307)
  • Mit dieser Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt abzustürzen, kann es also sein, dass andere Anwendungsfälle einfrieren oder träge werden, z. B. die Vorschau. (Ic12da, b/175851631)
  • „ExtensionsErrorListener“ wurde korrigiert, sodass Fehler gemeldet werden, wenn nur „Preview“ oder „ImageCapture“ gebunden ist. (I5ae39)
  • Die Leistungseinbußen bei ImageCapture wurden behoben, indem die Validierung des Speicherorts des Bildes vor der Aufnahme entfernt wurde. Wenn nach dieser Änderung das Speicherziel ungültig ist, dauert es länger, bis die Fehlermeldung angezeigt wird, da versucht wird, das Bild nach der Aufnahme zu speichern. (I1fd4e, b/177061560)
  • Die Leistungseinbußen bei ImageCapture mit OutputFileOptions vom Typ „File“ wurden behoben. (I5164a, b/177061560)
  • Die Dokumentation wurde aktualisiert, um von der Verwendung von ProcessCameraProvider.configureInstance(...) aus dem Bibliothekscode abzuraten. (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

  • Workaround für zeitweise beschädigte Bilddaten in JPEGs auf der Rückkamera des SM-G930T enthalten. (I52001, b/159831206)
  • Ein Problem mit IllegalArgumentException wurde behoben, das auftrat, wenn alle unterstützten Vorschaugrößen kleiner als 640 × 480 und die Anzeigegröße größer als 640 × 480 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

  • Behebe das Problem, dass die aufgenommenen Fotos im MAXIMIZE_QUALITY-Modus unscharf sind. (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, dass die in setZoomRatio und setLinearZoom zurückgegebene ListenableFuture auf einigen Android 11-Geräten nicht abgeschlossen werden kann, wurde behoben (I716d7).

  • Es wurde ein Problem behoben, bei dem die Kamera auf einigen Geräten im Status „Kamera wird geschlossen“ hängen blieb und eine schwarze Vorschau angezeigt wurde. (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 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

  • Behoben: ImageCapture mit Blitz „Ein“/„Auto“ nimmt auf dem Samsung Galaxy S7 verwaschene Bilder auf. (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

  • Formatfehler im Dokument von ProcessCameraProvider#getInstance beheben
  • Der Robolectric-Testfehler bei Verwendung von „setAvailableCamerasLimiter“ in „CameraXConfig“ wurde behoben.
  • Die Leistungsregression von ImageCapture wurde behoben, indem die Validierung des Speicherorts des Bildes vor der Aufnahme entfernt wurde. Wenn das Speicherziel nach dieser Änderung ungültig ist, dauert es länger, bis die Fehlermeldung angezeigt wird, da versucht wird, das Bild nach der Aufnahme zu speichern.
  • Mit dieser Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt eines Absturzes kann es also vorkommen, dass andere Anwendungsfälle einfrieren oder träge reagieren, z. B. die Vorschau.
  • Workaround für zeitweise beschädigte Bilddaten in JPEGs auf der Rückkamera des SM-G930T enthalten. (I52001, b/159831206)
  • Mit dieser Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt abzustürzen, kann es also sein, dass andere Anwendungsfälle einfrieren oder träge werden, z. B. die Vorschau. (Ic12da, b/175851631)
  • Der Robolectric-Testfehler bei Verwendung von „setAvailableCamerasLimiter“ in „CameraXConfig“ wurde behoben. (Ice307)
  • Die Leistungsregression von ImageCapture wurde behoben, indem die Validierung des Speicherorts des Bildes vor der Aufnahme entfernt wurde. Wenn nach dieser Änderung das Speicherziel ungültig ist, dauert es länger, bis die Fehlermeldung angezeigt wird, da versucht wird, das Bild nach der Aufnahme zu speichern. (I1fd4e, b/177061560)
  • Die Leistungseinbußen bei ImageCapture mit OutputFileOptions vom Typ „File“ wurden 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 IllegalArgumentException-Problem wurde behoben, das auftrat, wenn alle unterstützten Vorschaugrößen kleiner als 640 × 480 und die Displaygröße größer als 640 × 480 war. (b/150506192)
  • Anzahl der Versuche, die Kamera wieder zu öffnen, begrenzen. Wenn beim Öffnen der Kamera bestimmte Probleme auftreten, versucht CameraX nicht mehr unbegrenzt, die Kamera wieder zu öffnen, sondern bricht nach 10 Sekunden ab.I435d2

  • Ein Problem mit IllegalArgumentException wurde behoben, das auftrat, wenn alle unterstützten Vorschaugrößen kleiner als 640 × 480 und die Anzeigegröße größer als 640 × 480 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 geändert, um „CameraInfo“ zu übernehmen. (I6883d)
  • Die experimentelle Klasse „Camera2CameraControl“ wurde hinzugefügt, um die dynamische Interoperabilität mit Camera2-APIs zu ermöglichen. (I45cf3)
  • „Camera2CameraInfo#fromCameraInfo“ wurde in „#from“ umbenannt. (Ia2bd6)
  • Die experimentelle API „setAvailableCamerasLimiter“ wurde zu „CameraXConfig“ hinzugefügt, damit Apps die Initialisierungslatenz optimieren können, indem nicht verwendete Kameras nicht initialisiert werden. (I6cf88)
  • Die experimentelle Methode CameraXConfig.Builder#setMinimumLoggingLevel() wurde hinzugefügt, um eine Mindestprotokollierungsebene für CameraX-Logs festzulegen. Wenn nichts festgelegt ist, wird standardmäßig Log#DEBUG verwendet. (Ic3245)

Fehlerkorrekturen

  • Problemumgehung für zeitweise beschädigte Bilddaten in JPEGs auf der Rückkamera des SM-G930V enthalten. (I5aca5, b/159831206)
  • Es wurde ein Problem behoben, bei dem auf Samsung SM-A716-Geräten beim Fotografieren keine Ergebnisse erzielt wurden, wenn der Blitz immer eingeschaltet war und die Umgebung dunkel war. (If98b2, b/172036589)
  • Das Problem, dass die Vorschau nicht durch Aufrufen von Preview.setSurfaceProvider(null) beendet werden kann, 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 beim Aufnehmen eines Fotos mit dem automatischen Blitz im AE-Modus auf Samsung A3-Geräten zu beheben. (Ia5fe3, b/157535165)
  • Es wurde ein Problem behoben, bei dem die Vorschau auf Nexus 4-Geräten mit Android L (API-Level 21 und 22) gestreckt wurde. (I4d407, b/158749159)
  • Die Implementierung der Basisklasse OnImageCapturedCallback#onCaptureSuccess schließt das Bild nicht mehr. So soll unerwartetes Verhalten für Entwickler verhindert werden. Entwickler sollten sich nicht auf „super.onCaptureSuccess“ verlassen, um das Bild zu schließen. (Ifbf9c)
  • Die androidx-Variante der Annotation „Experimental“ wurde eingestellt, um Parität mit Kotlin zu erreichen. Sie wurde durch die Annotation „RequiresOptIn“ ersetzt und 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 ist veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.

Neue Funktionen

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

Fehlerkorrekturen

  • Das Problem mit der 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 es an eine Kamerainstanz angehängt wird, die für die öffentliche API ProcessCameraProvider.bindToLifecycle() ist. (Ia5411)
  • <UseCase>.getTargetRotation() gibt Surface.ROTATION_0 zurück, wenn es aufgerufen wird, bevor es an eine Camera-Instanz angehängt wurde, es sei denn, für den Builder oder UseCase wurde eine targetRotation festgelegt. (I80fcd)

Camera-Core Version 1.0.0-beta11

14. Oktober 2020

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

Neue Funktionen - Unterstützt die Android 11-API CONTROL_ZOOM_RATIO für den Zoom auf Geräten mit Android 11 oder höher, die eine gültige CONTROL_ZOOM_RATIO_RANGE enthalten. (I62cc6)

Fehlerkorrekturen

  • Das Problem mit der 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 es an eine Kamerainstanz angehängt wird, die für die öffentliche API ProcessCameraProvider.bindToLifecycle() ist. (Ia5411)
  • <UseCase>.getTargetRotation() gibt Surface.ROTATION_0 zurück, wenn es aufgerufen wird, bevor es an eine Camera-Instanz angehängt wurde, es sei denn, für den Builder oder UseCase wurde eine targetRotation festgelegt. (I80fcd)

Camera-Core Version 1.0.0-beta10

23. September 2020

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

Fehlerkorrekturen

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

Camera-Camera2 Version 1.0.0-beta10

23. September 2020

androidx.camera:camera-camera2:1.0.0-beta10 ist 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 ist veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.

API-Änderungen

  • Anstatt statische Methoden bereitzustellen, wird bei der Erstellung 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 Format 16:9 ausgewählt werden. (Ib7fcf, b/151969438)
  • Löse einen 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 hinzugefügt (If96c7)

Camera-Core Version 1.0.0-beta09

16. September 2020

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

API-Änderungen

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

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem der Blitz auf einigen Geräten nicht ausgeschaltet wurde. Das Problem trat auf, wenn der Blitzmodus für die Aufnahme eines Bildes auf FLASH_MODE_ON eingestellt war und beim Auslösen des Blitzes zu FLASH_MODE_OFF geändert wurde. Das Symptom ist ähnlich wie bei aktiviertem Taschenlampenmodus. (Ib4451, b/162568128)
  • „PreviewView“ wurde gezwungen, „TextureView“ zu verwenden, wenn der Erweiterungseffekt aktiviert ist und die Implementierung der Anbieterbibliothek einen speziellen Prozess auf der Ausgabeoberfläche erfordert. (I0c3cc)
  • Das Speicherleck bei Aktivitäten/Fragmenten wurde behoben, wenn ein Aktivitäts-/Fragmentkontext 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 mit dem nächsten Release behoben.

Camera-Camera2 Version 1.0.0-beta08

19. August 2020

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

Fehlerkorrekturen

  • „bindToLifecycle“ wurde optimiert, damit es im Hauptthread schnell ausgeführt wird. (I1d57e)
  • „DisplayOrientedMeteringPointFactory“ verwendet eine „CameraInfo“-Instanz anstelle eines „CameraSelector“, sodass eine direkte Zuordnung zu der Kamera besteht, für die die Factory Punkte generiert. Alle Klassen, die „DisplayOrientedMeteringPointFactory“ verwenden, akzeptieren auch eine „CameraInfo“-Instanz anstelle von „CameraSelector“. (I400c1)
  • Es wurde ein Problem mit der Gruppierung von Seitenverhältnissen bei der automatischen Auflösung behoben, bei dem eine 16:9-mod16-Größe (864 × 480) ausgewählt wurde, wenn die Zielauflösung auf 2016 × 1080 festgelegt war und eine andere 16:9-Größe (1920 × 1080) unterstützt wurde. (I53167, b/159363774)
  • Behebung des CameraControl-Problems, bei dem die Funktion aufgrund einer Race-Bedingung nicht funktioniert (I2279f, b/152333890, b/160714166)

Camera-Core Version 1.0.0-beta08

19. August 2020

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

API-Änderungen

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

Fehlerkorrekturen

  • Bei der Bilderfassung wird das Flag „Horizontal spiegeln“ in den Metadaten basierend auf der Kamerarichtung überschrieben. (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 ist veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem die Vorschau auf älteren Android 5.0-Geräten gestreckt wurde. (I0c03a)
  • Einige von JPEG unterstützte 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 ist veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem die Vorschau auf älteren Android 5.0-Geräten gestreckt wurde. (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 ist 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, dass „startFocusAndMetering“ auf dem Samsung Galaxy S7 nicht erfolgreich fokussiert, wurde behoben. (If3be7, b/159039233)
  • Fehler behoben, bei dem die Kamera nach dem Beenden der App nicht geschlossen werden konnte (I7a7b3)
  • Behebung eines Fehlers, bei dem die Vorschau durch wiederholtes Wechseln der Kamera unterbrochen wurde, wenn die SurfaceView-Implementierung von PreviewView verwendet wurde (I920ce)
  • CameraControl#startFocusAndMetering schlägt fehl, wenn keiner der angegebenen MeteringPoints gültige Messrechtecke generieren kann. (Id53ce)

Camera-Core Version 1.0.0-beta06

24. Juni 2020

androidx.camera:camera-core:1.0.0-beta06 ist 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 die CameraXConfig angepasst werden, ohne dass CameraXConfig.Provider in der Anwendungsklasse der App implementiert werden muss. (Ia1a8d)
  • CameraControl#startFocusAndMetering schlägt fehl, wenn keiner der angegebenen MeteringPoints gültige Messrechtecke generieren kann. (Id53ce)

Camera-Camera2 Version 1.0.0-beta05

10. Juni 2020

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

Fehlerkorrekturen

  • Der Absturz beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im „Bitte nicht stören“-Modus befindet, wurde behoben. Ein InitializationException enthält einen CameraUnavailableException, der auf den ListenableFuture des Initialisierungsergebnisses gesetzt wird, anstatt die Anwendung abstürzen zu lassen. (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 ist veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.

API-Änderungen

  • Der Absturz beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im „Bitte nicht stören“-Modus befindet, wurde behoben. Ein InitializationException, der einen CameraUnavailableException enthält, wird auf den ListenableFuture des Initialisierungsergebnisses gesetzt, anstatt dass die Anwendung abstürzt. (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 ist veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.

Fehlerkorrekturen

  • Anwendungen können jetzt beliebige camera2-Aufnahmeanfrageparameter über Camera2Interop festlegen, ohne dass es zu einem Absturz kommt. Beachten Sie, dass Probleme auftreten können, wenn Parameter überschrieben werden. Stabilität und Verhalten sind nicht garantiert, wenn Parameter mit Camera2Interop überschrieben werden. (Ibe5a1, b/149103700)
  • Die automatische Initialisierung wurde korrigiert, wenn eine App auf einem Gerät mit einer Pseudo-Sprache verwendet wird. (I3bef3, b/154767663)
  • Das Fehlerprotokoll für den getrennten Anwendungsfall wurde in ein Debugging-Log für Camera2CameraImpl umgewandelt. (I1a565, b/154422490)
  • Ein Problem wurde behoben, bei dem das aufgenommene Bild manchmal zu dunkel war, obwohl der Blitz ausgelöst wurde. (I5d9fa, b/149729613)
  • Fehler behoben, bei dem der Zwischenspeicher in ImageProxy von ImageCapture nicht zurückgespult wurde (I0c455, b/153249512)
  • Die Probleme beim Binden von ImageCapture wurden behoben: (1) Fotos konnten nicht mit MAX_QUALITY aufgenommen werden; (2) Die Bildqualität war schlecht, weil die automatische Belichtung nicht funktionierte. (I17782, b/145326998)
  • Verbesserte Zuverlässigkeit beim erneuten Öffnen der Kamera, wenn CameraX durch einen anderen Prozess oder Codepfad getrennt wird, der die Kamera beansprucht (I1fbc3, b/153714651)

Camera-Core Version 1.0.0-beta04

27. Mai 2020

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

API-Änderungen

  • Fügt eine experimentelle API, CameraXConfig.Builder#setSchedulerHandler(), hinzu, um den Handler festzulegen, der intern vom CameraX-Kamerastack 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 ImageProxy, die vom Analyzer empfangen werden, geschlossen werden, bevor der 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 wurde korrigiert, wenn eine App auf einem Gerät mit einer Pseudo-Sprache verwendet wird. (I3bef3, b/154767663)
  • Ein Problem wurde behoben, bei dem das aufgenommene Bild manchmal zu dunkel war, obwohl der Blitz ausgelöst wurde. (I5d9fa, b/149729613)
  • Problem mit ImageAnalysis behoben, bei dem mehrere Aufrufe von setAnalyzer/clearAnalyzer dazu führten, dass der Analyzer keine Bilder zur Analyse erhielt. (I6169f, b/151605317, b/153514544)
  • Fehler behoben, bei dem der Zwischenspeicher in ImageProxy von ImageCapture nicht zurückgespult wurde (I0c455, b/153249512)
  • Es wurde ein Problem behoben, bei dem die erste Kamera in der Liste der unterstützten Kameras von CameraManager nicht immer ausgewählt wurde. (I4c624, b/153418028)
  • Es wurde ein gelegentlich auftretender Absturz behoben, der dadurch verursacht wurde, dass die Einstellung Preview.SurfaceProvider die zuvor angeforderte Oberfläche nicht freigegeben hat. “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 ist veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Fehlerbehebungen 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 ist veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde eine Regression aus beta03 behoben, bei der das Aufrufen von bindToLifecycle() mit null UseCases eine Ausnahme auslöste. Dadurch wurde verhindert, dass ein Camera abgerufen werden konnte, ohne ein UseCase zu binden.

Camera-Camera2 Version 1.0.0-beta02

1. April 2020

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

Fehlerkorrekturen

  • Der ImageInfo.getRotationDegrees() aus dem von ImageCapture erzeugten ImageProxy wurde korrigiert, sodass er mit dem EXIF-Rotationswert übereinstimmt. (Id4281, b/150802561)
  • Die explizite Reihenfolge der CameraX-Abhängigkeiten in build.gradle ist nicht mehr erforderlich, um die Standardimplementierung von CameraX/Camera2 zu verwenden. In Fällen, in denen strenge Abhängigkeiten deklariert werden müssen, können jetzt alle CameraX-Abhängigkeiten in die Build-Datei aufgenommen werden. (I46e88)
  • Das Problem mit IllegalArgumentException auf Geräten mit einer Displaygröße von weniger als 640 × 480 wurde behoben. (Ife3f2, b/150506192)
  • bindToLifecycle wurde so korrigiert, dass der UseCase nur geändert wird, wenn er erfolgreich gebunden wird. Bisher wurde beim Aufrufen von bindToLifecycle zur Durchführung von Auflösungsberechnungen der UseCase aktualisiert. Jetzt muss der UseCase 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 ist veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Der ImageInfo.getRotationDegrees() aus dem von ImageCapture erzeugten ImageProxy wurde korrigiert, sodass er mit dem Rotationswert der EXIF-Ausrichtung übereinstimmt. (Id4281, b/150802561)
  • bindToLifecycle wurde so korrigiert, dass der UseCase nur geändert wird, wenn er erfolgreich gebunden wird. Bisher wurde beim Aufrufen von bindToLifecycle zur Durchführung von Auflösungsberechnungen der UseCase aktualisiert. Jetzt muss der UseCase 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 mehrmaligem Aufrufen von Preview.setSurfaceProvider() geändert hat.

Camera-Camera2 Version 1.0.0-beta01

26. Februar 2020

androidx.camera:camera-camera2:1.0.0-beta01 ist 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)
  • Es wurde ein Problem behoben, bei dem das Seitenverhältnis eines gespeicherten Bildes nicht korrekt war, nachdem der Zielrotationswert mit ImageCapture.setTargetRotation() geändert wurde. (I474ea, b/148763432)
  • Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert, indem das Flag beibehalten wurde, mit dem der Standard-CameraXConfig-Anbieter festgelegt wird. (I2d6c1)

Camera-Core Version 1.0.0-beta01

26. Februar 2020

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

API-Änderungen

  • ListenableFuture auf SurfaceRequest.provideSurface() wurde durch Executor und Callback ersetzt. Dadurch wird die API vereinfacht, da keine Ausnahmen mehr für provideSurface() verarbeitet werden müssen. Außerdem wird erzwungen, dass der provideSurface()-Callback nicht abgebrochen werden kann. So sollen Abstürze auf älteren Geräten verhindert werden, die durch vorzeitiges Freigeben von Oberflächen verursacht werden. Das SurfaceRequest.Result-Objekt wird jetzt verwendet, um zu verfolgen, 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

  • Es wurde ein Problem behoben, bei dem das Seitenverhältnis eines gespeicherten Bildes nicht korrekt war, nachdem der Zielrotationswert mit ImageCapture.setTargetRotation() geändert wurde. (I474ea, b/148763432)
  • Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert, indem das Flag beibehalten wurde, mit dem der Standard-CameraXConfig-Anbieter festgelegt wird. (I2d6c1)
  • Die Dokumentation für die Blitzmodus-APIs 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 ist veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.

Fehlerkorrekturen

  • Verbesserte Stabilität auf INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY-Geräten, da Surfaces nur für die Dauer der Nutzung durch Camera2 beibehalten werden. (I9dac2)
  • Problem mit unterbelichteter Vorschau auf LEGACY-Geräten durch entsprechende Anpassung von CONTROL_AE_TARGET_FPS_RANGE behoben. (1224638)

Camera-Core Version 1.0.0-alpha10

10. Februar 2020

androidx.camera:camera-core:1.0.0-alpha10 ist 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 Methode. Die Test-App wurde aktualisiert, um Uri als kanonisches Beispiel zu verwenden. (Ia3bec)
  • „Preview.PreviewSurfaceProvider“ wurde in „Preview.SurfaceProvider“ umbenannt. Für SurfaceProviders müssen Entwickler keine eigenen ListenableFutures mehr erstellen. Die Bereitstellung eines Surface erfolgt jetzt über ein neues SurfaceRequest-Objekt. Die Methode Preview.getPreviewSurfaceProvider() wurde entfernt, da sie missbraucht werden kann, wenn Preview mit anderen Klassen wie PreviewView kombiniert wird. (I20105)
  • getTargetRotation() und getTargetName() wurden zu Preview hinzugefügt. (Iceee7)
  • getTargetRotation(), getBackpressureStrategy() und getImageQueueDepth() wurden in ImageAnalysis hinzugefügt. (I9d6d9)
  • getTargetRotation() und getCaptureMode() wurden zu 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 zuvor übergebenen Informationen enthält.
  • Das zuvor in ImageCapture.OnImageSavedCallback.onImageSaved() übergebene Dateiargument wurde entfernt. (I750d2)
  • Die Klassen Preview und ImageCapture sind jetzt als „final“ gekennzeichnet. (I2500b)
  • API aktualisiert, wobei die Methoden getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() und getLinearZoom() von CameraInfo in getZoomState() zusammengeführt werden, was 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 Verwendung in der Bibliothek vorgesehen sind. Konstruktor für CameraXConfig.Builder entfernt. (I96912)
  • Die Anforderung, dass die App Application erweitern muss, um CameraX zu initialisieren, wurde entfernt. CameraX wird jetzt mit einer Standard-Camera2-Konfiguration initialisiert, sofern das Artefakt camera-camera2 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 ist veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.

API-Änderungen

  • Fügen Sie den Camera2-Interop-Pfad hinzu, um eine Camera2-Kamera-ID zu extrahieren. Sie können die Kamera-ID mit Camera2CameraInfo.extractCameraId() aus CameraInfo 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 ist 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.
  • DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float) wurde entfernt. 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.

Diverse Fehlerkorrekturen

  • Es wurden Probleme behoben, die beim Schließen und anschließenden Öffnen von Kameras zu einem Fehler bei der Vorbedingungsprüfung führten.
  • Es wurde ein ConcurrentModificationException behoben, der bei Verwendung der Taschenlampen- und Zoom-APIs auftreten konnte.
  • Ein Problem wurde behoben, sodass jetzt Auflösungen ausgewählt werden, die der angeforderten Auflösung näher kommen, wenn eine mod16-Dimensionsgröße verfügbar ist.
  • Die APIs startFocusMetering und cancelFocusMetering verhalten sich jetzt wie dokumentiert, mit korrektem Timing und potenzieller Rückgabe von Fehlern, wenn sie auftreten.
  • Ein Problem wurde behoben, bei dem eine bestimmte Zielauflösung mit einem Seitenverhältnis für den Zuschnitt auf einem Gerät angefordert wurde, das solche Größen nicht unterstützt. Jetzt wird eine nicht zugeschnittene Größe mit ausreichender Auflösung ausgewählt, um die ursprüngliche Anfrage zu erfüllen, sofern verfügbar.

Camera-Camera2 Version 1.0.0-alpha08

18. Dezember 2019

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

Bekannte Probleme

  • Nicht alle Optionen für Camera2-Aufnahmeanfragen funktionieren, wenn die Camera2-Interoperabilität verwendet wird. 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 für die API-Level 21 und 22 ein schwarzer Bildschirm in der Vorschau angezeigt wurde.

API-Änderungen

  • Experimentell: Ein Camera2-Interoperabilitätspfad zum Extrahieren der Kamera-ID wurde hinzugefügt.

Camera-Core Version 1.0.0-alpha08

18. Dezember 2019

androidx.camera:camera-core:1.0.0-alpha08 ist 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 falschem Seitenverhältnis angezeigt. Dies geschieht nach dem Pausieren oder Fortsetzen auf einigen FULL-Geräten, z. B. 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 außerhalb der IntDef-Definition verschoben.
  • rotationDegrees wurde von der Klasse OnImageCaptureCallback in die Klasse ImageInfo verschoben.
  • rotationDegrees wurde von der Klasse Analyzer in die Klasse ImageInfo verschoben.

Camera-Camera2 Version 1.0.0-alpha07

4. Dezember 2019

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

  • Camera2Config ist jetzt für die Initialisierung und Konfiguration einer Camera2-basierten Implementierung für CameraX verfügbar. Weitere Informationen zur Verwendung bei der Initialisierung finden Sie im Abschnitt „camera-core“ der Versionshinweise.
  • Die Camera2-Interoperabilitä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 ist veröffentlicht. Version 1.0.0-alpha07 von camera-core enthält diese Commits.

In dieser Alpha-Version gibt es einige wesentliche Änderungen, da wir uns auf die Beta-Version vorbereiten. Wir empfehlen Ihnen, die Änderungen zu prüfen und Feedback in der CameraX-Google-Gruppe zu geben. Entwicklern, die CameraX in Apps im Google Play Store verwenden, empfehlen wir, mit dem Upgrade der Bibliothek in ihren Anwendungen bis zur offiziellen Betaversion zu warten.

API-Änderungen

  • Wichtig: Die CameraX-Initialisierung hat sich geändert. Anwendungen sollten CameraXConfig.Provider implementieren und die von androidx.camera.camera2 bereitgestellte Standard-Camera2Config verwenden. Typische Verwendung:

    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. bindToLifecycle(), unbind(), unbindAll(), isBound() und hasCamera(), die zuvor vom CameraX-Klassenaufruf bereitgestellt wurden, sind jetzt über ProcessCameraProvider verfügbar.

  • Eine prozessspezifische Instanz von ProcessCameraProvider wird asynchron mit der statischen Methode ProcessCameraProvider.getInstance() abgerufen. Diese gibt ein ListenableFuture zurück, das nach Abschluss ProcessCameraProvider bereitstellt. Hier wird es in onCreate() für eine typische Nutzung angezeigt. 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 eine Nutzeraktion eine Kamera-UI öffnet).

    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 dem Future abgerufen werden, ohne dass Future.get() blockiert wird.

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

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

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • Anwendungsfall-„Config“-Klassen werden entfernt. Erstellen Sie stattdessen Anwendungsfälle direkt und legen Sie Optionen für jeden Anwendungsfall-Builder fest. Beispiel:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • Der Anwendungsfall „Vorschau“ wurde aktualisiert, sodass er eine von der Anwendung erstellte und verwaltete Oberfläche akzeptiert, um die Best Practices für Android zu erfüllen. Es wird dringend empfohlen, die Ansichtsklasse PreviewView aus dem Paket „camera-view“ 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: Die Implementierung der ImageAnalysis-Analysemethode muss image.close() für empfangene Bilder aufrufen, wenn sie nicht mehr verwendet werden. Andernfalls werden je nach Einstellung für den Gegendruck möglicherweise keine neuen Bilder empfangen oder die Kamera bleibt hängen. Weitere Informationen finden Sie in der Referenzdokumentation.

  • ImageAnalysis ImageReaderMode wird jetzt in die Backpressure-Strategie intdef geändert.

  • ImageProxy.getImage() ist als experimentell gekennzeichnet. Anwendungen sollten die Nutzung beispielsweise über @androidx.camera.core.ExperimentalGetImage annotieren.

  • Die Anmerkungsanforderung UIThread für Analyzer wurde entfernt.

  • Die Funktion ImageAnalysis.clearAnalyzer() wurde hinzugefügt, um einen Analyzer zu entfernen.

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

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

  • Zoomsteuerelemente wurden hinzugefügt:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • CameraInfo.hasFlashUnit() wird hinzugefügt, um zu ermitteln, ob 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-Zugriffsfunktionen ersetzt.

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

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

Behobene Probleme

  • Ein Problem wurde behoben, das beim Aufnehmen eines Bildes nach dem Fortsetzen auftrat, wenn nach einer vorherigen Pause noch Bilder ausstanden.
  • Bekanntes Problem: CameraControl.enableTorch() funktioniert, aber der zurückgegebene ListenableFuture<Void>-Wert ist immer ein unmittelbarer complete(success)-Wert, auch wenn kein Blitz vorhanden ist. In zukünftigen Versionen wird dies auf das endgültige Verhalten korrigiert: Wenn kein Blitz 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 brechen die Fokusmessung ab, 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, was vom beabsichtigten, dokumentierten Verhalten abweicht.
  • Bekanntes Problem: Eine Messpunkt-Factory für die Verwendung mit PreviewView-Touch-Events wird derzeit entwickelt. Derzeit können Apps, die benutzerdefinierte verwaltete Oberflächen verbinden, die vorhandenen Messpunkt-Factories verwenden. Ansonsten 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 sind veröffentlicht. Dies sind die Commits in camera-camera2:1.0.0-alpha06 und dies die Commits in camera-core:1.0.0-alpha06.

Neue Funktionen

Änderungen am 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 spiegelt besser wider, dass die Kamera nur bestimmte Seitenverhältnisse und nicht beliebige Verhältnisse bietet.
    • Derzeit sind nur die Seitenverhältnisse 16:9 und 4:3 verfügbar. Das Seitenverhältnis 1:1 ist nur auf bestimmten Geräten und nur bei begrenzten Auflösungen verfügbar. Anwendungen, die eine 1:1-Schnittstelle oder -Verarbeitung entwerfen, sollten die flexibleren Optionen 16:9 oder 4:3 verwenden und die Anzeige zuschneiden oder einen Teilbereich verarbeiten.
    • Diese Seitenverhältnisse sind so ausgerichtet, dass die maximale Sensorfläche genutzt wird.
  • getTargetAspectRatio() wurde den APIs für die Konfiguration von Anwendungsfällen hinzugefügt. Es gibt das Seitenverhältnis zurück, 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 „check Flash Available“ und „Sensor Rotation“ hinzugefügt

  • Die Methode CameraInfo und die Methode getCameraInfo wurden hinzugefügt. Damit können Apps prüfen, ob eine CameraInfo für die Ausrichtung des Objektivs und ein Blitz für diese Kamera verfügbar sind. 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, der Einfachheit halber, 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 im selben Builder 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 Auflösung, die der Bildschirmauflösung nahekommt, und die Bilderfassung liefert hochauflösende Standbilder. Weitere Informationen finden Sie in der Tabelle mit automatischen Auflösungen.
    • Verwenden Sie setTargetResolution() für spezifischere Fälle, z. B. wenn Mindestauflösungen (um Rechenleistung zu sparen) oder maximale Auflösungen (für Verarbeitungsdetails) erforderlich sind.
  • Executor API: Der Aufruf setCallbackHandler() wurde aus den APIs für die Anwendungsfallkonfiguration entfernt. Stattdessen können Anwendungen den Executor als Parameter in verschiedenen anderen APIs festlegen, die einen Callback festlegen.
  • Null-Annotationen für verschiedene Funktionen wurden aktualisiert.
  • Es wurde ein Problem behoben, durch das beim Öffnen der Kamera java.lang.IllegalStateException at Camera$StateCallback.onError ausgelöst wurde.
  • Es wurde ein Problem behoben, bei dem zu kleine Auflösungen (weniger als 640 × 480) ausgewählt wurden, wenn die App größere oder Standardauflösungen anforderte. Dies führte zu einem verpixelten oder verschwommenen Vorschaubild. Anwendungen, die ausdrücklich kleinere Auflösungen benötigen, können diese explizit anfordern.
  • Es wurde ein Problem behoben, bei dem die Kamera einen schwarzen Bildschirm anzeigte (Kamera konnte nicht gestartet werden), nachdem der Nutzer von einem Intent zurückgekehrt war, der eine andere Kamera-App gestartet hatte.
  • Ein Fehler wurde behoben, der den folgenden Fehler auslöste, wenn Apps wiederholt gestartet oder beendet wurden: java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • Der folgende Fehler, der beim Deaktivieren von ImageAnalysis auftritt, wurde behoben: java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
  • Zusätzliche Tests für den Ablauf beim Trennen der Kamera hinzugefügt.
  • Die Robustheit des Testsystems bei aufeinanderfolgenden Kameratests wurde verbessert.

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 sind veröffentlicht. Dies sind die Commits in camera-camera2:1.0.0-alpha05 und dies die Commits in camera-core:1.0.0-alpha05.

  • API-Änderung: Umbenannte Fehlervariablen für Anwendungsfälle:

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

    • API hinzugefügt, um eine CameraControl von CameraX für eine Kamera abzurufen, die nach Objektivausrichtung ausgewählt wurde:

      CameraX.getCameraControl(LensFacing lensFacing)

    • MeteringPointFactory, MeteringPoint, MeteringMode und FocusMeteringAction wurden hinzugefügt, um „Tippen zum Fokussieren“ 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 zum Starten und Abbrechen der Fokusmessung hinzugefügt:

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

    • Es wurden APIs für MeteringPointFactorys hinzugefügt, die die Übersetzung von Tippkoordinaten in Sensorkoordinaten basierend auf Ansichtsklassen unterstützen:

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

  • Erzwingen Sie den Aufruf der folgenden Methoden im Haupt-Thread (UI-Thread). Wenn dies nicht der Fall ist, wird eine IllegalStateException ausgelöst. 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()
  • Verschiedene Konfigurationseinstellungen akzeptieren jetzt Nullparameter und entsprechende Getter können Null zurückgeben.

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

  • Ein Fehler wurde behoben, der beim Drehen während der Bildanalyse zu einem Absturz führte.

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

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

  • Erste Robolectric-Tests für die Fake-Kamera in der Kamera-Test-Suite hinzugefügt (in Bearbeitung).

  • 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 sind veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.

Neue Funktionen

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

Das Ziel von CameraX ist es, eine Kamerasitzung erfolgreich zu initialisieren. Das bedeutet, dass CameraX je nach Gerätefunktionen Kompromisse bei der Auflösung und dem Seitenverhältnis eingeht, um eine Aufnahmesitzung zu starten. Genaue Anfragen werden daher möglicherweise nicht berücksichtigt. Das kann folgende Ursachen haben:

  • Geräte, die die angeforderte Auflösung nicht unterstützen
  • Kompatibilitätsprobleme, z. B. bei LEGACY-Geräten, bei denen bestimmte Auflösungen verwendet werden müssen, damit sie richtig funktionieren
  • Auf einigen Geräten sind bestimmte Formate nur in bestimmten Seitenverhältnissen verfügbar
  • Eine Einstellung für „nächstes mod16“ für 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 am Festlegen von Auflösungen und Seitenverhältnissen vorgenommen, um die API übersichtlicher zu gestalten:

  • Der Anwendungsfall „Vorschau“ wird jetzt standardmäßig mit einem Seitenverhältnis von 4:3 betrachtet, wenn kein Seitenverhältnis festgelegt ist.
  • Wenn CameraX intern Änderungen an angeforderten Auflösungen und Seitenverhältnissen basierend auf den Gerätefunktionen berücksichtigt, wird zuerst versucht, dasselbe Seitenverhältnis beizubehalten (wie durch setTargetAspectRatio- oder setTargetResolution-Aufrufe bestimmt).
  • Eine „Nearest mod16“-Version der Auflösung wird als dasselbe Seitenverhältnis betrachtet.

Nicht blockierender Modus für ImageAnalysis

  • Das Verhalten von ImageReaderMode.ACQUIRE_LATEST_IMAGE ist jetzt nicht blockierend. Es ruft das neueste Bild in der Warteschlange ab, verwirft aber kontinuierlich nicht verwendete Bilder, um eine Blockierung der Kamera-Pipeline zu vermeiden.
  • Der Analyzer kann ein einzelnes Bild unbegrenzt speichern, ohne die Pipeline zu blockieren.
  • Wenn die Anwendung einen Executor bereitstellt, der dann blockiert, wird der ImageAnalysis-Anwendungsfall blockiert.
  • Der standardmäßige Executor verhält sich intern wie ein nicht blockierender Executor.

Fehlerkorrekturen

  • Probleme mit Zeitüberschreitungen beim Warten auf die 3A-Konvergenz bei der Aufnahme von Bildern auf Geräten ohne Autofokus, automatische Belichtung und automatischen Weißabgleich wurden behoben.
  • Ein Problem beim schnellen Aufnehmen von Bildern mit ImageCapture wurde behoben. Fehler behoben: 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.
  • Es wurde ein Problem behoben, bei dem für LEGACY-Geräte ein bestimmtes Seitenverhältnis als maximale JPEG-Auflösung erforderlich war.
  • Ein Problem wurde behoben, das auftrat, wenn die App in den Hintergrund verschoben wurde, während die Kamera geöffnet wurde.
  • Problem bei API < 25 behoben, Fehler checkAndUpdateEglState: invalid current EGLDisplay entfernt
  • Ein Problem beim Aufheben der Bindung der Vorschau nach dem Aktivieren und Starten von Erweiterungen wurde behoben.
  • Build-Artefakte für „camera-view“ und „camera-extensions“ 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 sind veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

API-Änderungen

  • Javadoc-Erläuterung für „target“ in setTarget-Konfigurationsaufrufen hinzugefügt

Camera-Core

  • Absturz bei nicht konfigurierter Eingabe-/Ausgabeoberfläche beim schnellen Öffnen/Schließen oder Binden/Aufheben der Bindung behoben
  • Zu neuen Futures-Implementierungen wechseln
  • Testkorrekturen für robustere Tests
  • Der Core-Integrationstest zeigt jetzt die Aufnahmezeit für Fotos an
  • Interne Kompatibilitätsklasse für Executors entwickelt
  • Timing-Test-App wartet mit der Aufnahme von Bildern, bis die vorherige Aufnahme abgeschlossen ist, und verbesserte Stabilität

Erweiterungen

  • Versionsprüfungen hinzugefügt
  • Zusätzliche Testabdeckung – Callbacks für Erweiterungsereignisse
  • Verbesserungen bei internen Bild- und Metadaten
  • Fehlerbehebungen beim Moduswechsel 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 sind veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

Diverse Fehlerkorrekturen

  • Problem mit Division durch null bei Verwendung des Emulators behoben
  • Es wurde ein NullPointerException-/Surface Abandoned-Fehler behoben, der auf einigen Geräten auftrat, 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 Neustart 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 zum Lebenszyklusmanagement
  • Instrumentierte Tests für die Antelope-Leistungstest-App hinzugefügt
  • „-keepattributes Signature“ in der Proguard-Konfiguration der App ist nicht mehr erforderlich

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 sind 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 ist veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.

Fehlerkorrekturen

  • <UseCase>.getTargetRotation() gibt Surface.ROTATION_0 zurück, wenn es aufgerufen wird, bevor es an eine Camera-Instanz angehängt wurde, es sei denn, für den Builder oder UseCase wurde eine targetRotation festgelegt. (I80fcd)

Camera-Lifecycle Version 1.0.0-beta10

23. September 2020

androidx.camera:camera-lifecycle:1.0.0-beta10 ist 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 ist 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 ist 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 ist 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 ist 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. Dadurch kann CameraXConfig angepasst werden, ohne dass CameraXConfig.Provider in der Anwendungsklasse der App implementiert werden muss. (Ia1a8d)

Camera-Lifecycle Version 1.0.0-beta05

10. Juni 2020

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

Fehlerkorrekturen

  • Der Absturz beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im „Bitte nicht stören“-Modus befindet, wurde behoben. Ein InitializationException, der einen CameraUnavailableException enthält, wird auf den ListenableFuture des Initialisierungsergebnisses gesetzt, anstatt dass die Anwendung abstürzt. (I9909a, b/149413835)

Camera-Lifecycle Version 1.0.0-beta04

27. Mai 2020

androidx.camera:camera-lifecycle:1.0.0-beta04 ist 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 ist veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde eine Regression aus beta03 behoben, bei der das Aufrufen von bindToLifecycle() mit null UseCases eine Ausnahme auslöste. Dadurch wurde verhindert, dass ein Camera abgerufen werden konnte, ohne ein UseCase zu binden.
  • Fehlerbehebungen 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 ist veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.

Fehlerkorrekturen

  • In der Dokumentation wurde korrigiert, dass beim Abrufen einer ProcessCameraProvider während der Initialisierung eine Standardkonfiguration verwendet wird und dass das Erweitern von Application optional ist. (I5e395)

Camera-Lifecycle Version 1.0.0-beta02

1. April 2020

androidx.camera:camera-lifecycle:1.0.0-beta02 ist 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 ist 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 ist veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

Updates

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

Camera-Lifecycle Version 1.0.0-alpha02

18. Dezember 2019

androidx.camera:camera-lifecycle:1.0.0-alpha02 ist 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 ist veröffentlicht. Version 1.0.0-alpha01 von camera-lifecycle enthält diese Commits

API-Hinweise

  • Das Artifact „camera-lifecycle“ wird hinzugefügt und stellt die Schnittstelle LifeCycleCameraProvider sowie eine Implementierung namens ProcessCameraProvider bereit, die viele der Funktionen der vorherigen CameraX-Klasse in „core“ bietet und über eine getInstance()-Methode abgerufen wird.
  • Apps sollten die camera-lifecycle-Bibliothek enthalten, um CameraX zu verwenden.
  • Informationen zur Initialisierung von CameraX mit einem ProcessCameraProvider finden Sie in den Hinweisen im Abschnitt camera-core.

Kameraerweiterungen 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 sind veröffentlicht. Version 1.0.0-alpha32 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Der App wird nicht erlaubt, Erweiterungsmodi zu aktivieren, wenn VideoCapture gebunden wird. CameraX-Erweiterungen unterstützen nur ImageCapture und Preview. VideoCapture wird noch nicht unterstützt. Wenn die App VideoCapture bindet und einen Erweiterungsmodus aktiviert, wird ein IllegalArgumentException ausgelöst. (I0d87b)
  • CameraSelector#filter löst keine IllegalArgumentException mehr aus, wenn die Ergebnismenge leer ist. (I27804)
  • Die ExtensionsManager#getInstance API wurde in getInstanceAsync umbenannt, da sie ListenableFuture zurückgibt. Das Suffix „Async“ des Funktionsnamens kann deutlich machen, dass es sich um eine asynchrone Funktion handelt. (I279d2)
  • Der Auflösungsparameter wurde aus der ExtensionsManager#getEstimatedCaptureLatencyRange API entfernt, da Nutzer nicht wissen können, welche Größen für den Anwendungsfall ImageCapture unterstützt werden, und nicht unterscheiden können, ob sich die zurückgegebenen Latenzinformationen auf die maximale Ausgabegröße der Aufnahme oder den Eingabeauflösungsparameter beziehen. (I74bb2)
  • Verschieben Sie den Parameter CameraProvider der Funktionen ExtensionsManager in die API getInstance(). Damit die Nutzer den Parameter CameraProvider nicht jedes Mal eingeben müssen, 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 sind veröffentlicht. Version 1.0.0-alpha31 enthält diese Commits.

API-Änderungen

  • Der öffentlichen API wurde „CameraSelector#filter“ hinzugefügt, um eine Liste von „CameraInfo“-Objekten anhand eines „CameraSelector“-Objekts zu filtern. (I105d0)

Fehlerkorrekturen

  • Es wurde ein Problem behoben, aufgrund dessen es beim schnellen Wechseln des Erweiterungsmodus auf bestimmten Geräten zu einem Absturz kam. (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 sind veröffentlicht. Version 1.0.0-alpha30 enthält diese Commits.

API-Änderungen

  • Die Annotation @RequiresApi(21) wurde allen CameraX-Klassen hinzugefügt und minSdkVersion wurde aus AndroidManifest.xml entfernt. Dadurch kann „camera-core“ einfach in Anwendungen eingebunden werden, die eine minSdkVersion unter 21 haben, aber bedingt Codepfade verwenden möchten, die auf API 21 und höher basieren. Für Anwendungen mit minSdkVersion 21 oder höher sind keine Maßnahmen erforderlich. (Ie7f2e, b/200599470)

Fehlerkorrekturen

  • Das AbstractMethodError-Problem, das bei aktiviertem ProGuard auftritt, wurde behoben. (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 sind 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. Bitte verwende stattdessen RotationProvider#removeListener(...). (Id9d4a)
  • Die Klasse „RotationReceiver“ wurde aktualisiert: „set/clear Listener“ wurde in „add/remove/removeAll“ geändert, die Variante „setListener“, die standardmäßig den Hauptthread verwendet, wurde entfernt und die Methoden wurden mit Annotationen versehen. (Ib1669)

Fehlerkorrekturen

  • ExtensionMode#BEAUTY wurde in FACE_RETOUCH umbenannt, um die Funktion des Erweiterungsmodus korrekt darzustellen. (I61f54, b/198515274)
  • Es wurde ein Problem behoben, bei dem die Kamera unerwartet geschlossen wurde, wenn mehrere CameraController und PreviewViews in einer Aktivität verwendet wurden. (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 sind 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 refaktoriert und in RotationProvider umbenannt. Die Funktion ist weiterhin verfügbar, die API hat sich jedoch leicht geändert. (Idffc5)
  • TAP_TO_FOCUS_UNSUCCESSFUL in TAP_TO_FOCUS_NOT_FOCUSED und TAP_TO_FOCUS_SUCCESSFUL in TAP_TO_FOCUS_FOCUSED umbenennen. „OutputSize“ wurde als „final“ festgelegt (I099fa)

Fehlerkorrekturen

  • Die verworfenen <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 sind veröffentlicht. Version 1.0.0-alpha27 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Ein Problem mit der Streckung im PreviewView PERFORMANCE-Modus bei Verwendung 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 sind veröffentlicht. Version 1.0.0-alpha26 enthält diese Commits.

API-Änderungen

  • Fügen Sie eine neue Methode CameraController#getTapToFocusState() hinzu, die das neueste Ergebnis von „Zum Fokussieren tippen“ verfügbar macht. (Iaccb0)
  • CameraController wurden weitere Hauptfunktionen der Kamera hinzugefügt: Getter/Setter für das Zielseitenverhältnis, die Zielauflösung, den Aufnahmemodus, CameraControl und benutzerdefinierte Executors. (Iea8f2)
  • Fügen Sie eine RotationReceiver-Klasse hinzu, die Änderungen der Surface-Ausrichtung empfängt. Damit kann die Zielausrichtung festgelegt werden, wenn sich das Gerät im festen Hoch- oder Querformat befindet. (Ib278f)
  • Neue öffentliche APIs „getEstimatedCaptureLatencyRange“ in der Klasse „ExtensionsManager“ verfügbar gemacht. (I6a8ec)
  • Eingestellter ExtensionsErrorListener. Derzeit wird diese Schnittstelle nur verwendet, um zu prüfen, ob bei der Aktivierung von Erweiterungsmodi eine Vorschau oder ImageCapture fehlt. 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 neuen öffentlichen APIs „ExtensionsManager getInstance“, „isExtensionAvailable“ und „getExtensionEnabledCameraSelector“ wurden verfügbar gemacht 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 sind veröffentlicht. Version 1.0.0-alpha25 enthält diese Commits.

API-Änderungen

  • Die ExperimentalCameraFilter APIs sind jetzt keine experimentellen APIs mehr, sondern offizielle APIs. Sie können ohne OptIn-Anmerkung verwendet werden. (I4bc94)
  • Fügen Sie ein Dienstprogramm hinzu, mit dem Koordinaten zwischen Anwendungsfällen transformiert werden. Beispiel für die Verwendung: Die im Anwendungsfall „ImageAnalysis“ erkannten Koordinaten werden transformiert und das erkannte Objekt wird in der Vorschau hervorgehoben. (I63ab1, b/137515129)
  • CameraView wurde entfernt. CameraView wurde durch CameraController ersetzt. Informationen zur Migration finden Sie in der Migrationsanleitung. (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 sind veröffentlicht. Version 1.0.0-alpha24 enthält diese Commits.

Fehlerkorrekturen

  • Die Annotation @Experimental wurde bei experimentellen APIs durch @RequiresOptIn ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle des verworfenen androidx.annotation.experimental.UseExperimental. (Iff226)
  • Das Problem mit der gestreckten PreviewView auf dem Samsung J5 Prime wurde behoben (Ib10b6).

Kameraerweiterungen 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 sind veröffentlicht. Version 1.0.0-alpha23 enthält diese Commits.

API-Änderungen

  • CameraView wird eingestellt. Bitte verwenden Sie stattdessen die Richtlinie LifecycleCameraController. Weitere Informationen finden Sie in der Migrationsanleitung (Idac2c).
  • „FloatRange“-Annotation zu „setLinearZoom()“ hinzugefügt (I69971)

Fehlerkorrekturen

  • Abhängigkeiten der Kameraansicht wurden angepinnt, um auf 1.0.0-Artefakte zurückzugreifen. 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, obwohl „camera-view“ weiterhin mit diesen Artefakten kompatibel ist, wenn sie explizit auf 1.1.0 festgelegt sind. (Ic8fa1, b/181599852)
  • Die gestreckte Vorschau auf dem Samsung A3 in PreviewView wurde korrigiert. (Iacb30, b/180121821)
  • Es wurde ein Problem behoben, bei dem die Kameraauswahl nicht festgelegt werden konnte, bevor die Kamera initialisiert wurde. (Ic8bd0)

Kameraerweiterungen 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 sind veröffentlicht. Version 1.0.0-alpha22 enthält diese Commits.

API-Änderungen

  • Fügen Sie „CameraController“ einen „CameraInfo“-Getter hinzu. (Ib8138, b/178251727)

Fehlerkorrekturen

  • „ExtensionsErrorListener“ wurde korrigiert, sodass Fehler gemeldet werden, wenn nur „Preview“ oder „ImageCapture“ gebunden ist. (I5ae39)

Kameraerweiterungen 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 sind veröffentlicht. Version 1.0.0-alpha21 enthält diese Commits.

Veröffentlichung zur Unterstützung anderer Kamera-Bibliotheksartefakte.

Kameraerweiterungen 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 sind veröffentlicht. Version 1.0.0-alpha20 enthält diese Commits.

Veröffentlichung zur Unterstützung anderer Kamera-Bibliotheksartefakte.

Camera-Extensions und Camera-View 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 sind veröffentlicht. Version 1.0.0-alpha19 enthält diese Commits.

Fehlerkorrekturen

  • Die Anmerkung „@ExperimentalVideo“ wurde in der Kameraansicht eingeführt. Diese Annotation kennzeichnet APIs, die experimentelle Videofunktionen bereitstellen, die sich im Zuge der vollständigen Entwicklung der Funktionen ändern können. Jede Methode, die diese APIs verwendet, sollte die Annotation @UseExperimental mit ExperimentalVideo als markerClass verwenden. (I6d729)

Camera-Extensions Version 1.0.0-alpha18

14. Oktober 2020

androidx.camera:camera-extensions:1.0.0-alpha18 ist 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 aufgerufen wird, bevor es an eine Camera-Instanz angehängt wurde, es sei denn, für den Builder oder UseCase wurde eine targetRotation festgelegt. (I80fcd)

Camera-View Version 1.0.0-alpha18

14. Oktober 2020

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

Veröffentlichung zur Unterstützung anderer Kamera-Bibliotheksartefakte.

Camera-Extensions Version 1.0.0-alpha17

23. September 2020

androidx.camera:camera-extensions:1.0.0-alpha17 ist 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 ist veröffentlicht. Version 1.0.0-alpha17 enthält diese Commits.

Fehlerkorrekturen

Kameraerweiterungen Version 1.0.0-alpha16

16. September 2020

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

Fehlerkorrekturen

  • In ExtensionsManager wurde eine Methode hinzugefügt, um ein Extensions-Objekt abzurufen, mit dem Erweiterungen für Kamerainstanzen aktiviert und abgefragt werden können (I4fb7e).

Camera-View Version 1.0.0-alpha16

16. September 2020

androidx.camera:camera-view:1.0.0-alpha16 ist 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 Vorschauausrichtung, wenn die gewünschte Ausrichtung nicht der Displayausrichtung entspricht, z.B. bei einem Remote-Display. Wenn du die Drehung der Vorschau ohne Display jetzt verarbeiten möchtest, lege die gewünschte Drehung 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

  • „PreviewView“ wurde gezwungen, „TextureView“ zu verwenden, wenn der Erweiterungseffekt aktiviert ist und die Implementierung der Anbieterbibliothek einen speziellen Prozess auf der Ausgabeoberfläche erfordert. (I0c3cc)
  • Beliebige Zielrotation für die Vorschau zulassen. Die Transformationsinformationen werden berechnet und über einen neuen TranformationInfoListener-Callback sofort an den Nutzer zurückgegeben. (I21470)

Bekannte Probleme

  • In PreviewView wird OnClickListener#onClick() nicht aufgerufen, wenn der Endnutzer auf PreviewView klickt. Das Touch-Event wird fälschlicherweise von PreviewView#onTouchEvent() verarbeitet. Das Problem wird in der nächsten Version 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 ist veröffentlicht. Version 1.0.0-alpha15 enthält diese Commits.

Fehlerkorrekturen

  • Die Methode ExtensionsManager.init() verwendet jetzt einen Kontext als Parameter, anstatt 0 Argumente zu haben. (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 ist veröffentlicht. Version 1.0.0-alpha15 enthält diese Commits.

Fehlerkorrekturen

  • DisplayOrientedMeteringPointFactory akzeptiert eine CameraInfo-Instanz anstelle einer CameraSelector-Instanz. Dadurch wird direkt zugeordnet, für welche Kamera die Factory 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 Messpunkt-Factory, unabhängig davon, ob ein TextureView oder ein SurfaceView verwendet wird. (Ide693)
  • Die Implementierungsmodi SURFACE_VIEW/TEXTURE_VIEW von PreviewView wurden in PERFORMANCE/COMPATIBLE umbenannt. PERFORMANCE ist der alte SURFACE_VIEW-Modus und COMPATIBLE ist der alte TEXTURE_VIEW-Modus. (I0edc2)
  • Bei der Bilderfassung wird das Flag „Horizontal spiegeln“ in den Metadaten basierend auf der Kamerarichtung überschrieben. (I28499)

Camera-Extensions Version 1.0.0-alpha14

22. Juli 2020

androidx.camera:camera-extensions:1.0.0-alpha14 ist 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 ist 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 ist 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 ist veröffentlicht. Version 1.0.0-alpha13 enthält diese Commits.

Fehlerkorrekturen

  • CameraView stürzt nicht mehr mit einer IllegalArgumentException ab, wenn eine Bindung an einen LifecycleOwner erfolgt, dessen Lifecycle kurz nach der Bindung in den Status DESTROYED wechselt. Wenn der Lebenszyklus im Status „DESTROYED“ gebunden wird, 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 ist veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.

Fehlerkorrekturen

  • Der Absturz beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im „Bitte nicht stören“-Modus befindet, wurde behoben. Ein InitializationException, der einen CameraUnavailableException enthält, wird auf den ListenableFuture des Initialisierungsergebnisses gesetzt, anstatt dass die Anwendung abstürzt. (I9909a, b/149413835)

Camera-View Version 1.0.0-alpha12

10. Juni 2020

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

Fehlerkorrekturen

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

Camera-Extensions Version 1.0.0-alpha11

27. Mai 2020

androidx.camera:camera-extensions:1.0.0-alpha11 ist 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 ist 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 auf der Vorschauoberfläche angezeigten Inhalts zurückgibt. (I9b500, b/157659818)

Camera-View Version 1.0.0-alpha11

27. Mai 2020

androidx.camera:camera-view:1.0.0-alpha11 ist 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 die Vorschau gestreamt wird oder nicht. Wenn sich die PreviewView im TEXTURE_VIEW-Modus befindet, ist das Vorschaubild im STREAMING-Status ebenfalls sichtbar. (Ic0906, b/154652477)
  • Die PreviewView#setDeviceRotationForRemoteDisplayMode() API wurde hinzugefügt, um die Geräterotation für Transformationsberechnungen bereitzustellen, wenn die Anwendung im Remote-Anzeigemodus ausgeführt wird. (I59b95, b/153514525)

Fehlerkorrekturen

  • Das Problem mit der verzerrten Vorschau bei FULL/LIMITED/LEVEL_3-Kameras mit Android 7.0 und niedriger wurde behoben. Erzwungene Verwendung des ImplementationMode#TEXTURE_VIEW-Modus, wenn die Android-Version 7.0 oder niedriger ist. (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 wurde in CameraView auf 16:9 festgelegt. (Ie6a7b, b/153237864)
  • Problem behoben, bei dem auf dem PreviewView ein schwarzer Bildschirm angezeigt wurde, wenn das Fragment Preview weggewischt und dann in ViewPager2 wieder zurückgewischt wurde. Außerdem wurde das Problem behoben, das auftrat, wenn removeView(previewview) und dann addView(previewView). (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, um Uri als kanonisches Beispiel zu verwenden. (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 ist veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.

Fehlerkorrekturen

  • Fehlerbehebungen 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 ist veröffentlicht. Version 1.0.0-alpha010 enthält diese Commits.

Fehlerkorrekturen

  • Behebt ein bekanntes Problem, 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 ist 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

1. April 2020 androidx.camera:camera-view:1.0.0-alpha09 wurde 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. Das liegt daran, dass 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. Beim Neustart 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. Hier wird eine nullable CameraInfo-Instanz verwendet, 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 bisher 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 Annotation @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 mit dem Attribut implementationMode wurde entfernt.

  • createMeteringPointFactory()-API zu PreviewView hinzugefügt, um die Konvertierung von (x, y) in PreviewView in MeteringPoint zu unterstützen. (Ib36d7)

Fehlerkorrekturen

  • Es wurden Fälle behoben, in denen nach einer Größenänderung von PreviewView eine falsche Vorschau angezeigt wurde. (I71101)

Kamera-Erweiterungen Version 1.0.0-alpha08

26. Februar 2020

androidx.camera:camera-extensions:1.0.0-alpha08 ist 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 ist veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

Fehlerkorrekturen

  • ListenableFuture auf SurfaceRequest.provideSurface() wurde durch Executor und Callback ersetzt. Dadurch wird die API vereinfacht, da keine Ausnahmen mehr für provideSurface() verarbeitet werden müssen. Außerdem wird erzwungen, dass der provideSurface()-Callback nicht abgebrochen werden kann. So sollen Abstürze auf älteren Geräten verhindert werden, die durch vorzeitiges Freigeben von Oberflächen verursacht werden. Das SurfaceRequest.Result-Objekt wird jetzt verwendet, um zu verfolgen, 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 Standard-CameraXConfig-Anbieter festgelegt wird. (I2d6c1)

Camera-Extensions Version 1.0.0-alpha07

10. Februar 2020

androidx.camera:camera-extensions:1.0.0-alpha07 ist 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 zuvor übergebenen Informationen enthält.
  • 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 ist veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.

API-Änderungen

  • Bei der Implementierung von TextureView in 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. Wenn die Kameravorschau einen ganzen Teil der Benutzeroberfläche ausfüllen soll (z. B. den gesamten Bildschirm), sollten 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“). Dies kann dazu führen, dass die Kameravorschau nur einen Teil des PreviewView ausfüllt (wenn die Ausgabegröße des Kamerasensors kleiner ist). Stattdessen sollten Sie die 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 Methode. Die Test-App wurde aktualisiert, um Uri als kanonisches Beispiel zu verwenden. (Ia3bec)
  • „Preview.PreviewSurfaceProvider“ wurde in „Preview.SurfaceProvider“ umbenannt. Für SurfaceProviders müssen Entwickler keine eigenen ListenableFutures mehr erstellen. Die Bereitstellung eines Surface erfolgt jetzt über ein neues SurfaceRequest-Objekt. Die Methode Preview.getPreviewSurfaceProvider() wurde entfernt, da sie missbraucht werden kann, wenn Preview mit anderen Klassen wie PreviewView kombiniert wird. (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 zuvor übergebenen Informationen enthält.
  • Das zuvor in ImageCapture.OnImageSavedCallback.onImageSaved() übergebene Dateiargument wurde entfernt. (I750d2)
  • Die API wurde aktualisiert. Die Methoden getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() und getLinearZoom() von CameraInfo wurden in getZoomState() zusammengeführt, wodurch eine ZoomState-Instanz zurückgegeben wird. (Ib19fe)

Camera-Extensions Version 1.0.0-alpha06

22. Januar 2020

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

Updates

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

Camera-View Version 1.0.0-alpha06

22. Januar 2020

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

Updates

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

Camera-Extensions Version 1.0.0-alpha05

18. Dezember 2019

androidx.camera:camera-extensions:1.0.0-alpha05 ist 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 ist 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 der SurfaceTexture mit der Nutzung der TextureView-Oberfläche durch die Kamera synchronisiert.

Kameraerweiterungen Version 1.0.0-alpha04

4. Dezember 2019

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

API-Änderungen

  • Für die Prüfung der Verfügbarkeit und Aktivierung einer Erweiterung wird jetzt ein CameraSelector als Eingabeparameter verwendet. Dies muss derselbe CameraSelector sein, der 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 ist veröffentlicht. Version 1.0.0-alpha04 von camera-view enthält diese Commits.

API-Änderungen

  • Eine PreviewView-Klasse wird bereitgestellt, um die Ausgabe des Vorschau-Anwendungsfalls in einer Anwendung einfach anzuzeigen.
  • PreviewView kann im Layout enthalten sein:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
      … />
    
  • PreviewView bietet eine PreviewSurfaceProvider, mit der Sie einen Anwendungsfall in der Vorabversion ganz einfach verbinden können.

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

  • Bei einigen Methodenparametern hat sich die Null-Zulässigkeit geändert

Camera-Extensions und Camera-View 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 sind veröffentlicht. Dies sind die Commits in camera-extensions:1.0.0-alpha03 und dies die Commits in camera-view:1.0.0-alpha03.

Neue Funktionen

  • Kontextinitialisierer für Erweiterungen hinzugefügt. Erweiterungsversion auf 1.1.0 erhöht

Camera-Extensions und Camera-View 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 sind veröffentlicht. Dies sind die Commits, die in camera-extensions:1.0.0-alpha02 enthalten sind, und dies sind die Commits, die in camera-view:1.0.0-alpha02 enthalten sind.

  • Es wurden Tests hinzugefügt, um zu prüfen, ob PreviewImageProcessorImpl Zeitstempel korrekt implementiert hat.
  • Beheben Sie den Testfehler „ExtensionTest“ 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 sind veröffentlicht. Dies sind die Commits, die in camera-extensions:1.0.0-alpha01 enthalten sind, und dies sind die Commits, die in camera-view:1.0.0-alpha01 enthalten sind.

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