CameraX

CameraX ist eine Ergänzung zu Jetpack, mit der Sie Ihrer App einfacher Kamerafunktionen hinzufügen können. 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 Version Release Candidate Beta-Ausgabe Alphaversion
camera-camera2 1.4.0 - - 1.5.0-alpha03
camera-core 1.4.0 - - 1.5.0-alpha03
camera-compose - - 1.5.0-alpha03
camera-effects 1.4.0 - - 1.5.0-alpha03
camera-extensions 1.4.0 - - 1.5.0-alpha03
camera-feature-combination-query - - 1.5.0-alpha03
camera-feature-combination-query-play-services - - 1.5.0-alpha03
camera-lifecycle 1.4.0 - - 1.5.0-alpha03
camera-mlkit-vision 1.4.0 - - 1.5.0-alpha03
camera-view 1.4.0 - - 1.5.0-alpha03
camera-viewfinder - - 1.3.0-beta02 1.4.0-alpha07
Kamera-Video 1.4.0 - - 1.5.0-alpha03
Diese Bibliothek wurde zuletzt am 30. Oktober 2024 aktualisiert.

Gerätetests

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

Abhängigkeiten deklarieren

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

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

Groovy

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

Kotlin

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

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Kamera-Sucher – Zusammenstellen, Version 1.0

Version 1.0.0-alpha02

12. Juni 2024

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

Version 1.0.0-alpha01

14. Mai 2024

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

Neue Funktionen

  • Neue Bibliothek. Diese Bibliothek enthält ein natives Compose-Viewfinder-Composeable, das mit CameraX und Camera2 verwendet werden kann. Der zusammensetzbare Sucher unterstützt verschiedene Seitenverhältnisse und die Verarbeitung von Touch-Ereignissen.

Kamera-Sucherversion 1.4

Version 1.4.0-alpha07

12. Juni 2024

androidx.camera:camera-viewfinder:1.4.0-alpha07 und androidx.camera:camera-viewfinder-core:1.4.0-alpha07 werden freigegeben. 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 wurden veröffentlicht. Version 1.4.0-alpha06 enthält diese Commits.

API-Änderungen

  • Benennen Sie die ImplementationMode-Enums von Viewfinder um, damit sie die zugrunde liegenden Implementierungen besser widerspiegeln, und fügen Sie feste Konstanten für TransformationInfo.sourceRotation hinzu. (IC6149)
  • ZoomGestureDetector.ZoomEvent wurde hinzugefügt, um die Status einer Zoomgeste zu kapseln. (I84cdf)

Kamera-Version 1.5

Version 1.5.0-alpha03

30. Oktober 2024

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

API-Änderungen

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

Fehlerkorrekturen

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

Version 1.5.0-alpha02

2. Oktober 2024

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

Neue Funktionen

  • Neue APIs zum Abfragen der vom Gerät unterstützten Kamerafunktionen. Beispielsweise kann geprüft werden, ob HDR und 60 fps gleichzeitig aktiviert werden können. Es 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

  • Preview/VideoCapture Problem mit der Ziel-Framerate auf Geräten mit älteren Versionen wurde behoben. Die über die setTargetFrameRate- oder Camera2Interop-API festgelegte Zielframerate wurde immer durch den von AeFpsRangeLegacyQuirk bereitgestellten Wert überschrieben. Durch diese Fehlerbehebung wird in der CameraX-Bibliothek der über die setTargetFrameRate- oder Camera2Interop-API festgelegte Wert berücksichtigt. (Ie2d32)
  • Es wurden Funktionen für Blitz/Taschen und 3A für Bildaufnahmen mit CameraEffect hinzugefügt. Die Aufnahmen mit CameraEffect sollten jetzt dieselben Vor- und Nachbearbeitungen (z.B. Blitzauslöser, 3A-Konvergenz usw.) wie Aufnahmen ohne CameraEffect haben. (I5ff30)
  • Problematische Ausgabegrößen für ImageAnalysis auf dem Samsung SM-A057G wurden ausgeschlossen. Wenn ImageAnalysis eine Auflösung von 1.920 × 1.440 oder höher hat, kommt es zu einem Problem mit der schwarzen Vorschau. ExcludedSupportedSizesQuirk wurde auf das SM-A057G-Gerät angewendet, um das Problem zu vermeiden. (I63dfe, b/365877975)
  • Das Problem mit der Preview/VideoCapture-Ziel-Framerate wurde behoben, wenn der Stream-Freigabemechanismus intern aktiviert ist, um einen Stream für Preview und VideoCapture freizugeben. (I4fdac)
  • Die Problemumgehung für das Problem mit falschen JPEG-Bildmetadaten auf Samsung S10e und S10+ wurde aktiviert. Nach der Fehlerbehebung kann CameraX das JPEG-Bild speichern oder es werden beim Aufrufen der ImageProxy.toBitmap()-Funktion auf diesen Geräten fehlerfreie Bitmap-Objekte zurückgegeben, wenn 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)
  • Das VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE-Ereignis wurde nicht ausgelöst, wenn ein Video aufgezeichnet wurde und nicht genügend Speicherplatz verfügbar ist. Dieses Problem wurde behoben. (Ia5b4f, b/356399842)
  • Behoben: Beim Oppo A5 (CPH1931) schlug der zweite Versuch, eine Videoaufnahme zu starten, fehl. (I181d6)

Version 1.5.0-alpha01

4. September 2024

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

API-Änderungen

  • API zum Festlegen von Kompositionseinstellungen für die gleichzeitige Videoaufnahme mit zwei Kameras bereitstellen Zu den Einstellungen gehören der Alphawert für das Überblenden, der Offset in X- und Y-Koordinaten sowie die Skalierung der Breite und Höhe des Kamerafensters. Versatz, Breite und Höhe werden in normalisierten Gerätekoordinaten angegeben. (Ia2b8a)
  • CameraProvider.getCameraInfo als formale API verfügbar gemacht. (I901cd)
  • Die API PendingRecording.withAudioEnabled(boolean initialMuted) wurde hinzugefügt, um den ursprünglichen Stummschaltungsstatus zu steuern. (I635c3, b/354829267)

Fehlerkorrekturen

  • Der Absturz, der auftrat, wenn bindToLifecycle mit einer zerstörten LifecycleOwner aufgerufen wurde, wurde behoben. (I6e6d8)
  • Die Vorschau der Frontkamera ist bei der Verknüpfung mit VideoCapture auf Motorola Edge 20 Fusion schwarz. (I1fe88)
  • Die Konfiguration für die Erkennung von Zoom-Gesten in PreviewView wurde optimiert, um die flüssige Ausführung zu verbessern. (I04ffc)

Kameraversion 1.4

Version 1.4.0

30. Oktober 2024

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

Wichtige Änderungen seit Version 1.3.0

CameraX 1.4.0 enthält viele aufregende Updates! Übersicht:

Titelfunktion: 10-Bit-HDR-Video:

  • Sie können ganz einfach beeindruckende HDR-Fotos und ‑Videos aufnehmen.
  • Unterstützt HLG und 10-Bit-HEVC-Codierung.
  • Sie können sich eine Vorschau von 10-Bit-HDR ansehen und die Gerätefunktionen abfragen.
  • Funktioniert mit UltraHDR-Bildern und HDR-Videos auf immer mehr Geräten.

Weitere coole Funktionen:

  • Kotlin-Erweiterungen: Die Suspend-Funktionen takePicture und awaitInstance wurden hinzugefügt.
  • Echtzeiteffekte: Sie können Effekte wie Wasserzeichen und Objektmarkierungen anwenden.
  • CameraController API: Neue Steuerelemente für die Konfiguration der Videoaufnahme.
  • Stabilisierung in der Vorabversion: Gerätefunktionen abfragen und Stabilisierung aktivieren.
  • Verbesserungen bei der Videoaufnahme: Bessere Kontrolle über die Qualität und Zugriff auf höhere Auflösungen.
  • Integration der CameraX-Erweiterungen: Nahtlose Integration mit VideoCapture und neuen ImageCapture-Funktionen.
  • Shutter Sound API: Hier können Sie ganz einfach die regionalen Anforderungen an Auslösegeräusche prüfen.
  • Bildschirmblitz: Verbesserte Fotos bei schlechten Lichtverhältnissen für Frontkameras.
  • Metadata APIs für Kamera-Erweiterungen: APIs zum Anpassen der Stärke von Erweiterungen und zum Abrufen einer Benachrichtigung über den aktuellen Erweiterungsmodus in ExtensionMode#AUTO. Weitere Fehlerkorrekturen finden Sie in unseren Beta- und RC-Ankündigungen.

Version 1.4.0-rc04

16. Oktober 2024

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

Fehlerkorrekturen

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

Version 1.4.0-rc03

2. Oktober 2024

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

Fehlerkorrekturen

  • Es wurden Funktionen für Blitz/Taschenlampe/3A für die Bildaufnahme mit CameraEffect hinzugefügt. Die Bilder mit CameraEffect sollten jetzt dieselben Verarbeitungen vor und nach der Aufnahme (z.B. Blitzauslöser, 3A-Konvergenz usw.) wie die Bilder ohne CameraEffect haben. (I5ff30)
  • Das Zoomen durch Auseinander- und Zusammenziehen der Finger wurde in PreviewView optimiert (I04ffc).
  • Ultra HDR ist nicht mehr von der 10-Bit-Ausgabefunktion abhängig, 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 wird veröffentlicht. Version 1.4.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Der Absturz, der auftrat, wenn bindToLifecycle mit einer zerstörten LifecycleOwner aufgerufen wurde, wurde behoben. (I6e6d8)
  • In ScreenFlashView wurde eine Sichtbarkeitsanimation für ScreenFlash#apply hinzugefügt. Außerdem wurden Fehler behoben, die auftraten, wenn die Helligkeitsänderung nach einiger Zeit asynchron abgeschlossen wurde. (I37cdb)
  • Die Zoomfunktion wurde optimiert, 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 wird veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.

Neue Funktionen

  • Es wurde die experimentelle CameraInfo.getCameraInfo hinzugefügt, um bestimmte 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 Belichtung und Farbton wurden behoben, die bei der Aufnahme von Bildern bei schlechten Lichtverhältnissen mit aktiviertem Blitz und dem Anwendungsfall „Videoaufnahme“ auftraten. (IC9814)
  • Das Problem wurde behoben, dass bei einer unterbrochenen takePicture-Anfrage mit aktivierten Erweiterungen kein Ergebnis zurückgegeben werden konnte 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 Pixel 7/8 und Samsung Galaxy S24 wurde behoben. Das Problem, das auf ein Camera2OutputConfigImpl-Konvertierungsproblem im Release-Modus zurückzuführen ist, trat auf, nachdem AGP auf Version 8.5.1 aktualisiert und die Minimierung aktiviert wurde. (I99598, b/354824993)

Version 1.4.0-beta02

12. Juni 2024

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

API-Änderungen

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

Fehlerkorrekturen

  • Das Problem, dass Apps auf dem Samsung Tab A8 keine Bilder aufnehmen konnten, wenn ImageCapture unter Preview + VideoCapture + ImageCapture UseCase das Format 1920 x 1080 auswählte, wurde behoben. (I5a463, b/336925549)
  • Bei der fixen kontinuierlichen Aufzeichnung wird die Aufzeichnung nach dem Wechseln der Kamera möglicherweise nicht fortgesetzt. (Icb0a1)

Version 1.4.0-beta01

14. Mai 2024

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

API-Änderungen

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

Fehlerkorrekturen

  • Ein Fehler wurde behoben, durch den bei der Aufnahme und dem Fokussieren durch Tippen weiterhin nicht die Werte für die wiederholte FPS-/Stabilisierungsmodusanfrage verwendet wurden. Dies kann dazu führen, dass die Aufnahmesitzung noch einmal erstellt wird und auf einigen Geräten Latenzprobleme oder ein Einfrieren der Vorschau auftreten. (I7dc0b)
  • Ein Fehler wurde behoben, durch den auf einigen Geräten keine hohen Auflösungen ausgewählt werden konnten, wenn CameraEffect aktiviert war. (z. B. 4.000 × 3.000 auf dem Samsung A32 5G). (Ie3ed3, b/337336152)
  • Ein Absturz beim Aufnehmen von Bildern mit der Vorschau wurde behoben, wenn ImageCapture und VideoCapture(UHD) auf Pixel 4 XL mit API 29 verknüpft sind. (I5b288)
  • Virtuelle Geräte unterstützen: Der an ProcessCameraProvider übergebene Kontext behält die Geräte-ID bei, um die Funktionalität in einer virtuellen Geräteumgebung sicherzustellen. (I5ba48)

Version 1.4.0-alpha05

17. April 2024

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

Neue Funktionen

  • ProcessCameraProvider in Kotlin-Implementierung konvertiert (I46d4f)
  • Es wurden ImageCapture.takePicture-Sperrfunktionen hinzugefügt, um einen Kotlin-idiomatischen Aufruf zu ermöglichen. (I920be)

API-Änderungen

  • Fügen Sie ImageCapture APIs für Ausgabeformate und ImageCaptureCapabilities die Methode getSupportedOutputFormats hinzu, um die Gerätefunktionen abzufragen. Der Standardwert für das Ausgabeformat ist OUTPUT_FORMAT_JPEG. Damit werden SDR-Bilder im JPEG-Format erfasst. 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 normale JPEG-Dateien angezeigt werden. In Apps und auf Geräten, die für die vollständige Unterstützung des Formats aktualisiert wurden, werden Bilder als HDR angezeigt. (I5de50)
  • Fügen Sie PhysicalCameraInfo in CameraInfo ein, um Informationen zur physischen Kamera abzufragen, und fügen Sie in CameraSelector einen Setzer/Getter für die physische Kamera-ID hinzu (Ic5b90).
  • Ersetzen Sie CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED durch ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. Der Wert der Konstante bleibt gleich. Damit werden alle Konstanten an einem Ort zusammengefasst. (I890bb)
  • Mit der neuen RetryPolicy API können Entwickler das Wiederholungsverhalten für die CameraX-Initialisierung anpassen. (I36dd2)
  • Ermöglichen des Erstellens von ImageCaptureLatencyEstimate-Objekten zur Unterstützung der Testbarkeit (Iaba99)
  • Fügen Sie ein ImageAnalysis#COORDINATE_SYSTEM_SENSOR hinzu. In diesem Fall gibt MlKitAnalyzer Koordinaten im Koordinatensystem des Kamerasensors zurück. (I3ec61)
  • Offengelegte Erweiterungsmetadaten-API. Über die neuen CameraExtensionsInfo- und CameraExtensionsControl-Oberflächen können Anwendungen die Einstellungen für die Stärke von Erweiterungen ü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 in der Schwebe befindliche Version von ProcessCameraProvider.getInstance (Ib22b9)
  • Fügen Sie eine PreviewView#getSensorToViewTransform() API hinzu. Die Matrix stellt die Transformation von Kamerasensorkoordinaten in die Koordinaten von PreviewView dar. Damit können Koordinaten von einer UseCase in eine andere umgewandelt werden. Ein Beispiel dafür ist die Umwandlung der Koordinaten erkannter Objekte in ImageAnalysis in das Overlay PreviewView. (I947ab)
  • Die camera-viewfinder-core API allgemeiner gestalten, damit sie von camera-viewfinder und camera-viewfinder-compose verwendet werden kann (I1e295)
  • Fügen Sie ViewfinderSurfaceRequest die Funktion getSurface hinzu. (I781a0)
  • Verwende camera-viewfinder-core in camera-viewfinder und setze ViewfinderSurfaceRequest und CameraViewfinder auf die Liste der veralteten Emojis. (I6198c)
  • ZoomGestureDetector wurde hinzugefügt, die Skalierungsgesten interpretiert, die speziell für Zoomen durch Auseinander- und Zusammenziehen konfiguriert wurden. (Ifafbf)

Fehlerkorrekturen

  • Behoben wurde ein Problem bei der Auflösungsauswahl von ImageAnalysis im Zusammenhang mit der Standardeinstellung für die Zielauflösung des Analysetools: Die Zielauflösung wurde fälschlicherweise bei 640 × 480 Pixeln belassen, auch wenn in den Anwendungen eine andere Standardeinstellung für die Analysetool-Auflösung festgelegt wurde. Wenn in Anwendungen dieses Problem auftritt (1.3.0 bis 1.3.2) und ein Upgrade auf die neueren Versionen nicht möglich ist, die die Lösung enthalten, kann das Problem durch direktes Festlegen einer ResolutionSelector mit der gewünschten Auflösung und einer übereinstimmenden AspectRatioStrategy für die ImageAnalysis UseCase umgangen werden. (I81f72, b/330091012)
  • Ein Problem wurde behoben, bei dem eine takePicture-Anfrage in der Warteschlange möglicherweise nicht ausgeführt wurde, wenn die aktuelle Anfrage fehlgeschlagen ist. (Ie0801)
  • Legen Sie die Prüfung auf ungültige JPEG-Daten auf Vivo X60- und X60 Pro-Geräten fest. 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. Nach der Korrektur kann CameraX das JPEG-Bild erfolgreich speichern oder die korrekten Bitmap-Objekte können beim Aufrufen der ImageProxy.toBitmap()-Funktion auf Samsung A24-Geräten zurückgegeben werden. (I8d6eb, b/309005680)
  • Legen Sie die Prüfung auf ungültige JPEG-Daten für alle Samsung-Geräte fest, 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 für 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 wird veröffentlicht. Version 1.4.0-alpha04 enthält diese Commits.

Neue Funktionen

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

API-Änderungen

  • ScreenFlashUiCompleter wurde in ScreenFlashListener umbenannt und ScreenFlashUiCompleter#getExpirationTimeMillis wurde in den expirationTimeMillis-Parameter von ScreenFlash#apply verschoben. (I13944)
  • Es wurden neue APIs hinzugefügt, mit denen der dynamische Bereich für den Anwendungsfall „Vorschau“ festgelegt und die von den einzelnen Kameras unterstützten dynamischen Bereiche abgefragt werden können. So können HDR-Dynamikbereiche wie HLG10 nur für den Anwendungsfall „Vorschau“ verwendet werden. Es muss nicht mehr gleichzeitig eine VideoCapture gebunden werden. (If25e3)
  • getMirroring() in isMirroring() umbenannt (I47063)
  • In CameraX wird weiterhin die Unterstützung von Schätzungen der Latenz in Echtzeit erfasst. Mit Kameraerweiterungen können Anwendungen eine API verwenden, die eine Schätzung dazu liefert, wie lange eine Aufnahme dauern wird. Die Schätzung berücksichtigt die aktuellen Umgebungsbedingungen, den Kamerastatus und die Zeit, die für die Verarbeitung von Multiframe-Erfassungsanfragen aufgewendet wurde, sowie gegebenenfalls zusätzliche Zeit für die Codierung verarbeiteter Zwischenspeicher. (I05c3a)
  • ScreenFlashUiControl wurde in ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi in ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi in ScreenFlash#clear umbenannt und die Methode getScreenFlashUiApplyTimeoutSeconds hinzugefügt, anstatt SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS direkt freizugeben. (Iccdd0)

Fehlerkorrekturen

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

Version 1.4.0-alpha03

13. Dezember 2023

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

Neue Funktionen

  • CameraInfo.mustPlayShutterSound wurde hinzugefügt, um anzugeben, ob ein Auslösegeräusch gemäß den regionalen Einschränkungen wiedergegeben werden muss. (Ifda84)
  • OnImageCapturedCallback.onCaptureStarted und OnImageSavedCallback.onCaptureStarted wurden hinzugefügt, um zu benachrichtigen, wenn die Kamera mit der Belichtung eines Frames begonnen hat. Es wird empfohlen, an dieser Stelle den Auslöserton oder die Auslöseranimation abzuspielen. (Ic49b3)
  • In CameraX wird die Funktion "Bildschirmblitz" für die Aufnahme von Bildern mit der Frontkamera unterstützt. CameraX übernimmt die frameworkseitige API-Verarbeitung und synchronisiert die Zeit mit den UI-Änderungen der Anwendung, falls erforderlich (z.B. AE-Trigger vor der Aufnahme nach Änderung der Farbe/Helligkeit des App-Bildschirms). Apps müssen ihre UI-Implementierungen nur in der ScreenFlashUiControl-Benutzeroberfläche hinzufügen, die für CameraX bereitgestellt wird. (I8ae84)
  • Unterstützung für die UI-seitige Implementierung der Funktion „Bildschirm-Blitz“ in CameraX hinzugefügt. Apps können eine einfache ImageCapture.ScreenFlashUiControl-Implementierung von PreviewView oder der neu hinzugefügten ScreenFlashView erhalten. Dadurch wird eine einfarbige Overlay-Ansicht hinzugefügt und die Bildschirmhelligkeit während der Aufnahme eines Bildschirmblitzes maximiert. (I1810e)

API-Änderungen

  • Unterstützung neuer Erweiterungsfunktionen(Fortschritt des Postview- und Erfassungsprozesses): Es wurden ImageCapture#getImageCaptureCapabilities() APIs für Apps hinzugefügt, mit denen die Funktionen des Postview- und Erfassungsfortschritts-Callbacks abgefragt werden können. In Apps kann die Postview-Funktion mithilfe von ImageCapture.Builder#setPostviewEnabled() aktiviert werden. Die Größe der Postview-Anzeige kann mit ImageCapture.Builder#setPostviewResolutionSelector() ausgewählt werden. Wenn takePicture() aufgerufen wird, können onPostviewBitmapAvailable und onCaptureProcessProgressed in OnImageSavedCallback oder OnImageCapturedCallback implementiert werden, um die Postview- und Verarbeitungsfortschrittsbenachrichtigung abzurufen, sofern unterstützt. (I5cd88)
  • APIs zum Berechnen der Koordinatentransformation vom Sensor zum aktuellen Puffer mit einem Flag, das angibt, ob die Oberfläche die Informationen zur Kameraausrichtung enthält. (I59096)
  • Stellen Sie die API für die Abfrage von PreviewCapabitlity in der Vorabversion UseCase bereit. (Ie5b6c)
  • APIs wurden hinzugefügt, um mehr Qualitäten für VideoCapture zu unterstützen. Recorder.Builder#setVideoCapabilitiesSource(int) kann mit VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES kombiniert 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 App versucht, UHD-Videos aufzuzeichnen, wann immer dies möglich ist, aber CamcorderProfile auf dem Gerät keine UHD-Einstellungen hat, obwohl der Codec UHD-Video aufzeichnen kann. (Iedbe2, b/263961771)
  • Fügen Sie CameraController einen Getter/Setter für das ImageAnalysis-Ausgabeformat hinzu. (I9a96c, b/308240643)

Fehlerkorrekturen

  • Kamera 1.3.1: Die Leistung von ProcessCameraProvider#bindToLifecycle() wurde verbessert. Die wesentliche Ä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 im JFIF-komprimierten Datensegment redundante Padding-Daten mit Nullen. Dadurch haben die aufgenommenen Bilder eine extrem große Dateigröße. Diese redundanten Padding-Daten mit Nullen werden entfernt, damit die aufgenommenen Bilder eine normale Bilddateigröße haben. (I01afc, b/288828159)
  • Deaktiviere die ImageAnalysis-Unterstützung für Pixel, um den Fehler auf Pixel zu vermeiden, der versehentlich die nicht leeren unterstützten ImageAnalysis-Größen zurückgibt. (I7ec31)
  • Das Leistungsproblem, bei dem die CPU-Auslastung und der Stromverbrauch stiegen, wenn Erweiterungen aktiviert waren, wurde behoben. (Ibdccb)
  • Snapdragon 480 wurde zu CameraUseInconsistentTimebaseQuirk hinzugefügt. Dadurch wird ein Problem unter Android 12 auf Geräten mit diesem Chipsatz behoben, bei dem die Audioinhalte in Aufnahmen um die Zeit verschoben werden, in der sich das Gerät im Ruhemodus befindet. (I58010)

Version 1.4.0-alpha02

18. Oktober 2023

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

API-Änderungen

  • Benennen Sie die API in setCameraOpenRetryMaxTimeoutInMillisWhileResuming um und benennen Sie das Argument um. (I72370)
  • APIs zum Abfragen der Gerätefunktionen und zum Aktivieren der Video-/Vorschaustabilisierung hinzugefügt. (I87544)
  • API zum Anpassen der maximalen Zeitüberschreitung für die Wiederholung des Öffnens der Kamera bereitstellen (I0c642)
  • ProcessCameraProvider.shutdownAsync wurde als öffentliche Test-API veröffentlicht, um den Prozesskameraanbieter in Testsuiten zu verwenden, bei denen CameraX zwischen den Tests möglicherweise auf unterschiedliche Weise initialisiert werden muss. (I9eca7)
  • APIs zum Konfigurieren des dynamischen Bereichs, der Framerate und des Spiegelmodus für die Videoaufnahme hinzugefügt. (Ifb8f7)
  • OutputSize wird eingestellt und durch ResolutionSelector ersetzt. ResolutionSelector ist eine umfassendere Möglichkeit, Auflösungen auszuwählen, und entspricht der Camera Core API. (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)
  • Vorschau und VideoCapture verlängerte Probleme auf Moto E5 Play wurden behoben. (73dce2)

Version 1.4.0-alpha01

20. September 2023

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

API-Änderungen

  • Neue API hinzufügen, um während der Aufzeichnung auf Informationen zur Audiostärke zuzugreifen. (Id4925)

Fehlerkorrekturen

  • Verbessern Sie die Stabilität der Erweiterungen, indem Sie dafür sorgen, dass die Initialisierungs- und Deinitialisierungsereignisse in der richtigen Reihenfolge ausgelöst werden. (Ib3b8e)
  • Der Konfigurationsfehler bei der Erfassungssitzung wurde behoben, weil die unterstützte Oberflächenkombination überschritten wurde, da intern eine zusätzliche wiederkehrende Oberfläche hinzugefügt wurde. (Id718c)
  • Problem mit großen aufgenommenen JPEG-Bildern auf dem Vivo S16 wurde behoben. Die erfassten JPEG-Bilder enthalten redundante Nullen Padding-Daten im komprimierten JFIF-Datensegment. Dadurch haben die aufgenommenen Bilder eine große Dateigröße. Diese redundanten Padding-Daten mit Nullen werden entfernt, damit die aufgenommenen Bilder eine normale Bilddateigröße haben. (I79505, b/299069235)
  • Das Problem wurde behoben, dass ImageAnalysis nicht mit ImageCapture und der Vorschau verknüpft werden kann, wenn auf einigen Geräten bestimmte Erweiterungsmodi aktiviert sind. Nach der Fehlerbehebung wird der richtige Wert zurückgegeben, wenn Apps die ImageAnalysis-Verfügbarkeit über ExtensionsManager#isImageAnalysisSupported() abfragen. (I7d538)
  • Aktualisieren Sie das JavaDoc, damit es dem Verhalten entspricht. Anstatt sofort abgeschlossen zu werden, warten #setZoomRatio, #setLinearZoom und #enableTorch, bis die Kamera bereit ist. Außerdem wurden Informationen 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 wird veröffentlicht. Version 1.3.4 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem wurde behoben, bei dem getZoomRatio bei einem zunehmenden Zoomverhältnis fälschlicherweise einen niedrigeren Wert zurückgab. (I4aa0d, b/317543616)
  • Es wurde ein Problem behoben, bei dem die Aufnahme / das Tippen zum Fokussieren weiterhin nicht auf die Werte für wiederholte Anfrage-fps und Stabilisierungsmodus angewendet wurde. Dadurch kann es bei einigen Geräten zu einer Neuerstellung der Aufnahmesitzung und zu Latenzproblemen oder einem Einfrieren der Vorschau kommen. (I7dc0b)
  • Das Problem wurde behoben, dass die Framerate auf einen niedrigeren Wert gesetzt wird, wenn setTargetFrameRate mit FRAME_RATE_RANGE_UNSPECIFIED aufgerufen wird. (I78c61)

Version 1.3.3

17. April 2024

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

Fehlerkorrekturen

  • Behoben wurde ein Problem bei der Auflösungsauswahl von ImageAnalysis im Zusammenhang mit der Standardeinstellung für die Zielauflösung des Analysetools: Die Zielauflösung wurde fälschlicherweise bei 640 × 480 Pixeln belassen, auch wenn in den Anwendungen eine andere Standardeinstellung für die Analysetool-Auflösung festgelegt wurde. Wenn Anwendungen auf dieses Problem (1.3.0 bis 1.3.2) stoßen und kein Upgrade auf die neueren Versions-Releases durchführen kann, die diese Lösung enthalten, kann das Problem möglicherweise behoben werden, indem direkt ResolutionSelector mit der bevorzugten Auflösung und einem passenden AspectRatioStrategy zum ImageAnalysis-Anwendungsfall festgelegt wird. (I81f72, b/330091012)

Version 1.3.2

6. März 2024

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

Fehlerkorrekturen

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

Version 1.3.1

13. Dezember 2023

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

Fehlerkorrekturen

Die Leistung von ProcessCameraProvider#bindToLifecycle() wurde verbessert. Die wesentliche Ä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 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. Dadurch wird auf Geräten mit diesem Chipsatz ein Problem behoben, bei dem der Ton in Aufnahmen durch die Zeit, in der das Gerät gesperrt ist, ausgeglichen wurde. (I58010)

Version 1.3.0

18. Oktober 2023

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

Wichtige Änderungen seit Version 1.2.0

Version 1.3.0-rc02

20. September 2023

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

Fehlerkorrekturen

  • Die Stabilität von Erweiterungen lässt sich verbessern, indem die Initialisierungs- und Deinitialisierungsereignisse in der richtigen Reihenfolge ausgelöst werden. Dadurch wurden einige Probleme mit schwarzen Vorschauen beim Wechseln der Erweiterungsmodi oder der Kamera behoben. (Iddaac)
  • Das Problem wurde behoben, dass ImageAnalysis nicht mit ImageCapture und der Vorschau verknüpft werden kann, wenn auf einigen Geräten bestimmte Erweiterungsmodi aktiviert sind. Die Korrektur gibt den richtigen Wert zurück, wenn Apps die ImageAnalysis-Verfügbarkeit über ExtensionsManager#isImageAnalysisSupported() abfragen. (I7d538)
  • Das Problem wurde behoben, dass Audio und Video bei aufgezeichneten 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 wird veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.

API-Änderungen

  • PendingRecording.asPersistentRecording wurde hinzugefügt, damit eine Aufnahme fortgesetzt werden kann, während die VideoCapture, an die der Rekorder angeschlossen ist, neu verbunden wird. (I517c6)

Fehlerkorrekturen

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

Version 1.3.0-beta02

26. Juli 2023

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

Fehlerkorrekturen

  • Taschenlampe als Blitz für Pixel 4- und 5-Varianten verwenden, um die Aufnahmequalität bei wenig Licht 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 im komprimierten JFIF-Datensegment redundante Padding-Daten mit Nullen. Die aufgenommenen Bilder haben eine Dateigröße von etwa 32 MB. Diese redundanten Padding-Daten mit Nullen werden entfernt, damit die aufgenommenen Bilder eine normale Bilddateigröße haben. (I29837, b/288828159)
  • Ein Problem wurde behoben, durch das die Wiederholung bei Erfassungsfehlern bei problematischen Geräten, die in „CaptureFailedRetryQuirk“ erwähnt werden, nicht richtig ausgelöst wurde. (I7b589)

Version 1.3.0-beta01

21. Juni 2023

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

API-Änderungen

  • Der Funktionsname ResolutionSelector.Builder#setHighResolutionEnabledFlag(int) wurde in setAllowedResolutionMode umbenannt und die Konstanten ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON in PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8)
  • Die eingestellten APIs ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int) und VideoCapture.setTargetRotationDegrees(int) wurden entfernt. (Id8e77)
  • Die Klasse DynamicRange stellt den Dynamikbereich von Bildern dar. So können Sie HDR-Formate als Ausgabe von VideoCapture bis VideoCapture.Builder#setDynamicRange() auswählen. (Ib0377)
  • Der ExtensionsManager wurde eine isImageAnalysisSupported API hinzugefügt, mit der Apps 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 aus dem Recorder kann verwendet werden, um unterstützte dynamische Bereiche und Qualitäten für Videoaufnahmen 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() wurde in setVideoCaptureQualitySelector umbenannt und nimmt das Argument QualitySelector entgegen, was mehr Flexibilität bei der Einrichtung der Videoqualität bietet. CameraController#getVideoCaptureTargetQuality() wird entsprechend in getVideoCaptureQualitySelector geändert. (I520ed)
  • Die Anmerkung „Experimentell“ für Videofunktionen wurde entfernt. Die Videofunktionen sind jetzt stabil. (I1a113)

Fehlerkorrekturen

  • Du kannst die Taschenlampe auf Samsung SM-A320-Modellen als Blitz verwenden, um bei wenig Licht die Geschwindigkeit und die Qualität der Aufnahmen 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 eine UnsupportedOperationException geworfen. (I81958, b/282057603)

Version 1.3.0-alpha07

24. Mai 2023

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

Neue Funktionen

  • Mit der neuen VideoCapture.Builder# setTargetFrameRate(Range) API können Videoaufnahmen mit anderen Framerates als der Standardeinstellung 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 in setAllowedResolutionMode. (Iae817)
  • CameraInfo#getSupportedFrameRateRanges() gibt jetzt Set statt List zurück, um besser darzustellen, dass die Bereiche ungeordnet sind. (I02f43)
  • CameraEffect einen Fehlerlistener hinzufügen, um nicht wiederherstellbare Fehler zu behandeln (Ice471)
  • Öffentlichen Konstruktor in ResolutionInfo hinzufügen, um die Testbarkeit zu verbessern (If6d1c)
  • Es wurde eine API-UseCase.snapToSurfaceRotation(int) bereitgestellt, um die Nutzung von setTargetRotationDegrees zu ersetzen und die API ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int) und VideoCapture.setTargetRotationDegrees(int) einzustellen. (Ia9010)
  • Neue API Preview#getTargetFrameRate und Preview.Builder#setTargetFrameRate hinzugefügt, um die Ziel-Framerate für den Vorschau-Anwendungsfall festlegen und abrufen zu können (If4f22)
  • VideoRecordEvent.Finalize wird jetzt mit dem Fehlercode ERROR_RECORDING_GARBAGE_COLLECTED ausgefüllt, wenn das Recording-Objekt aufgrund einer automatischen Speicherbereinigung gestoppt wird. (Iba974)

Fehlerkorrekturen

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

Version 1.3.0-alpha06

19. April 2023

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

Neue Funktionen

  • Die Funktion „Gleichzeitige Kamera“ ist eine neue Funktion, die mit Android 11 eingeführt wurde. Sie unterstützt beispielsweise das gleichzeitige Streamen von Kamerageräten. So können auf einem Gerät sowohl die Front- als auch die Rückkamera gleichzeitig betrieben werden. CameraX unterstützt derzeit nur zwei gleichzeitige Kameras, wobei jeweils höchstens zwei {@link UseCase}s gebunden sind. Die maximale Auflösung beträgt 720p oder 1440p. Weitere Informationen finden Sie unter CameraManager#getConcurrentCameraIds().
  • Wir stellen die neue ResolutionSelector API vor, die folgende Funktionen umfasst:
    • In Apps können Strategien für das Seitenverhältnis und die Auflösung festgelegt werden, um die beste Auflösung für ihre Anforderungen auszuwählen.
    • Alle Größen und Seitenverhältnisparameter werden in den Koordinaten des Kameragerätesensors 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 die Verwendung einer hohen Auflösung zu längeren Aufnahmezeiten führen kann.
    • VideoCapture-Spiegelungs-APIs wurden hinzugefügt. Von VideoCapture aufgenommene Videos werden nicht standardmäßig gespiegelt. Die Kameravorschau wird jedoch standardmäßig auf der Frontkamera gespiegelt. Mit VideoCapture-Spiegelungs-APIs ist es möglich, die Kamera an die 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 deaktiviert, aber für die Frontkamera aktiviert ist.

API-Änderungen

  • Neue ResolutionSelector API freigegeben. Apps können Seitenverhältnis- und Auflösungsstrategien mit Fallback-Regeln oder einem benutzerdefinierten Auflösungsfilter angeben, um die gewünschten Ergebnisse zu erzielen. Anwendungen können ein Flag angeben, um die Aufnahme in hoher Auflösung zu aktivieren. Dadurch kann CameraX 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() korrigieren (I83304)
  • Die alten APIs setTargetAspectRatio und setTargetResolution wurden eingestellt. Verwenden Sie stattdessen die neue ResolutionSelector API. (I542c3)
  • Öffentliche APIs für gleichzeitige Dual-Kamera wurden 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 auf null setzen (Ib9c60)
  • VideoCapture-Spiegelungs-APIs wurden hinzugefügt, darunter VideoCapture.Builder.setMirrorMode(int) und VideoCapture.getMirrorMode(). Die APIs sind nützlich für Anwendungen, bei denen die Videoaufzeichnung dem üblichen Verhalten der Kameravorschau entsprechen muss, d.h. die Rückkameravorschau ist nicht gespiegelt, die Frontkameravorschau jedoch schon. (I713b6, b/194634656)
  • Fügen Sie die setTargetFrameRate() API in die VideoCapture.Builder und die getTargetFramerate() API in VideoCapture (I109d4) ein
  • Machen Sie SurfaceOutput zum Erweitern von Closable und blenden Sie den öffentlichen Konstruktor von SurfaceOutput.Event aus. (I60ea8)
  • Mit der Taste Recording.mute können Sie eine Aufnahme, die gerade verarbeitet wird, dynamisch stummschalten oder die Stummschaltung aufheben. RecordingStats enthält AudioStats.AUDIO_STATE_MUTED, wenn die Aufzeichnung, die gerade verarbeitet wird, explizit stummgeschaltet ist. (Ie17fc)
  • Der Parameter #setEffects() wurde auf "null" gesetzt. Füge eine #clearEffects() API zum Löschen von Effekten hinzu. Die App sollte #clearEffects() aufrufen, um Effekte zu entfernen. (I4b4d9)
  • Fügen Sie einen zweiten Konstruktor für ViewfinderSurfaceRequest.Builder hinzu, der einen Builder für den Kopierkonstruktor annimmt (I621a7).

Fehlerkorrekturen

  • Das Problem wurde behoben, durch das Apps, die die Extensions API aufrufen, beim Schließen der Kamera abstürzen konnten (Ib27e5).
  • Ein Problem wurde behoben, durch das VideoCapture auf einigen Geräten nicht mit der Frontkamera funktionierte. Beispielsweise auf Samsung Galaxy S23 und Xiaomi 2107113SG. (Ibec7e, b/270656244)
  • In Android 10 oder höher schlug das Aufnehmen von Bildern über die Datei im öffentlichen Ordner des externen Speichers immer fehl. Dieses Problem wurde behoben. Hinweis: Unter Android 10 müssen Sie außerdem im Anwendungs-Tag requestLegacyExternalStorage auf „wahr“ setzen, um mit der Datei-App im öffentlichen Ordner des externen Speichers Fotos aufnehmen zu können. (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 wird veröffentlicht. Version 1.3.0-alpha05 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

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

Version 1.3.0-alpha04

22. Februar 2023

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

Neue Funktionen

Eine neue Funktion, mit der zuvor nicht unterstützte Kombinationen von Oberflächen unterstützt werden, indem ein Stream für mehrere Anwendungsfälle freigegeben wird.

  • Bisher wurde bei der Bindung von „Preview, VideoCapture, ImageAnalysis“ auf der Kamerahardwareebene FULL und darunter oder der Bindung von „Preview, VideoCapture, ImageCapture“ auf der Hardwareebene LEGACY von CameraX die Fehlermeldung IllegalArgumentException ausgegeben.
  • Das neue Verhalten besteht darin, dass die Bindungen funktionieren, ohne dass Ausnahmen geworfen werden. Stattdessen verwendet CameraX OpenGL, um einen freigegebenen Stream sowohl in die Vorschau als auch in VideoCapture zu kopieren.
  • Aufgrund der Kosten für die Pufferkopie kann es in 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 Formate für ImageProxy sind ImageFormat.YUV_420_888 und PixelFormat.RGBA_8888. Wenn das Format ungültig ist, wird IllegalArgumentException ausgegeben. (Ic7110)
  • CoroutineCameraViewfinder hinzufügen, um den Sucher mithilfe von suspendierenden Funktionen in Kotlin zu konfigurieren (I657bc)
  • Neuen öffentlichen Konstruktor für ViewfinderSurfaceRequest hinzufügen. Sie bietet Flexibilität, wenn der Nutzer keine CameraCharacteristics angeben kann. (Ie6549)

Fehlerkorrekturen

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

Version 1.3.0-alpha03

25. Januar 2023

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

API-Änderungen

  • CameraInfo.getIntrinsicZoomRatio wurde hinzugefügt, um Informationen zum Blickwinkel im Verhältnis zur Standardkamera anzugeben. (Ib300c)
  • CameraInfo.getLensFacing wurde hinzugefügt, um Informationen zur Ausrichtung des Objektivs anzugeben. CameraSelector#LENS_FACING_EXTERNAL wurde als experimentelle Funktion für die Auswahl externer Kameras hinzugefügt. (Icaf3e)
  • Fügen Sie #setEffect() zu CameraController hinzu, um der Kameraausgabe Effekte hinzuzufügen. (I1d21f)
  • Methode invalidate() zu SurfaceRequest hinzufügen. Der Surface-Anbieter kann benachrichtigen, 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)
  • Es wurde Recorder.Builder#setTargetVideoEncodingBitRate hinzugefügt, um die Zielvideocodierung BitRate festzulegen, und Recorder#getTargetVideoEncodingBitRate, um die Bitraten der Zielvideocodierung abzurufen. (I5984d)

Fehlerkorrekturen

  • ImageCapture schlug fehl, wenn keine Flash-Einheit vorhanden und der Blitzmodus aktiviert war. Dieses Problem wurde behoben. (I9e8b4, b/263391112)
  • Das 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 die Taschenlampe oder der Zoom vor Abschluss der Kamerainitialisierung festgelegt wird, 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 wird veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.

API-Änderungen

  • Eine neue API zum Anwenden von Nachbearbeitungseffekten auf die Vorschauausgabe hinzufügen (Ic17d5)
  • OutputOptions.getDurationLimit wurde in OutputOptions.getDurationLimitMillis und OutputOptions.setDurationLimit in OutputOptions.setDurationLimitMillis umbenannt. (I91f0c)
  • Fügen Sie die Klasse AudioConfig hinzu, um die audiobezogene Einstellung bei der Videoaufzeichnung zu übernehmen. Die Anmerkung @RequiresPermission wird von startRecording-Funktionen zu AudioConfig-Funktionen verschoben, um unnötige Berechtigungsanfragen zu vermeiden, wenn Audio nicht erforderlich ist. (I28755)
  • Entfernen Sie die Klassen „Metadaten“, OnVideoSavedCallback, OutputFileOptions und OutputFileResults, die nach der Anwendung der neuen Videoaufzeichnungs-API nicht mehr verwendet werden. (I38cd8)
  • Die neue Videoaufzeichnungs-API anwenden Die Methoden getVideoCaptureTargetSize und setVideoCaptureTargetSize werden entsprechend durch die Methoden getVideoCaptureTargetQuality und setVideoCaptureTargetQuality ersetzt, da setTargetResolution nicht mehr unterstützt wird. (I2a1d5)

Fehlerkorrekturen

  • Eingestellte core.VideoCapture API entfernen. (I531e0)
  • Das Problem wurde behoben, dass der onError-Callback nicht aufgerufen wird, wenn Fotos ohne die Speicherberechtigung aufgenommen werden.(I936db, b/244807669)
  • Qualität und Zuverlässigkeit von Kamera-Erweiterungen verbessern Auf Motorola-Geräten mit Camera Extensions 1.1.0 und niedriger werden Kameraerweiterungen aufgrund von Problemen mit der Bokeh-Unterstützung, der Bildaufnahme und der nicht fortgesetzten Vorschau deaktiviert. (Id3ce3)
  • Ein Fehler wurde behoben, durch den der native Absturz behoben wurde, 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 wird veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Camera-viewfinder wurde offiziell veröffentlicht. Camera-viewfinder bietet ein Basis-Sucher-Widget, mit dem der Kamerafeed für Camera2 angezeigt werden kann. Ein Beispiel findest du im Beispielcode.

API-Änderungen

  • OutputOptions.setDurationLimit wurde hinzugefügt, um das Festlegen eines Limits für die Videodauer zu ermöglichen. Die Aufnahme wird automatisch beendet, wenn die angegebene maximale Dauer überschritten wird. (I902a0)
  • Audiofehlerstatus „AudioStats.AUDIO_STATE_SOURCE_ERROR“ bei der Videoaufnahme hinzufügen. Wird gesendet, wenn die Einrichtung der Audioquelle fehlschlägt oder ein Fehler auftritt. (I37410)

Fehlerkorrekturen

  • Füge einen Fehler hinzu, damit einige problematische Geräte die Aufnahme einmal wiederholen können, wenn Erfassungsfehler auftreten. (ID4795)
  • Behebung des Problems mit dem schwarzen Bildschirm bei der PreviewView SurfaceView-Implementierung auf ViewPager2. Im Rahmen der Fehlerbehebung wird PreviewView seine SurfaceView wiederverwenden, wenn sich die angeforderte Auflösung nicht ändert. (Ib3f27)
  • Unterstützung für das Zuschneiden von Videos (WYSIWYG-Funktion) bei Verwendung der ViewPort- oder CameraController-API (Ifbba8, b/201085351)
  • Ein Problem wurde behoben, durch das mit der Frontkamera aufgenommene Videos auf dem Huawei P40 Lite nicht aufgenommen werden konnten. (I87c57, b/250807400)

Version 1.2

Version 1.2.3

24. Mai 2023

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

Fehlerkorrekturen

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

Version 1.2.2

22. März 2023

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

Fehlerkorrekturen

  • Auf einigen Geräten wie Pixel (I90aa2) funktionierten CameraX-Erweiterungen bei aktiviertem Proguard nicht richtig.

Version 1.2.1

25. Januar 2023

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

Fehlerkorrekturen

  • Behebung eines Problems, bei dem JPEG-Bilder beschädigt wurden, 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 wird veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • Neue Bibliothek „camera-mlkit-vision“ Sie können CameraX ganz einfach in viele ML Kit-Funktionen einbinden, z. B. Barcode-Scannen, Gesichtserkennung und Texterkennung. MLKitAnalyzer wurde als neue API hinzugefügt.
  • Neue experimentelle API für Zero-Shutter-Lag. Die Aufnahmepipeline wird optimiert, um eine geringere Latenz bei gleichzeitig guter Bildqualität zu erzielen. Wenn der Aufnahmemodus auf CAPTURE_MODE_ZERO_SHUTTER_LAG eingestellt ist, sollte die Latenz zwischen dem Klick auf den Auslöser und der Aufnahme des Bildes im Vergleich zu anderen Aufnahmemodi minimiert werden. Auf Geräten, die ZERO_SHUTTER_LAG nicht unterstützen, wird CAPTURE_MODE_MINIMIZE_LATENCY verwendet.
  • android.camera.core.VideoCapture einstellen
  • setStreamUseCase() wurde als öffentliche Camera2Interop API hinzugefügt.
  • Es wurde eine Anforderung an das API-Level für setOutputImageRotationEnabled hinzugefügt.
  • ImageAnalysis.Analyzer#getTargetResolutionOverride() wurde in ImageAnalysis.Analyzer#getDefaultTargetResolution() umbenannt.
  • Es wurde eine API zum Festlegen von Standortmetadaten für das gespeicherte Video hinzugefügt.
  • Problem mit niedriger Framerate behoben, die bei der Verwendung von VideoCapture und der Vorabversion mit einem Seitenverhältnis von 16:9 verwendet wurde
  • Das Problem mit der schwarzen Vorschau, das auftrat, wenn die BOKEH-Erweiterung auf einigen Samsung-Geräten aktiviert war und der Nutzer die Kameras wechselte, wurde behoben.
  • Das Problem mit dem erweiterten Problem bei Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) Preview/VideoCapture auf Geräten mit API-Level 27 wurde behoben.
  • Die Problemumgehung 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 wird veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.

API-Änderungen

  • Fügen Sie die setStreamUseCase API für OutputConfiguration hinzu. Der Nutzer kann den Stream-Nutzungsfall für die Stream-Sitzung angeben und die interne Logik von CameraX überschreiben, um den Stream-Nutzungsfall auszuwählen und so die Leistung nach Bedarf zu optimieren. (Ib1a95)

Fehlerkorrekturen

  • Behobenes Problem mit der Preview/VideoCapture-Dehnung auf Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) auf Geräten mit API-Ebene 27. Bei einer Auflösung von 1920 x 1080 werden die Preview/VideoCapture-Bilder gestreckt. Es wurde eine Problemumgehung hinzugefügt, um die Auflösung 1920 × 1080 für die Vorschau oder VideoCapture nicht auszuwählen, um das Problem mit dem gestreckten Bild zu vermeiden. (I0e04e)
  • Behoben wurde ein Problem mit niedriger Framerate bei der Verwendung von VideoCapture und Vorschau-Use-Cases mit einem Seitenverhältnis von 16:9 auf einigen Huawei-Geräten. (If8c88, b/223643510)
  • Fehler beim Öffnen der Kamera behoben, wenn SurfaceProvider in der Vorschau nicht festgelegt ist. Im Rahmen der Fehlerbehebung wird die Vorschau ohne festgelegtes SurfaceProvider jetzt nicht mehr in der Kameraaufnahmesitzung konfiguriert. (I99681)

Version 1.2.0-beta02

21. September 2022

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

API-Änderungen

  • API-Ebenenanforderung für setOutputImageRotationEnabled hinzufügen (I26e3e, b/240993561)

Fehlerkorrekturen

  • Die Umgehungslösung zum horizontalen Umkehren der AF-Region der Frontkameras auf Samsung Android T wurde deaktiviert, da das Problem behoben wurde. (I05f69)
  • Das Problem mit der schwarzen Vorschau wurde behoben, das auf einigen Samsung-Geräten auftritt, wenn die BOKEH-Erweiterung aktiviert ist und der Nutzer die Kameras wechselt. (If6168)

Version 1.2.0-beta01

24. August 2022

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

Neue Funktionen

  • Neue Bibliothek camera-mlkit-vision Sie können CameraX ganz einfach in viele ML Kit-Funktionen einbinden, z. B. Barcode-Scannen, Gesichtserkennung und Texterkennung. Hier finden Sie den Beispielcode.
  • Neue experimentelle Zero-Shutter-Lag API. Die Aufnahmepipeline wird optimiert, um eine geringere Latenz bei gleichzeitig guter Bildqualität zu erzielen. Wenn der Aufnahmemodus auf „CAPTURE_MODE_ZERO_SHUTTER_LAG“ gesetzt ist, ist die Latenz zwischen dem Drücken der Auslösertaste und der Aufnahme 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.
  • ImageAnalysis.Analyzer und MLKitAnalyzer wurden zu offiziellen APIs.
  • API zum Festlegen von Standortmetadaten für das gespeicherte Video.
  • Benennen Sie ImageAnalysis.Analyzer#getTargetResolutionOverride() in ImageAnalysis.Analyzer#getDefaultTargetResolution() um.

Fehlerkorrekturen

  • Problem bei der Bilderfassung für Alps k61v1_basic_ref behoben Die aufgenommenen JPEG-Bilder von HAL haben falsche EXIF-Metadaten. Die EXIF-Metadaten enthalten das Tag „0xffd9“ oder „0xffda“ nicht, damit ExifInterface die Attribute richtig parsen kann. Die Bilder im YUV-Format aufnehmen und dann zu JPEG-Ausgabebildern komprimieren, um dieses Problem zu umgehen. (I45abb)

Version 1.2.0-alpha04

27. Juli 2022

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

API-Änderungen

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

Fehlerkorrekturen

  • Problem beim Aufnehmen von Bildern mit der Auftrennvorschau behoben (Ie70b6, b/235119898)
  • Ein Absturz in Recorder bei dem Versuch, eine Aufnahme zu erstellen, wenn die Audioquelle nicht verfügbar war, wurde behoben. (I9f652)

Version 1.2.0-alpha03

29. Juni 2022

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

API-Änderungen

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

Fehlerkorrekturen

  • Es wurde eine Standardzeitüberschreitung von 5.000 ms für den Autofokus hinzugefügt. Wenn die FocusMeteringAction nicht abgebrochen wird und der Autofokus innerhalb der Dauer nicht abgeschlossen ist, wird der Autofokus-Teil mit isFocusSuccessful falsch abgeschlossen. (Ibc2e3)
  • Problem beim Aufnehmen von Bildern mit der Auflösevorschau behoben (I1d3a2, b/235119898)
  • Die erweiterte Implementierung von Extendern wurde aktiviert und die Version der CameraX-Unterstützungserweiterungsoberfläche auf 1.2 aktualisiert (I92256).

Version 1.2.0-alpha02

1. Juni 2022

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

Neue Funktionen

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

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 CAPTURE_MODE_ZERO_SHUTTER_LAG-Modus soll die minimale Latenz für die sofortige Erfassung bieten. Sie wird auf der Grundlage eines Ringpuffers implementiert, der Zwischenerfassungsergebnisse für die spätere erneute Verarbeitung im Cache speichert, wenn der Nutzer die Schaltflächen zum Aufnehmen von Bildern drückt. Wenn {@link VideoCapture} gebunden ist oder der Blitzmodus nicht deaktiviert ist oder die OEM-Erweiterung aktiviert ist, wird dieser Modus automatisch deaktiviert. (I9ae74)
  • ImageAnalysis.getBackgroundExecutor()-Methode (Icc945) hinzufügen

Fehlerkorrekturen

  • Die ImageCapture-Methode „takePicture“ schaltet die Taschenlampe auf den gemeldeten Geräten aus. (Ib5eb5, b/228272227)
  • Ein Fehler wurde behoben, durch den AssertionError beim Abrufen des Attributs CONTROL_ZOOM_RATIO_RANGE nicht verarbeitet wurde.(/Ia248a, b/231701345)

Version 1.2.0-alpha01

18. Mai 2022

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

Neue Funktionen

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

Fehlerkorrekturen

  • Das Problem, dass QualitySelector bei aktivierter Fallback-Strategie kein UHD-Video aufzeichnen konnte, wurde behoben. Das Problem tritt auf, wenn VideoCapture mit ImageCapture und der Vorschau auf einer Kamera mit vollständiger Hardware oder einer höheren Hardwareebene verbunden wird. 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 wurde auf ImageCapture.takePicture() festgelegt. (I92366, b/230454568, b/229766155)
  • Fehler beim asynchronen Pausieren von androidx.camera.video.Recorder (Ia8ce8) behoben

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

Version 1.1.0

29. Juni 2022

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

Wichtige Änderungen seit Version 1.0.0

  • Die Bibliotheken „Landingpage-Ansicht“, „Erweiterung“ und „Videoaufzeichnung“ als erste RC-Version. 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.
  • Es wurden neue öffentliche APIs und Funktionen eingeführt, darunter:
  • Füge die offizielle Mediathek mit Kameravideos hinzu, um Anwendungsfälle für Videoaufnahmen zu unterstützen.
  • Konvertierung und Rotation von YUV in RGB (ImageAnalysis.Builder.setOutputImageRotationEnabled und setOutputImageFormat)
  • Unterstützen Sie den Multifenstermodus, indem Sie CameraX-Anwendungen erlauben, die Kamera fortzusetzen, wenn die Kamera von einer anderen App unterbrochen wird und der Fokus wiederhergestellt ist.
  • Durch die Behebung einiger Vorschauprobleme wird sichergestellt, dass CameraX auf faltbaren Geräten gut funktioniert.
  • Die CameraState API wurde hinzugefügt und wird über „CameraInfo“ bereitgestellt.
  • API ProcessCameraProvider.getAvailableCameraInfos() zum direkten Abrufen von Informationen zu den verfügbaren Kameras hinzugefügt
  • JPEG-Ausgabeformat für ImageCapture#OnImageCapturedCallback, 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 freigegeben, um Auflösungsinformationen für die Vorschau, ImageCapture und ImageAnalysis bereitzustellen.
  • Es wurde eine neue API ImageCapture.Builder#setJpegQuality hinzugefügt, mit der sich die Komprimierungsqualität der JPEG-Ausgabebilder beim Aufnehmen von Fotos ändern lässt.
  • Der öffentlichen API wurde CameraSelector#filter hinzugefügt, um eine Liste von CameraInfos anhand einer CameraSelector zu filtern.
  • Camera2CameraControl.clearCaptureRequestOptions zum Löschen der vorhandenen Optionen für die Erfassungsanfrage hinzugefügt
  • Es wurde eine experimentelle API für die Verwendung von CameraController mit externen Bildverarbeitungsbibliotheken hinzugefügt, z. B.MLKit.
  • Die experimentelle API CameraInfo#getCameraSelector() wurde hinzugefügt, die einen für die Kamera eindeutigen CameraSelector zurückgibt.
  • Mehrere experimentelle APIs wurden zu offiziellen öffentlichen APIs aufgewertet.
  • Die Annotation @Experimental durch @RequiresOptIn wurde in experimentelle APIs ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle der veralteten androidx.annotation.experimental.UseExperimental.
  • Die folgenden experimentellen APIs wurden zu offiziellen APIs hochgestuft: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(),
  • @ExperimentalCameraFilter APIs
  • experimentelle APIs zur Belichtungskompensation.
  • Die experimentelle UseCaseGroup API für „camera-core“, „camera-lifecycle“ und „camera-video“ wurde eingeführt. ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection und ViewPort.Builder#setScaleType wurden hinzugefügt, um den Darstellungsbereich anzupassen.
  • Die ExperimentalUseCaseGroupLifecycle wurde zu offiziellen öffentlichen APIs aufgewertet.
  • Änderungen an den vorhandenen APIs
  • Zum MediaStoreOutputOptions.getCollectionUri Renamed MediaStoreOutputOptions.getCollection.
  • ActiveRecording wurde in „Aufzeichnung“ umbenannt, um die Ausführlichkeit zu verringern.
  • Die Creator API QualitySelector wurde in eine listbasierte API geändert

Fehlerkorrekturen

  • Das Problem mit YuvToJpegProcessor EOFException wurde behoben, wenn der Erweiterungsmodus aktiviert und der Modus ImageCapture#CAPTURE_MODE_MAX_QUALITY festgelegt ist.
  • Die Festlegung der Codec-Konfiguration ist fehlgeschlagen, da die Videoaufzeichnung beendet wird
  • Behoben: Bei der Aufnahme in FHD wurde das Seitenverhältnis der Vorschau und des Videos gedehnt.
  • Problem behoben, bei dem Audio und Video nach dem Pausieren und Fortsetzen auf einigen Geräten nicht synchron waren
  • Das Problem wurde behoben, bei dem der Blitz bei wenig Licht beim Fokussieren durch Tippen (startFocusAndMetering) ausgelöst wurde, wenn der Blitzmodus auf „auto“ oder „always_on“ gesetzt war.

Version 1.1.0-rc02

1. Juni 2022

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

Fehlerkorrekturen

  • NullPointerException wurde auf ImageCapture.takePicture() festgelegt. (I92366, b/230454568, b/229766155)
  • Es wurde ein Fehler behoben, durch den AssertionError beim Abrufen der Eigenschaft CONTROL_ZOOM_RATIO_RANGE nicht verarbeitet wurde. (Ia248a, b/231701345)

Version 1.1.0-rc01

11. Mai 2022

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

Neue Funktionen

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

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem der Videocodec nicht freigegeben wurde, wenn VideoCapture<Recorder> nicht mehr verknüpft war. Dies führte dazu, dass nachfolgende Verwendungen von VideoCapture<Recorder> bei der Aufzeichnung mit MediaCodec.CodecException fehlschlugen, insbesondere auf Geräten mit API 21–22. (Ie7f68)
  • Problem beheben, dass aufgenommene Bilder von CameraExtensionsActivity in ImageCaptureTest nicht gelöscht werden

Version 1.1.0-beta03

6. April 2022

androidx.camera:camera-*:1.1.0-beta03 wurde 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

  • Das Problem, dass die Vorschau in PreviewView seitlich verschoben wurde, wenn die Aktivität nach dem Drehen von Geräten im Mehrfenstermodus nicht neu gestartet wurde, wurde behoben. (I1ea36, b/223488673)
  • Ein Problem mit dem Mehrfenstermodus wurde behoben: Wenn der Fokus auf die App zurückwechselt, wird die Kamera nicht fortgesetzt, wenn (1) eine andere App mit hoher Priorität eine andere Kamera öffnet (2) ein Samsung-Gerät mit Android 12 verwendet wird. (I7e9f2)
  • Es gibt eine Problemumgehung für Geräte, die bei der Prüfung der Verfügbarkeit des Blitzes abstürzen. Auf diesen Geräten ist die Taschenlampe nicht verfügbar. (If26a3, b/216667482)
  • Behebung des AbstractMethodError-Problems, das auftrat, wenn Apps Erweiterungen verwenden und ProGuard aktivieren. (I7cbaf, b/222726805)
  • Bokeh-Erweiterungsmodus auf dem Motorola razr 5G erzwingen, was zu einem schwarzen Vorschaubildschirm führt (I35d49)
  • Behoben: Audio und Video waren auf einigen Samsung-Geräten mit einer älteren API als 29 nach dem Pausieren und Fortsetzen nicht synchron. (I64622, b/202798609, b/202798572)
  • Problem behoben, bei dem Audio/Video nach dem Pausieren und Fortsetzen auf dem Sony G3125 nicht synchron waren (I2a1a5, b/202799148)
  • Ein Absturz wurde behoben, der beim Aufzeichnen durch InvalidConfigException verursacht wurde. Diese Lösung verhindert jedoch nur das Absturzen der App, behebt aber nicht die Ursache des InvalidConfigException. Wenn die Recorder immer noch nicht konfiguriert werden kann, erhalten Anwendungen beim Starten der Aufzeichnung einen Fehler-Callback. (I89c29, b/213617227)

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

API-Änderungen

  • Es ist jetzt möglich, die physische Kamera-ID über Camera2Interop anzugeben. (I5aed8)

Fehlerkorrekturen

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

Version 1.1.0-beta01

26. Januar 2022

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

Neue Funktionen

  • Ab Version 1.1.0-beta01 haben alle CameraX-Bibliotheken dieselbe Versionsnummer. So können Entwickler Versionen viel einfacher im Blick behalten und die Komplexität einer großen Versionskompatibilitätsmatrix reduzieren.

API-Änderungen

  • Camera2CameraControl.clearCaptureRequestOptions zum Löschen der Optionen für die Erfassungsanfrage hinzugefügt (Ifa07d)

Fehlerkorrekturen

  • Der Absturz bei der Videoaufzeichnung auf einigen Geräten, die älter als Android O(API 26) waren, wurde behoben. (I88fdf, b/212328261)
  • Falsches Problem mit AF-Bereich behoben, wenn bei Samsung-Geräten cameraControl#startFocusAndMetering() auf der Frontobjektiv-Kamera verwendet wurde (Ifbf59, b/210548792)
  • Die Taschenlampe kann bei Pixel 3a und Pixel 3a XL als Blitz verwendet werden, um die Geschwindigkeit und die Bildqualität bei Dunkelheit zu verbessern (Ib12b6, b/211474332)
  • Es ist jetzt möglich, dass die Kamera in aktivierten Apps fortgesetzt wird, wenn die Kamera im Multifenstermodus durch eine andere App mit höherer Priorität unterbrochen wird und der Fokus wieder auf die App wechselt. Aufgrund von Framework-Problemen kann es zu einer Verzögerung von 1 bis 10 Sekunden oder mehr zwischen dem Fokuswechsel und dem erneuten Öffnen der Kamera kommen. (I4d092)

Version 1.1.0-alpha12

15. Dezember 2021

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

API-Änderungen

  • Unnötige @RequiresApi(21)-Anmerkungen aus den inneren Klassen/Schnittstellen entfernt. (I8e286, b/204917951)
  • Die Qualitäts- und Fallback-Strategiekonstanten von QualitySelector wurden so geändert, dass sie durch Klassenobjekte dargestellt werden. Beispielsweise wird QualitySelector.QUALITY_HD in Quality.HD geändert und QualitySelector.FALLBACK_STRATEGY_LOWER in die von FallbackStrategy.lowerQualityOrHigherThan(Quality) zurückgegebene Instanz geändert. Die zum Erstellen von QualitySelector verwendete API wurde in eine listbasierte API geändert. Die neue API QualitySelector.fromOrderedList(List<Quality>) bezieht sich auf die Reihenfolge der Liste mit der Eingabequalität anstelle der Reihenfolge, die mit QualitySelector.Procedure erstellt wurde. Der Kurs QualitySelector.Procedure wurde entfernt. (I43343)
  • PendingRecording.withEventListener() wurde entfernt und der Event-Listener muss jetzt an PendingRecording.start() übergeben werden. Diese Anforderung für Ereignis-Listener soll die Verarbeitung asynchroner Fehler fördern, die im Ereignis VideoRecordEvent.Finalize gemeldet werden. (I1e71d)
  • ActiveRecording wurde in Recording umbenannt, um die Ausdrucksweise zu vereinfachen. (I77ceb)

Fehlerkorrekturen

  • Das Problem wurde behoben, dass bei Pixel 3a und Pixel 3a XL bei schlechten Lichtverhältnissen aufgenommene Fotos im Modus FLASH_AUTO unterbelichtet sind (I13f19, b/205373142)
  • Verwenden Sie immer die aktuelle Bildschirmgröße, um die Vorschau zu bestimmen Resolution. (I4a694)
  • Kameras ohne REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE wurden herausgefiltert. Kameras mit REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE bieten die Mindestfunktionen, die jedes Kameragerät unterstützt. Eine Kamera ohne REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE unterstützt möglicherweise spezielle Funktionen, aber keine Standardfarbausgabe. CameraX unterstützt für diese Kameras nicht die Anwendungsfälle Preview, ImageCapture, ImageAnalysis oder VideoCapture. Daher sollten diese Kameras herausgefiltert werden, um eine falsche Verwendung zu verhindern. (Ib8cda)
  • Bei CameraSelector#filter wird keine IllegalArgumentException mehr geworfen, wenn die Ergebnismenge leer ist. (I27804)
  • Es werden jetzt intelligentere Heuristiken verwendet, um Encoder-Einstellungen basierend auf vom OEM angegebenen Profilen auszuwählen. (Iaeef0)
  • Nach dem Starten der UHD-Videoaufzeichnung auf Google Pixel 1 sind in der fixierten Vorschau Interlaced-Farblinien zu sehen. (I833c6, b/205340278)

Version 1.1.0-alpha11

17. November 2021

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

API-Änderungen

  • Der öffentlichen API wurde „CameraSelector#filter“ hinzugefügt, um eine Liste von Kamerainformationen anhand einer Kameraauswahl zu filtern. (I105d0)
  • Fügen Sie die API „setOutputImageRotationEnabled“ für die ImageAnalysis-Konfiguration hinzu. Der Nutzer kann die Rotation für den YUV/RGB-Bildzwischenspeicher aktivieren. Der Drehgrad ist eine relative Drehung, die anhand der Sensordrehung und der Zieldrehung berechnet wird, damit das Bild im Vordergrund bleibt.

  • API „setOutputImageRotationEnabled“ für die Konfiguration „ImageAnalysis“ hinzufügen Der Nutzer kann die Rotation für den YUV/RGB-Bildzwischenspeicher aktivieren. Der Rotationsgrad ist eine relative Drehung, die auf der Grundlage der Sensorrotation und der Zieldrehung berechnet wird, damit das Bild nach oben zeigt.

    Füge die getSensorToBufferTransformMatrix API in ImageInfo hinzu. Die zurückgegebene Matrix ist eine Zuordnung von Sensorkoordinaten zu Pufferkoordinaten, also von CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE zu (0, 0, image.getWidth, image.getHeight). Mit der Matrix können die Koordinaten eines {UseCase} einem anderen {UseCase} zugeordnet werden. Beispiel: Koordinaten des mit ImageAnalysis erkannten Gesichts der Vorschau zuordnen. (I9ff1e)

  • Die neue API „ImageCapture.Builder#setJpegQuality“ wurde hinzugefügt, um die Komprimierungsqualität der Ausgabe-JPEG-Bilder bei der Aufnahme von Bildern zu ändern. (I8dcf4)

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

Fehlerkorrekturen

  • Das Problem wurde behoben, durch das der Blitz bei schlechten Lichtverhältnissen beim Fokussieren durch Tippen (startFocusAndMetering) ausgelöst wurde, wenn der Blitzmodus auf „auto“ oder „always_on“ gesetzt war. (Id4c11)
  • HDR+ wurde auf 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 wird veröffentlicht. Version 1.1.0-alpha10 enthält diese Commits.

Neue Funktionen

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

API-Änderungen

  • Allen CameraX-Klassen wurde die Annotation @RequiresApi(21) hinzugefügt und minSdkVersion wurde aus der Datei „AndroidManifest.xml“ entfernt. Dadurch kann Kamerakern einfach in Anwendungen eingebunden werden, deren minSdkVersion kleiner als 21 ist, die aber bedingt Codepfade verwenden möchten, die auf API 21 und höher angewiesen sind. Bei Anwendungen mit einer minSdkVersion von 21 oder höher sind keine Maßnahmen erforderlich. (Ie7f2e, b/200599470)

Fehlerkorrekturen

  • Sie können eine InitializationException auslösen, damit die App den AssertionError beim Erstellen von CameraCharacteristics ordnungsgemäß verarbeiten kann. (Ibec79)

Version 1.1.0-alpha09

29. September 2021

androidx.camera:camera-camera2:1.1.0-alpha09, androidx.camera:camera-core:1.1.0-alpha09 und androidx.camera:camera-lifecycle:1.1.0-alpha09 werden losgelassen. Version 1.1.0-alpha09 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Das Problem, dass im Modus MAXIMIZE_QUALITY aufgenommene Fotos unscharf waren, wurde behoben. (I173a9, b/193823892)
  • Behoben wurde ein Problem bei Samsung Galaxy J5, bei dem die Kamera nach der Aufnahme von Bildern mit aktiviertem/automatischem Blitz in dunkler Umgebung hängen blieb (I3aab9).
  • Wenn für die Bildaufnahme ein Zuschneiden erforderlich ist, wird das zugeschnittene Ausgabebild gemäß dem festgelegten Aufnahmemodus mit der angegebenen JPEG-Qualitätsstufe 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 wurden veröffentlicht. Version 1.1.0-alpha08 enthält diese Commits.

Neue Funktionen

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

API-Änderungen

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

Fehlerkorrekturen

  • Das feste Vorschaudisplay ist auf dem Huawei P20 Lite zu hell. Dieses Problem tritt nur auf, wenn bestimmte spezielle Vorschauauflösungen zusammen mit einem hohen Zoomwert verwendet werden. (Idefce, b/192129158)
  • Es wurde ein Problem behoben, bei dem der Blitz auf einigen Geräten nicht funktionierte, wenn der Blitzmodus kurz auf FLASH_MODE_ON und anschließend das Aufnehmen von Bildern auf FLASH_MODE_ON eingestellt wurde. (Ieb49b)
  • Das Problem, dass die Vorschau beim Aufnehmen von Bildern für eine Weile angehalten wurde, wenn VideoCapture, ImageCapture und Preview gebunden waren, wurde behoben. (I56197, b/193864120)
  • Ermöglicht es ImageAnalysis, eine Auflösung größer als 1080p auszuwählen. Ein Gerät mit der Stufe „EINGESCHONERT“ kann eine Auflösung in DATENSATZ-Größe für „ImageAnalysis“ unterstützen, wenn es mit „Preview“ und „ImageCapture“ verknüpft ist. Der Nachteil ist, dass die ausgewählte Auflösung für die Bildaufnahme auch eine Auflösung in RECORD-Größe sein muss. Um eine RECORD-Größenauflösung für ImageAnalysis auswählen zu können, muss sowohl für ImageCapture als auch für ImageAnalysis eine Zielauflösung für RECORD festgelegt werden. Dies zeigt, dass die Anwendung den Trade-off klar versteht und für die Bildanalyse eine höhere Auflösung als für die Bildaufnahme mit der MAXIMALEN Auflösung bevorzugt. Definitionen für die Größen „RECORD“ und „MAXIMUM“ sowie weitere Informationen finden Sie unter https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Die RECORD-Größe bezieht sich auf die maximal von der Kamera unterstützte Aufnahmeauflösung, die durch CamcorderProfile festgelegt 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)
  • Gib in ImageCapture den URI des gespeicherten Bilds zurück, wenn der Speicherort „Datei“ ist. (Ib5b49, b/149241379)
  • Ein Problem wurde behoben, bei dem auf vielen Geräten aufgenommene Bilder mit Blitz 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 wurden veröffentlicht. Version 1.1.0-alpha07 enthält diese Commits.

Fehlerkorrekturen

  • Behebung eines Problems bei Samsung Galaxy Note 5, bei dem die Kamera nach der Aufnahme von Fotos mit aktiviertem/automatischem Blitz in dunkler Umgebung hängen bleibt (If6871)
  • Das EOFException-Problem YuvToJpegProcessor bei aktiviertem Erweiterungsmodus und ImageCapture#CAPTURE_MODE_MAX_QUALITY-Modus wurde behoben. (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 wurden veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.

API-Änderungen

  • Einführung der experimentellen APIs zur Belichtungskorrektur für camera-core (I08ee8)
  • Die API „isFocusMeteringSupported“ wurde in „CameraInfo“ hinzugefügt. Damit können Apps prüfen, ob die angegebene „FocusMeteringAction“ von der aktuellen Kamera unterstützt wird. (Ib45ae, b/188606490)
  • Die getResolutionInfo API wurde freigegeben, um Auflösungsinformationen für die Vorschau, die Bildaufnahme und die Bildanalyse bereitzustellen. (I2b613, b/188600718)
  • Die folgenden experimentellen APIs wurden zu offiziellen APIs: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
  • Die CameraProvider-Schnittstelle wurde freigegeben, um Zugriff auf eine Reihe von Kameras zu ermöglichen. (I1a7b1)
  • Bewerben Sie die experimentelle UseCaseGroup API für Kamerakern, Kameralebenszyklus und Kameravideo. ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection und ViewPort.Builder#setScaleType wurden hinzugefügt, um den Darstellungsbereich anzupassen. (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 werden losgelassen. Version 1.1.0-alpha05 enthält diese Commits.

API-Änderungen

  • Klasse Camera2CameraFilter wurde entfernt. Kameraauswahl über CameraFilter vorschlagen und bei Bedarf CameraCharacteristics oder andere Camera2-bezogene Informationen über Camera2CameraInfo abrufen. (Ib887c)
  • ExperimentalCameraFilter APIs sind jetzt nicht mehr in der experimentellen Phase und werden zu offiziellen APIs. Sie können ohne annotierte Einwilligung verwendet werden. (I4bc94)
  • Kamerastatus-API wurde hinzugefügt, die über CameraInfo#getCameraState() verfügbar gemacht wird. (Ia86b4)
  • Die experimentelle API CameraInfo#getCameraSelector() wurde hinzugefügt, die eine für die Kamera eindeutige CameraSelector zurückgibt (I77f9f).

Fehlerkorrekturen

  • Das Problem wurde behoben, dass die von „setZoomRatio“ und „setLinearZoom“ zurückgegebene ListenableFuture auf einigen Android 11-Geräten nicht abgeschlossen werden konnte (I716d7)
  • Kamerawechsel beschleunigen und Fehlerhäufigkeit des Kamerageräts reduzieren (I34c99)
  • „ExperimentalUseCaseGroupLifecycle“ 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 werden losgelassen. Version 1.1.0-alpha04 enthält diese Commits.

Fehlerkorrekturen

  • Ein Speicherleck wurde behoben, das durch gleichzeitigen Zugriff mehrerer Threads auf dieselbe Sammlung verursacht wurde. Aufgrund des Speicherlecks wird die Aktivität oder das Fragment möglicherweise von einer Vorschauinstanz beibehalten. (I7b4b8)
  • Die Anmerkung @Experimental wurde durch @RequiresOptIn für experimentelle APIs ersetzt. Verwenden Sie für den Aufruf experimenteller APIs androidx.annotation.OptIn anstelle der eingestellten androidx.annotation.experimental.UseExperimental. (Iff226)
  • Bei der Fixierung der Bildaufnahme mit aktiviertem/automatischem Blitz werden mit dem Samsung Galaxy S7 ausgebleichte Bilder aufgenommen. (I30001)
  • Die CameraState API wurde hinzugefügt und wird über CameraInfo freigegeben. (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 werden losgelassen. Version 1.1.0-alpha03 enthält diese Commits.

Fehlerkorrekturen

  • JPEG-Ausgabeformat für ImageCapture#OnImageCapturedCallback, wenn der Erweiterungsmodus aktiviert ist. (I0d7b1)
  • Der Initialisierungsfehler bei UMIDIGI BISON-Geräten (I57d9e, b/180818665) wurde behoben.
  • Die gestreckte Vorschau auf dem Samsung A3 wurde in PreviewView behoben. (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 werden losgelassen. 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. Das sind entweder alle Kameras des Geräts oder die mithilfe des in CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector) angegebenen CameraSelector ausgewählten Kameras. (Ieac08)

Fehlerkorrekturen

  • CameraX versucht jetzt, beim ersten Versuch eine Kamera zu öffnen. Dies kann dazu führen, dass CameraX die Kamera von anderen Kameraclients stiehlt, wenn die App eine höhere Priorität hat. (Iab069, b/175820568)
  • Der Robolectric-Testfehler wurde behoben, der auftritt, wenn „setAvailableCamerasLimiter“ in CameraXConfig verwendet wird. (Ice307)
  • Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt abzustürzen, kann es also sein, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene/träge Vorschau. (IC12da, b/175851631)
  • Fehlerbehandlung für ExtensionsErrorListener wurde korrigiert, um Fehler zu melden, wenn nur „Preview“ oder „ImageCapture“ gebunden ist. (I5ae39)
  • Die Leistung der Bildaufnahme wurde verbessert, indem die Validierung des Speicherorts des Bildes vor dem Aufnehmen entfernt wurde. Wenn das Speicherziel nach dieser Änderung ungültig ist, dauert es länger, bis die Fehlerantwort zurückgegeben wird, da versucht wird, das Bild nach der Aufnahme des Fotos zu speichern. (I1fd4e, b/177061560)
  • Ein Fehler bei der ImageCapture-Leistung mit OutputFileOptions vom Typ "File" wurde behoben. (I5164a, b/177061560)
  • Die Dokumentation wurde aktualisiert und enthält nun die Empfehlung, ProcessCameraProvider.configureInstance(...) nicht aus Bibliothekscode zu verwenden. (Ib8a9f)

Version 1.1.0-alpha01

27. Januar 2021

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

Fehlerkorrekturen

  • Es wurde eine Problemumgehung für gelegentlich beschädigte Bilddaten in JPEGs bei der Rückkamera des SM-G930T hinzugefügt. (I52001, b/159831206)
  • IllegalArgumentException Problem behoben, das auftrat, wenn alle unterstützten Vorschaugrößen kleiner als 640 × 480 waren und die Displaygröße größer als 640 × 480 war. (I2a63c, b/150506192)
  • Ressourcen in Bibliotheken, für die keine explizit deklarierten öffentlichen Ressourcen angegeben sind (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 werden losgelassen. Version 1.0.2 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem, dass aufgenommene Fotos im Modus MAXIMIZE_QUALITY unscharf waren, wurde behoben. (I173a9, b/193823892)
  • Ein mit Blitz aufgenommenes Bild auf vielen Geräten war dunkel. Dieses Problem wurde behoben. (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 werden losgelassen. Version 1.0.1 enthält diese Commits.

Fehlerkorrekturen

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

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

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

Version 1.0.0

5. Mai 2021

androidx.camera:camera-camera2:1.0.0, androidx.camera:camera-core:1.0.0 und androidx.camera:camera-lifecycle:1.0.0 werden losgelassen. Version 1.0.0 enthält diese Commits.

Hauptfunktionen von Version 1.0.0

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 werden losgelassen. Version 1.0.0-rc05 enthält diese Commits.

Fehlerkorrekturen

  • Bei der Fixierung der Bildaufnahme mit aktiviertem/automatischem Blitz werden mit dem Samsung Galaxy S7 ausgebleichte Bilder aufgenommen. (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 werden losgelassen. Version 1.0.0-rc04 enthält diese Commits.

Fehlerkorrekturen

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 werden losgelassen. Version 1.0.0-rc03 enthält diese Commits.

Fehlerkorrekturen

  • Formatfehler im Dokument „ProcessCameraProvider#getInstance“ beheben
  • Der Robolectric-Testfehler wurde behoben, der bei Verwendung von „setAvailableCamerasLimiter“ in CameraXConfig auftrat.
  • Die Leistung der Bildaufnahme wurde verbessert, indem die Validierung des Speicherorts des Bildes vor dem Aufnehmen entfernt wurde. Wenn das Speicherziel nach dieser Änderung ungültig ist, dauert es länger, bis die Fehlerantwort zurückgegeben wird, da versucht wird, das Bild nach der Aufnahme des Fotos zu speichern.
  • Mit dieser Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt eines Absturzes kann es also sein, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene/träge Vorschau.
  • Es wurde eine Problemumgehung für gelegentlich beschädigte Bilddaten in JPEGs bei der Rückkamera des SM-G930T hinzugefügt. (I52001, b/159831206)
  • Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt abzustürzen, kann es also sein, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene/träge Vorschau. (Ic12da, b/175851631)
  • Der Robolectric-Testfehler wurde behoben, der auftritt, wenn „setAvailableCamerasLimiter“ in CameraXConfig verwendet wird. (Ice307)
  • Die Leistung der Bildaufnahme wurde verbessert, indem die Validierung des Speicherorts des Bildes vor dem Aufnehmen entfernt wurde. Wenn das Speicherziel nach dieser Änderung ungültig ist, dauert es länger, bis die Fehlerantwort zurückgegeben wird, da versucht wird, das Bild nach der Aufnahme des Fotos zu speichern. (I1fd4e, b/177061560)
  • Behebung des Leistungsabfalls bei ImageCapture mit OutputFileOptions vom Typ "File". (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 wurden veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem mit der IllegalArgumentException wurde behoben, das auftrat, wenn alle unterstützten Vorschaugrößen kleiner als 640 × 480 waren und die Displaygröße größer als 640 × 480 war. (b/150506192)
  • Anzahl der Versuche zum Wiederöffnen der Kamera begrenzen Beim Versuch, bestimmte Probleme beim Öffnen der Kamera zu beheben, versucht CameraX nicht mehr, die Kamera auf unbestimmte Zeit wieder zu öffnen. Stattdessen wird nach 10 Sekunden versucht, die Kamera wieder zu öffnen.I435d2

  • IllegalArgumentException Problem behoben, das auftrat, wenn alle unterstützten Vorschaugrößen kleiner als 640 × 480 waren und die Displaygröß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 werden losgelassen. Version 1.0.0-rc01 enthält diese Commits.

API-Änderungen

  • CameraFilter und Camera2Filter wurden so geändert, dass CameraInfo erfasst wird. (I6883d)
  • Die experimentelle Klasse „Camera2CameraControl“ wurde hinzugefügt, um die dynamische Interkonnektivität mit Camera2 APIs zu ermöglichen. (I45cf3)
  • Camera2CameraInfo#fromCameraInfo in #from umbenannt (Ia2bd6)
  • Eine experimentelle setAvailableCamerasLimiter API wurde zu CameraXConfig hinzugefügt. Damit können Apps die Initialisierungslatenz optimieren, indem das Initialisieren nicht verwendeter Kameras vermieden wird. (I6cf88)
  • Die experimentelle Methode CameraXConfig.Builder#setMinimumLoggingLevel() wurde hinzugefügt, um eine Mindestprotokollierungsebene für CameraX-Protokolle festzulegen. Wenn sie nicht festgelegt ist, wird standardmäßig Log#DEBUG verwendet. (Ic3245)

Fehlerkorrekturen

  • Es wurde eine Problemumgehung für sporadisch beschädigte Bilddaten in JPEGs bei der Rückkamera des SM-G930V hinzugefügt. (I5aca5, b/159831206)
  • Auf Samsung SM-A716-Geräten wurden beim Aufnehmen von Bildern keine Ergebnisse angezeigt, wenn der Blitz immer/an ist und die Umgebung dunkel war. Dieses Problem wurde behoben. (If98b2, b/172036589)
  • Das Problem wurde behoben, dass die Vorschau nicht durch Aufrufen von Preview.setSurfaceProvider(null) beendet werden konnte. (I3ac18)
  • Ein Problem mit der Ausrichtung bei der Aufnahme von 4:3-Bildern auf einigen Geräten wurde behoben. (I0e3fb, b/171492111)

Camera2, Core und Lebenszyklusversion 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 werden losgelassen. 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 von Fotos mit automatischem AE-Modus auf Samsung A3-Geräten zu beheben. (Ia5fe3, b/157535165)
  • Ein Problem, bei dem die Vorschau auf Nexus 4-Geräten mit Android L (API-Ebenen 21 und 22) gedehnt wurde, wurde behoben. (I4d407, b/158749159)
  • OnImageCapturedCallback#onCaptureSuccess Die Basisklasse wird nicht mehr geschlossen. So soll unerwartetes Verhalten für Entwickler verhindert werden. Entwickler sollten nicht auf super.onCaptureSuccess zurückgreifen, um das Bild zu schließen. (Ifbf9c)
  • Die androidx-Variante der Anmerkung „Experimental“ wurde eingestellt, um für Gleichbehandlung mit Kotlin zu sorgen. Sie wurde durch die Anmerkung „RequiresOptIn“ ersetzt und der Java-Linter wurde aktualisiert, um sowohl die neue Kotlin-Anmerkung als auch die neue androidx-Variante zu unterstützen. (I52495, b/151331381)

Kamera-Kamera2 Version 1.0.0-beta11

14. Oktober 2020

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

Neue Funktionen

  • Unterstützt die Android 11-CONTROL_ZOOM_RATIO API für 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)
  • Zum Erstellen von Anwendungsfällen muss CameraX nicht initialisiert werden. Alle implementierungsspezifischen Konfigurationen werden für den UseCase festgelegt, sobald er mit einer Kamerainstanz verknüpft ist. Für die öffentliche API ist das ProcessCameraProvider.bindToLifecycle(). (Ia5411)
  • <UseCase>.getTargetRotation() gibt Surface.ROTATION_0 zurück, wenn es aufgerufen wird, bevor es an eine Kamerainstanz angehängt wird, es sei denn, für den Builder oder UseCase wurde eine targetRotation festgelegt. (I80fcd)

Kamerakernversion 1.0.0-beta11

14. Oktober 2020

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

Neue Funktionen – Unterstützung der Android 11-CONTROL_ZOOM_RATIO API für 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 Anwendungsfällen ist keine Initialisierung von CameraX erforderlich. Alle implementierungsspezifischen Konfigurationen werden für UseCase festgelegt, sobald es einer Kamerainstanz hinzugefügt wurde. Für die öffentliche API ist dies ProcessCameraProvider.bindToLifecycle(). (Ia5411)
  • <UseCase>.getTargetRotation() gibt Surface.ROTATION_0 zurück, wenn es aufgerufen wird, bevor es an eine Kamerainstanz angehängt wird, es sei denn, für den Builder oder UseCase wurde eine targetRotation festgelegt. (I80fcd)

Kamerakernversion 1.0.0-beta10

23. September 2020

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

Fehlerkorrekturen

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

Kamera-Camera2 Version 1.0.0-beta10

23. September 2020

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

Fehlerkorrekturen

Camera-Camera2 Version 1.0.0-beta09

16. September 2020

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

API-Änderungen

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

Fehlerkorrekturen

  • Problem mit dem Seitenverhältnis des Targetings auf Tablets behoben Wenn das Zielseitenverhältnis auf AspectRatio.RATIO_16_9 festgelegt ist, sollte eine Größe von 16:9 ausgewählt werden. (Ib7fcf, b/151969438)
  • Legen Sie eine InitializationException fest, damit die App den AssertionError beim Erstellen von CameraCharacteristics ordnungsgemäß verarbeiten kann. (I89c8c, b/160524721)
  • Es wurden experimentelle Schnittstellen für „ExposureCompensation“ (If96c7) hinzugefügt.

Camera-Core-Version 1.0.0-beta09

16. September 2020

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

API-Änderungen

  • Der Fehler wurde behoben, bei dem der Darstellungsbereich in „UseCaseGroup“ als nicht null gekennzeichnet war. Entwickler sollten in der Lage sein, einen Darstellungsbereich zu erstellen, ohne einen festzulegen. (Ie3d2e)
  • Experimentelle Oberflächen für ExposureCompensation hinzugefügt (If96c7)
  • Beliebige Ausrichtung des Ziels für die Vorschau zulassen. Die Transformationsinformationen werden berechnet und über einen neuen TranformationInfoListener-Callback in Echtzeit an den Nutzer zurückgegeben. (I21470)

Fehlerkorrekturen

  • Das Problem, dass der Blitz bei einigen Geräten nicht ausgeschaltet werden konnte, wurde behoben. Dieses Problem trat auf, wenn der Blitzmodus für ein Foto auf FLASH_MODE_ON eingestellt und beim Auslösen des Blitzes in FLASH_MODE_OFF geändert wurde. Das Problem tritt auf, als wäre der Taschenlampenmodus aktiviert. (Ib4451, b/162568128)
  • PreviewView wird gezwungen, TextureView zu verwenden, wenn der Erweiterungseffekt aktiviert ist und die Implementierung der Anbieterbibliothek einen speziellen Vorgang auf der Ausgabefläche ausführen muss. (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 Zuschneideobjekt von ImageCapture auf Geräten, auf denen der Bildzwischenspeicher in HAL gedreht wird, möglicherweise falsch. Dieses Problem wird in der nächsten Version behoben.

Kamera-Kamera2 Version 1.0.0-beta08

19. August 2020

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

Fehlerkorrekturen

  • bindToLifecycle wurde für eine schnelle Ausführung im Hauptthread optimiert. (I1d57e)
  • DisplayOrientedMeteringPointFactory nimmt eine Instanz von CameraInfo anstelle einer CameraSelector an, sodass eine direkte Zuordnung zu der Kamera erfolgt, für die die Factory Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, nehmen auch eine Instanz von CameraInfo anstelle von CameraSelector an. (I400c1)
  • Behoben wurde ein Problem bei der Gruppierung der Seitenverhältnisgrößen für die automatische Auflösung, bei dem die Größe „16:9 mod16“ (864 × 480) ausgewählt wurde, wenn die Zielauflösung 2016 × 1080 ist und eine andere Größe von 1920 × 1080 16:9 unterstützt wird. (I53167, b/159363774)
  • Problem mit CameraControl behoben, bei dem die Funktion aufgrund einer Race-Bedingung nicht funktionierte (I2279f, b/152333890, b/160714166)

Kamerakernversion 1.0.0-beta08

19. August 2020

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

API-Änderungen

  • DisplayOrientedMeteringPointFactory nimmt eine CameraInfo-Instanz anstelle einer CameraSelector an. Es gibt also eine direkte Zuordnung dazu, für welche Kamera die Fabrik Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, nehmen auch eine CameraInfo-Instanz anstelle von CameraSelector an. (I400c1)

Fehlerkorrekturen

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

Camera-Camera2 Version 1.0.0-beta07

22. Juli 2020

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

Fehlerkorrekturen

  • Das Problem, dass die Vorschau auf Geräten mit Android 5.0 gestreckt wurde, wurde behoben. (I0c03a)
  • Einige JPEG-kompatible Größen wurden ausgeschlossen, die auf einigen Geräten ein WYSIWYG-Problem verursachen. (Ib5128)

Kamerakernversion 1.0.0-beta07

22. Juli 2020

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

API-Änderungen

  • Fügen Sie den Fit-Stil von FIT_CENTER, FIT_START und FIT_END zu FIT hinzu. FIT bedeutet, dass das zurückgegebene Zuschneiden-Rechteck das maximal mögliche Sensorrechteck ist. (Ia73c3)
  • Das Zuschneide-Rechteck der Vorschau wird vom Darstellungsbereich konfiguriert. Nur der Bereich, der vom Zuschneide-Rechteck abgedeckt ist, sollte für Endnutzer sichtbar sein. (I142a4)

Fehlerkorrekturen

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

Kamera-Kamera2 Version 1.0.0-beta06

24. Juni 2020

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

API-Änderungen

  • Es wurden experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und Kameraeigenschaften hinzugefügt. (I28f61)

Fehlerkorrekturen

  • Das Problem, dass auf dem Samsung Galaxy S7 mit „startFocusAndMetering“ kein Fokus gesetzt werden konnte, wurde behoben. (If3be7, b/159039233)
  • Die Kamera kann nicht geschlossen werden, nachdem die App beendet wurde. (I7a7b3)
  • Behebung des Problems, dass bei wiederholtem Wechseln der Kamera die Vorschau bei Verwendung der SurfaceView-Implementierung von PreviewView unterbrochen wird (I920ce)
  • CameraControl#startFocusAndMetering schlägt fehl, wenn keiner der angegebenen Messpunkte gültige Messrechtecke generieren kann. (Id53ce)

Kamerakernversion 1.0.0-beta06

24. Juni 2020

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

API-Änderungen

  • Es wurden experimentelle Oberflächen 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 Anwendung implementiert werden muss. (Ia1a8d)
  • CameraControl#startFocusAndMetering schlägt fehl, wenn keiner der angegebenen Messpunkte gültige Messrechtecke generieren kann. (Id53ce)

Camera-Camera2 Version 1.0.0-beta05

10. Juni 2020

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

Fehlerkorrekturen

  • Behebung des Absturzes beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im Modus „Bitte nicht stören“ befindet. Ein InitializationException enthält eine CameraUnavailableException, die auf den ListenableFuture des Initialisierungsergebnisses festgelegt wird, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)
  • Der Absturz beim Aufrufen von startFocusAndMetering auf Geräten, bei denen CONTROL_AF_STATE null war, wurde behoben. (Ife55e, b/157084254)

Camera-Core-Version 1.0.0-beta05

10. Juni 2020

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

API-Änderungen

  • Der Absturz beim Starten der App bei der Initialisierung von CameraX bei aktiviertem „Nicht stören“-Modus des Smartphones wurde behoben. Ein InitializationException, das ein CameraUnavailableException enthält, wird auf die ListenableFuture des Initialisierungsergebnisses gesetzt, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)

Fehlerkorrekturen

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

Camera-Camera2 Version 1.0.0-beta04

27. Mai 2020

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

Fehlerkorrekturen

  • Apps dürfen beliebige Parameter für die Kamera2-Erfassungsanfrage über Camera2Interop festlegen, ohne einen Absturz zu verursachen. Beachten Sie, dass durch das Überschreiben von Parametern Probleme auftreten können. Stabilität und Verhalten sind nicht garantiert, wenn Sie Parameter mit Camera2Interop überschreiben. (Ibe5a1, b/149103700)
  • Die automatische Initialisierung ist behoben, wenn eine App auf einem Gerät verwendet wird, das eine Pseudosprache verwendet. (I3bef3, b/154767663)
  • Das Fehlerprotokoll für den getrennten Anwendungsfall wurde in ein Debug-Protokoll für Camera2CameraImpl umgewandelt. (I1a565, b/154422490)
  • Ein Problem wurde behoben, durch das aufgenommene Bilder manchmal zu dunkel waren, obwohl der Blitz ausgelöst wurde. (I5d9fa, b/149729613)
  • Fehler behoben, durch den der Buffer in ImageProxy von ImageCapture nicht zurückgespult wurde (I0c455, b/153249512)
  • Die Probleme bei der Bindung von ImageCapture wurden behoben: (1) Es konnten keine Fotos 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 stiehlt (I1fbc3, b/153714651)

Camera-Core Version 1.0.0-beta04

27. Mai 2020

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

API-Änderungen

  • Fügt die experimentelle API CameraXConfig.Builder#setSchedulerHandler() hinzu, mit der der intern vom CameraX-Kamerastapel verwendete Handler festgelegt werden kann. Diese neue API und CameraXConfig.Builder#setCameraExecutor() sollten eine 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 die ImageProxy zugegriffen wird, nachdem die ImageReaderProxy geschlossen wurde. Außerdem müssen alle von der Analyzer empfangenen ImageProxy geschlossen werden, bevor die ImageReaderProxy geschlossen wird. (I4b299, b/145956416, b/154155377, b/156357269)
  • Der Parameter CameraInfo wurde aus PreviewView#createSurfaceProvider() entfernt. PreviewView ruft ihn jetzt intern aus der SurfaceRequest ab. (If18f0, b/154652477)
  • Die automatische Initialisierung ist bei der Verwendung einer App auf einem Gerät mit Pseudo-Standort korrigiert. (I3bef3, b/154767663)
  • Ein Problem wurde behoben, durch das 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 Analyser keine Bilder zur Analyse erhielt. (I6169f, b/151605317, b/153514544)
  • Fehler behoben, durch den der Buffer in ImageProxy von ImageCapture nicht zurückgespult wurde (I0c455, b/153249512)
  • Das Problem wurde behoben, dass die erste Kamera in der Liste der unterstützten Kameras von CameraManager nicht immer für die Verwendung ausgewählt wird. (I4c624, b/153418028)
  • Es wurde ein gelegentlicher Absturz behoben, der durch die Einstellung Preview.SurfaceProvider verursacht wurde, da die zuvor angeforderte Oberfläche nicht freigegeben wurde. “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation” (I8e4e7, b/155936225)

Kamera-Kamera2 Version 1.0.0-beta03

15. April 2020

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

Fehlerkorrekturen

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

Kamerakernversion 1.0.0-beta03

15. April 2020

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

Fehlerkorrekturen

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

Kamera-Kamera2 Version 1.0.0-beta02

1. April 2020

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

Fehlerkorrekturen

  • Der ImageInfo.getRotationDegrees() aus dem von ImageCapture erzeugten ImageProxy wurde so korrigiert, dass er dem Rotationswert der EXIF-Ausrichtung entspricht. (Id4281, b/150802561)
  • Die explizite Sortierung von CameraX-Abhängigkeiten in build.gradle ist nicht mehr erforderlich, um die Standardimplementierung von CameraX/Camera2 zu verwenden. Wenn die Deklaration strenger Abhängigkeiten erforderlich ist, können alle CameraX-Abhängigkeiten jetzt in die Build-Datei aufgenommen werden. (I46e88)
  • Das IllegalArgumentException-Problem auf Geräten mit einer Displaygröße von weniger als 640 × 480 Pixeln wurde behoben. (Ife3f2, b/150506192)
  • bindToLifecycle wurde so korrigiert, dass der UseCase nur dann geändert wird, wenn die Bindung erfolgreich war. Wenn zuvor bindToLifecycle für Auflösungsberechnungen aufgerufen wurde, wurde der Anwendungsfall aktualisiert. Der Anwendungsfall muss jetzt nicht mehr aktualisiert werden, um die Berechnungen vorzunehmen (I78d9e).

Camera-Core-Version 1.0.0-beta02

1. April 2020

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

Fehlerkorrekturen

  • Der ImageInfo.getRotationDegrees()-Wert aus dem von ImageCapture generierten ImageProxy wurde so korrigiert, dass er mit dem EXIF-Wert für die Drehung der Ausrichtung übereinstimmt. (Id4281, b/150802561)
  • bindToLifecycle wurde so korrigiert, dass der UseCase nur dann geändert wird, wenn die Bindung erfolgreich war. Bisher wurde der UseCase aktualisiert, wenn bindToLifecycle aufgerufen wurde, um Auflösungsberechnungen durchzuführen. Jetzt muss der UseCase nicht mehr aktualisiert werden, um die Berechnungen durchzuführen (I78d9e)
  • Ein Problem wurde behoben, durch das die Aufnahmesitzung des Preview-Use-Cases nicht aktualisiert wurde, wenn sich die Vorschauoberfläche nach mehrmaligem Aufruf von Preview.setSurfaceProvider() geändert hat.

Kamera-Camera2 Version 1.0.0-beta01

26. Februar 2020

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

Fehlerkorrekturen

  • SurfaceRequest.setSurface(Surface) wurde in SurfaceRequest.provideSurface(Surface) und SurfaceRequest.setWillNotComplete() in SurfaceRequest.willNotProvideSurface() umbenannt. (I224fe)
  • Es wurde ein Problem behoben, bei dem das Seitenverhältnis eines gespeicherten Bildes nach Änderung des Zieldrehwerts mit ImageCapture.setTargetRotation() nicht korrekt war. (I474ea, b/148763432)
  • Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert. Dazu wurde das Flag beibehalten, das den Standard-CameraXConfig-Anbieter festlegt. (I2d6c1)

Kamerakernversion 1.0.0-beta01

26. Februar 2020

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

API-Änderungen

  • ListenableFuture in SurfaceRequest.provideSurface() durch Executor und Callback ersetzt Dadurch wird die API vereinfacht, da keine Ausnahmen mehr bei provideSurface() verarbeitet werden müssen und der provideSurface()-Callback nicht mehr abgebrochen werden kann. Dies soll Abstürze auf älteren Geräten verhindern, die durch vorzeitige Freigabe von Oberflächen verursacht wurden. Mit dem SurfaceRequest.Result-Objekt wird jetzt nachverfolgt, wie eine SurfaceRequest die bereitgestellte Surface verwendet. (I7854b)
  • SurfaceRequest.setSurface(Surface) wurde in SurfaceRequest.provideSurface(Surface) und SurfaceRequest.setWillNotComplete() in SurfaceRequest.willNotProvideSurface() umbenannt. (I224fe)

Fehlerkorrekturen

  • Ein Problem wurde behoben, durch das das Seitenverhältnis eines gespeicherten Bildes nicht korrekt war, nachdem der Wert für die Zieldrehung mit ImageCapture.setTargetRotation() geändert wurde. (I474ea, b/148763432)
  • Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert, indem das Flag beibehalten wurde, das den Standardanbieter CameraXConfig festlegt. (I2d6c1)
  • Die Dokumentation für Flash-Modus-APIs wurde aktualisiert und enthält nun mögliche Werte. (I4a3ec)

Camera-Camera2 Version 1.0.0-alpha10

10. Februar 2020

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

Fehlerkorrekturen

  • Die Stabilität auf INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY-Geräten wurde verbessert, da Surfaces nur während der Verwendung durch Camera2 aufbewahrt werden. (I9dac2)
  • Das Problem mit der unterbelichteten Vorschau auf LEGACY-Geräten wurde durch die korrekte 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 wurde 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. Überladene takePicture-Methoden wurden zu einer einzigen Methode kombiniert. Die Test-App wurde aktualisiert, sodass Uri als kanonisches Beispiel verwendet wird. (Ia3bec)
  • Preview.PreviewSurfaceProvider wurde in Preview.SurfaceProvider umbenannt. Für SurfaceProviders müssen Entwickler nicht mehr ihre eigenen ListenableFuture erstellen. Surfaces werden jetzt über ein neues SurfaceRequest-Objekt bereitgestellt. Die Methode Preview.getPreviewSurfaceProvider() wurde entfernt, da sie möglicherweise missbräuchlich verwendet wird, wenn Preview mit anderen Klassen wie PreviewView gekoppelt ist. (I20105)
  • getTargetRotation() und getTargetName() wurden zu Preview hinzugefügt. (Iceee7)
  • getTargetRotation(), getBackpressureStrategy() und getImageQueueDepth() wurden zu ImageAnalysis hinzugefügt. (I9d6d9)
  • getTargetRotation() und getCaptureMode() in ImageCapture() hinzugefügt (I5bc17)
  • Die Argumente, die zuvor in ImageCapture.OnImageSavedCallback.onError() und ImageCapture.OnImageCapturedCallback.onError() übergeben wurden, wurden durch ein einzelnes Argument ImageCaptureException ersetzt, das weiterhin alle zuvor übergebenen Informationen enthält.
  • Das Dateiargument, das zuvor in ImageCapture.OnImageSavedCallback.onImageSaved() übergeben wurde, wurde entfernt. (I750d2)
  • Die Kurse Preview und ImageCapture sind jetzt als endgültig gekennzeichnet. (I2500b)
  • Die API wurde aktualisiert, wobei die Methoden getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() und getLinearZoom() der CameraInfo-Zusammenführung in getZoomState() zusammengeführt werden, wodurch eine ZoomState-Instanz zurückgegeben wird. (Ib19fe)
  • Die API-Felder OPTION_TARGET_CLASS und OPTION_TARGET_NAME wurden aus CameraXConfig entfernt, da sie nur für die interne Bibliothek gedacht 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 Kamera-Standardkonfiguration initialisiert, sofern das Artefakt camera-camera2 im build.gradle der Anwendung enthalten ist. (I58ff5) (b/146923574)

Camera-Camera2 Version 1.0.0-alpha09

22. Januar 2020

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

API-Änderungen

  • Fügen Sie den Camera2-Interop-Pfad zum Extrahieren einer Camera2-Kamera-ID hinzu. Sie können die Kamera-ID mit Camera2CameraInfo.extractCameraId() aus CameraInfo extrahieren. Das folgende Codebeispiel zeigt, wie das geht:

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

    Für die Klasse Camera2CameraInfo ist die ExperimentalCamera2Interop-Markierungsklasse erforderlich.

Camera-Core-Version 1.0.0-alpha09

22. Januar 2020

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

API-Änderungen

  • Der SurfaceOrientedMeteringPointFactory-Parameter 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 annimmt und die aktuelle Anzeige übergibt.
  • Verbesserungen der Javadocs für die APIs für Fokus und Belichtung hinsichtlich MeteringMode- und 3A-Flags sowie der Verwendung des Parameters Display.
  • Die Referenzdokumentation für setZoomRatio und setLinearZoom wurde erweitert.

Fehlerkorrekturen

  • Probleme beim Schließen und Öffnen von Kameras, die zu einem Fehler bei der Überprüfung der „Voraussetzung“ geführt haben, wurden behoben.
  • Ein ConcurrentModificationException wurde behoben, das bei Verwendung der Taschenlampen- und Zoom-APIs auftreten konnte.
  • Es wurde ein Problem behoben, durch das Auflösungen ausgewählt wurden, die der angeforderten Auflösung nicht so nahe kamen, wenn eine Größe mit mod16-Abmessungen verfügbar war.
  • Die startFocusMetering- und cancelFocusMetering-APIs funktionieren jetzt wie beschrieben, mit korrektem Timing und ggf. zurückgegebenen Fehlern.
  • Ein Problem wurde behoben, bei dem eine bestimmte Zielauflösung mit einem Zuschnittsseitenverhältnis auf einem Gerät angefordert wurde, das solche Größen nicht unterstützt. Jetzt wird bei Verfügbarkeit eine nicht zugeschnittene Größe mit ausreichender Auflösung ausgewählt, um die ursprüngliche Anfrage zu begrenzen.

Kamera-Kamera2 Version 1.0.0-alpha08

18. Dezember 2019

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

Bekannte Probleme

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

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem nach dem Drehen oder Wechseln der Kamera bei API-Level 21 und 22 ein schwarzer Vorschaubildschirm angezeigt wurde.

API-Änderungen

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

Kamerakernversion 1.0.0-alpha08

18. Dezember 2019

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

Bekannte Probleme

  • Bei Apps, die PreviewView oder CameraView verwenden, wird möglicherweise die falsche Seitenverhältnisvorschau angezeigt. Das passiert nach der Pausierung oder Fortsetzung auf einigen FULL-Geräten wie 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.

Kamera-Kamera2 Version 1.0.0-alpha07

4. Dezember 2019

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

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

Camera-Core-Version 1.0.0-alpha07

4. Dezember 2019

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

Hinweis: In dieser Alphaversion gibt es einige wesentliche Änderungen, da wir uns auf die Betaversion vorbereiten. Wir empfehlen Ihnen, die Änderungen zu prüfen und gegebenenfalls Feedback in der CameraX-Google-Gruppe zu geben. Entwicklern, die CameraX in Apps aus dem Play Store verwenden, empfehlen wir, auf die offizielle Betaversion zu warten, bevor Sie die Bibliothek in Ihren Apps aktualisieren.

API-Änderungen

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

    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 Klasse „CameraX“ wurde entfernt. Die zuvor über den CameraX-Klassenaufruf bereitgestellten bindToLifecycle()-, unbind()-, unbindAll()-, isBound()- und hasCamera()-Werte sind jetzt über die ProcessCameraProvider verfügbar.

  • Eine pro Prozess verfügbare Instanz von ProcessCameraProvider wird asynchron über die statische Methode ProcessCameraProvider.getInstance() abgerufen. Diese Methode gibt ein abhörbares Future zurück, das die ProcessCameraProvider nach Abschluss bereitstellt. Hier ist es in onCreate() für eine typische Verwendung zu sehen. Sie können getInstance() später im Lebenszyklus der Aktivität aufrufen, um die Initialisierungslatenz zu einem späteren Zeitpunkt zu verschieben (z. B. wenn durch eine Nutzeraktion die Kamera-UI geöffnet wird).

    import androidx.camera.lifecycle.ProcessCameraProvider
    import com.google.common.util.concurrent.ListenableFuture
    
    class MainActivity : AppCompatActivity() {
       private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider>
       override fun onCreate(savedInstanceState: Bundle?) {
           cameraProviderFuture = ProcessCameraProvider.getInstance(this);
      }
    
  • Der von getInstance() zurückgegebenen ListenableFuture kann ein Listener hinzugefügt werden. Dadurch kann der Kameraanbieter vom Future abgerufen werden, ohne ihn auf Future.get() zu blockieren

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

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

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

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • Der Anwendungsfall für die Vorschau wurde aktualisiert, um eine Oberfläche zu akzeptieren, die von der Anwendung erstellt und verwaltet wird, um die Best Practices für Android zu erfüllen. Wir empfehlen dringend, die Ansichtsklasse PreviewView zu verwenden, die im Kameraansichtspaket enthalten ist.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • Weitere Informationen zum Anhängen einer von Apps 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 möglicherweise keine neuen Bilder empfangen oder die Kamera stürzt ab, je nach Einstellung des Gegendrucks. Weitere Informationen finden Sie in der Referenzdokumentation.

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

  • ImageProxy.getImage() ist als experimentell gekennzeichnet. Anwendungen sollten die Nutzung z. B. über @androidx.camera.core.ExperimentalGetImage mit Anmerkungen versehen

  • Die Annotationsanforderung UIThread für Analyzer wurde entfernt.

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

  • Listener mit mehreren Methoden wurden in „Callback“ umbenannt:

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

  • Es wurden Zoomsteuerelemente hinzugefügt:

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

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

  • Die Felder ImageCapture.Metadata werden durch die Zugriffsfunktionen „get/set/is“ ersetzt.

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

  • MeteringPoints dienen jetzt als Steuerelemente für Messaktionen und werden von Fabriken produziert. Apps sollten die vorhandenen statt benutzerdefinierte Fabriken verwenden.

Behobene Probleme

  • Ein Problem wurde behoben, das beim Aufnehmen eines Fotos nach der Wiederaufnahme auftrat, nachdem bei einer vorherigen Pause Fotos aufgenommen wurden, die noch nicht fertig waren.
  • Bekanntes Problem: CameraControl.enableTorch() funktioniert, aber die zurückgegebene ListenableFuture<Void> ist immer eine unmittelbare complete(success)-Zukunft, auch wenn kein Blitzgerät vorhanden ist. In zukünftigen Versionen wird dieses Problem mit dem endgültigen Verhalten behoben: Wenn keine Flash-Einheit vorhanden ist, schlägt enableTorch(true) sofort fehl und sendet keine Anfrage an CaptureSession. TorchState bleibt deaktiviert.
  • Bekanntes Problem: Mit startFocusAndMetering und cancelFocusAndMetering wird die Fokusmessung gestartet und abgebrochen, aber es wird sofort eine completed (success) zurückgegeben, die nicht dem dokumentierten Verhalten entspricht. Das FocusMeteringResult von ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() ist ein falsches Ergebnis, das isFocusSuccessful() und immer „false“ ist und sich vom beabsichtigten, dokumentierten Verhalten unterscheidet.
  • Bekanntes Problem: Eine Messpunkt-Factory für die Verwendung mit PreviewView-Touch-Ereignissen wird derzeit entwickelt. Derzeit können Apps, die benutzerdefinierte verwaltete Oberflächen verbinden, die vorhandenen Messpoint-Factorys verwenden. Andernfalls ist für PreviewView keine Touchfokus-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 wurden veröffentlicht. Dies sind die Commits in camera-camera2:1.0.0-alpha06 und dies sind die Commits in camera-core:1.0.0-alpha06.

Neue Funktionen

Änderungen bei der Einstellung des Seitenverhältnisses:

  • 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 die Tatsache wider, dass von der Kamera nur bestimmte Seitenverhältnisse und nicht beliebige Verhältnisse bereitgestellt werden.
    • Derzeit sind nur die Seitenverhältnisse 16:9 und 4:3 verfügbar. Bei 1:1 ist dies nur auf bestimmten Geräten von der Kamera möglich, und die Auflösung ist dann begrenzt. Bei Anwendungen, für die eine 1:1-Benutzeroberfläche oder -verarbeitung entworfen wird, sollten die flexibleren Optionen 16:9 oder 4:3 verwendet werden. Das Display kann dann zugeschnitten oder eine Teilregion verarbeitet werden.
    • Diese Seitenverhältnisse sind so ausgerichtet, dass der maximale Sensorbereich genutzt wird.
  • getTargetAspectRatio() wurde den APIs zur Anwendungsfallkonfiguration hinzugefügt und gibt das Seitenverhältnis zurück, auf das die Anwendungsfallausgabe ausgerichtet ist.
  • Die Methode setTargetAspectRatio(Rational aspectRatio) wurde für ImageCapture zu setTargetAspectRatioCustom(Rational aspectRatio) geändert. Wenn diese Option festgelegt ist, wird die Ausgabe von ImageCapture entsprechend zugeschnitten.

Executor APIs

  • Die folgenden Funktionen akzeptieren einen Parameter für den Executor, 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 er im Hauptthread ausgeführt.
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

CameraInfo wurde mit den Kontrollkästchen Flash verfügbar und Sensor Rotation APIs hinzugefügt.

  • Es wurden CameraInfo und eine getCameraInfo-Methode hinzugefügt, mit der Apps prüfen können, ob CameraInfo mit einem Objektiv verfügbar ist und ob der Blitz für diese Kamera verfügbar ist. Beispiel:

    try {
        CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing);
        LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable();
        flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE);
    } catch (CameraInfoUnavailableException e) {
        Log.w(TAG, "Cannot get flash available information", e);
        flashToggle.setVisibility(View.VISIBLE);
    }
    
  • CameraInfo.getSensorRotationDegrees() wurde hinzugefügt. Sie gibt die Ausrichtung des Kamerasensors relativ zur natürlichen Ausrichtung des Geräts oder, für den praktischen Gebrauch, relativ zu einer Ausrichtung an, die durch eine Oberflächendrehung beschrieben wird (die eine Ausrichtung relativ zur natürlichen Ausrichtung beschreibt).

API-Änderungen und Fehlerkorrekturen

  • Seitenverhältnisse: Für jeden Anwendungsfall sollten Anwendungen nur eine von setTargetResolution() oder setTargetAspectRatio() aufrufen. Wenn Sie beide für denselben Builder aufrufen, wird ein Fehler zurückgegeben.
    • Im Allgemeinen wird empfohlen, setTargetAspectRatio() basierend auf dem UI-Design der Anwendung zu verwenden. Die Auflösung hängt vom Anwendungsfall ab. Die Vorschau befindet sich beispielsweise in der Nähe von Bildschirmauflösungen und die Bilderfassung liefert hochauflösende Standbilder. Weitere Informationen finden Sie in der Tabelle mit automatischen Auflösungen.
    • Verwenden Sie setTargetResolution() für speziellere Fälle, z. B. wenn eine Mindestauflösung (zur Vermeidung von Berechnungen) oder eine maximale Auflösung (für Verarbeitungsdetails) erforderlich ist.
  • Executor API: Der setCallbackHandler()-Aufruf wurde aus den APIs zur Anwendungsfallkonfiguration entfernt. Stattdessen können Anwendungen den Executor als Parameter in verschiedenen anderen APIs festlegen, die einen Rückruf festlegen.
  • Null-Anmerkungen für verschiedene Funktionen wurden aktualisiert.
  • Beim Öffnen der Kamera wurde java.lang.IllegalStateException at Camera$StateCallback.onError ausgegeben. Dieses Problem wurde behoben.
  • Behobenes Problem: Es wurden zu kleine Auflösungen (unter 640 × 480) ausgewählt, wenn die App größere oder Standardauflösungen anforderte, was zu einem blockigen oder verschwommenen Vorschaubild führte. Anwendungen, die speziell kleinere Auflösungen benötigen, können diese explizit anfordern.
  • Ein Problem wurde behoben, durch das nach dem Zurückkehren von einem Intent, durch den eine andere Kameraanwendung gestartet wurde, ein schwarzer Bildschirm angezeigt wurde (die Kamera konnte nicht gestartet werden).
  • Es wurde ein Fehler behoben, bei dem der folgende Fehler ausgegeben wurde, wenn Apps wiederholt gestartet oder beendet wurden: java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • Der folgende Fehler beim Deaktivieren von „ImageAnalysis“ wurde behoben: java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
  • Es wurden zusätzliche Tests für den Ablauf der Kameratrennung hinzugefügt.
  • Verbesserte Robustheit des Testsystems bei aufeinanderfolgenden Kameratests.

Camera-Camera2 und Camera-Core Version 1.0.0-alpha05

5. September 2019

androidx.camera:camera-camera2:1.0.0-alpha05 und androidx.camera:camera-core:1.0.0-alpha05 werden freigegeben. Dies sind die Commits, die in „camera-camera2:1.0.0-alpha05“ enthalten sind, und dies sind die Commits, die mit „camera-core:1.0.0-alpha05“ enthalten sind.

  • API-Änderung: Anwendungsfallfehlervariablen wurden umbenannt:

    • 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 anhand der Objektivposition ausgewählt wird:

      CameraX.getCameraControl(LensFacing lensFacing)

    • MeteringPointFactory, MeteringPoint, MeteringMode und FocusMeteringAction wurden hinzugefügt, um „Auf-das-Display-tippen, um den Fokus zu setzen“ 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 Metering Point Factorys 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 das Aufrufen der folgenden Methoden im Hauptthread (UI) und geben Sie andernfalls IllegalStateException aus. In zukünftigen Versionen ist die Verwendung in anderen Threads möglich und die Serialization wird sichergestellt.

    • CameraX.bindToLifecycle()
    • CameraX.unbind()
    • CameraX.unbindAll()
    • ImageAnalysis.setAnalyzer()
    • ImageAnalysis.getAnalyzer()
    • ImageAnalysis.removeAnalyzer()
    • Preview.removePreviewOutputListener()
    • Preview.getOnPreviewOutputUpdateListener()
    • Preview.setOnPreviewOutputUpdateListener()
  • Für verschiedene Konfigurationseinstellungen werden jetzt Nullparameter akzeptiert und entsprechende Getter können Null zurückgeben.

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

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

  • Ein Fehler wurde behoben, durch den die Vorschau beim Starten schwarz angezeigt wurde (keine Kameradaten), nachdem das Gerät gedreht oder zwischen der Front- und Rückkamera gewechselt wurde.

  • Das Testen für mehrere gleichzeitige Bildanalyse-Anwendungsfälle wurde entfernt. Zur Gewährleistung der Kompatibilität sollten Anwendungen nur einen einzigen Anwendungsfall für die Bildanalyse anhängen.

  • Erste Robolectric-Tests für eine gefälschte Kamera wurden in der Camera Testing Suite (WIP) hinzugefügt.

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

Camera-Camera2 und Camera-Core Version 1.0.0-alpha04

7. August 2019

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

Neue Funktionen

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

Das Ziel von CameraX ist es, eine Kamerasitzung erfolgreich zu initialisieren. Das bedeutet, dass CameraX Kompromisse bei Auflösung und Seitenverhältnis eingeht, um als Erstes eine Aufnahmesitzung zu starten. Genaue Anfragen werden daher möglicherweise nicht berücksichtigt. Mögliche Ursachen:

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

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

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

  • Für den Anwendungsfall „Vorschau“ wird jetzt standardmäßig das Seitenverhältnis 4:3 verwendet, wenn kein anderes festgelegt ist.
  • Wenn CameraX intern Änderungen an den angeforderten Auflösungen und Seitenverhältnissen berücksichtigt, die auf den Gerätefunktionen basieren, wird zuerst versucht, dasselbe Seitenverhältnis beizubehalten (durch einen der setTargetAspectRatio- oder setTargetResolution-Aufrufe).
  • Die Version „Nächste mod16“ 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 mehr blockierend. Das neueste Bild in der Warteschlange wird übernommen, nicht verwendete Bilder werden jedoch kontinuierlich verworfen, damit die Kamera-Pipeline nicht blockiert wird.
  • Der Analyser kann ein einzelnes Bild unbegrenzt halten, ohne die Pipeline zu verlangsamen.
  • Wenn die Anwendung einen Executor bereitstellt, der dann blockiert, wird der Anwendungsfall „ImageAnalysis“ blockiert.
  • Der festgelegte Standard-Executor verhält sich intern wie ein nicht blockierender Executor.

Fehlerkorrekturen

  • Probleme mit Zeitüberschreitungen behoben, die auf eine 3A-Konvergenz warteten, wenn Bilder auf Geräten ohne Autofokus, automatische Belichtung und automatischen Weißabgleich aufgenommen wurden
  • Ein Problem wurde behoben, das beim schnellen Aufnehmen von Bildern mit ImageCapture auftrat. Fehlerkorrektur: java.lang.IllegalStateException: maxImages (2) has already been acquired
  • Problem 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.
  • Problem behoben, bei dem auf LEGACY-Geräten ein bestimmtes Seitenverhältnis als maximale JPEG-Auflösung erforderlich war
  • Problem behoben, wenn die App im Hintergrund ausgeführt wurde, während die Kamera geöffnet wurde
  • Problem mit API < 25 behoben und Fehler checkAndUpdateEglState: invalid current EGLDisplay entfernt
  • Ein Problem wurde behoben, durch das die Verknüpfung der Vorschau nach dem Aktivieren und Starten von Erweiterungen aufgehoben wurde.
  • Build-Artefakte für die Kameraansicht und Kameraerweiterungen werden jetzt als Alphaversionen veröffentlicht

Kamera-Kamera2 und Kamerakern-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 wurden veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

API-Änderungen

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

Kamerakern

  • Behebung des Absturzes einer nicht konfigurierten Eingabe-/Ausgabeoberfläche beim schnellen Öffnen/Schließen oder Binden/Aufheben der Bindung
  • Zu neuen Futures-Implementierungen wechseln
  • Fehlerkorrekturen für zuverlässigere Tests
  • Im Integrationstest wird jetzt die Aufnahmezeit für Fotos angezeigt
  • Interne Compat-Klasse für Executors entwickelt
  • Die App für den Zeittest wartet beim Aufnehmen von Bildern auf den Abschluss des vorherigen und die Stabilität wurde verbessert

Erweiterungen

  • Versionierungsprüfungen hinzugefügt
  • Zusätzliche Testabdeckung – Callbacks für Erweiterungsereignisse
  • Verbesserungen bei intern übereinstimmenden Bildern und Metadaten
  • Fehlerkorrekturen 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 werden freigegeben. Version 1.0.0-alpha02 enthält diese Commits.

Fehlerkorrekturen

  • Problem mit der Division durch Null bei Verwendung des Emulators behoben
  • Der Fehler „NullPointerException“/„Surface Abandoned“ wurde behoben, der auf einigen Geräten auftrat, wenn schnell Fotos aufgenommen wurden, während Anwendungsfälle schnell getrennt und wieder verbunden wurden.
  • Internes Problem behoben, damit Aktualisierungen von Erfassungsanfragen einheitlich auf alle Oberflächen angewendet werden
  • 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
  • Weitere Javadoc-Erläuterungen zur CameraX-Klasse und zur Lebenszyklusverwaltung
  • Instrumentierte Tests für die Antelope-Leistungstest-App hinzugefügt
  • Entfernen der Notwendigkeit für „-keepattributes Signature“ in der Proguard-Konfiguration der App

Camera-Camera2 und Camera-Core 1.0.0-alpha01

7. Mai 2019

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

Kameralebenszyklus-Version 1.0.0-beta11

14. Oktober 2020

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

Fehlerkorrekturen

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

Kamera-Lebenszyklus Version 1.0.0-beta10

23. September 2020

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

Fehlerkorrekturen

Kameralebenszyklus-Version 1.0.0-beta09

16. September 2020

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

Kamera-Lebenszyklus-Version 1.0.0-beta08

19. August 2020

androidx.camera:camera-lifecycle:1.0.0-beta08 wurde 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 aus Context.getApplicationContext() zurückgibt. (I3d3c9, b/160817073)

Kameralebenszyklus-Version 1.0.0-beta07

22. Juli 2020

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

Kamera-Lebenszyklus-Version 1.0.0-beta06

24. Juni 2020

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

API-Änderungen

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

Kamera-Lebenszyklus-Version 1.0.0-beta05

10. Juni 2020

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

Fehlerkorrekturen

  • Behebung des Absturzes beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im Modus „Bitte nicht stören“ befindet. Ein InitializationException, das ein CameraUnavailableException enthält, wird auf die ListenableFuture des Initialisierungsergebnisses gesetzt, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)

Kameralebenszyklus – Version 1.0.0-beta04

27. Mai 2020

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

Kamera-Lebenszyklus Version 1.0.0-beta03

15. April 2020

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

Fehlerkorrekturen

  • Regression von beta03 behoben, bei der das Aufrufen von bindToLifecycle() mit null UseCase-Werten eine ausgelöste Ausnahme verursachte. Dadurch konnte kein Camera abgerufen werden, ohne eine UseCase zu binden.
  • Fehlerkorrekturen zur Unterstützung der Veröffentlichung von camera-core

Kameralebenszyklus – Version 1.0.0-beta01

26. Februar 2020

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

Fehlerkorrekturen

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

Kameralebenszyklus-Version 1.0.0-beta02

1. April 2020

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

Fehlerkorrekturen

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

Kamera-Lebenszyklus Version 1.0.0-alpha10

10. Februar 2020

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

API-Änderungen

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

Kamera-Lebenszyklusversion 1.0.0-alpha03

22. Januar 2020

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

Updates

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

Kamera-Lebenszyklus – Version 1.0.0-alpha02

18. Dezember 2019

androidx.camera:camera-lifecycle:1.0.0-alpha02 wurde 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.

Kamera-Lebenszyklusversion 1.0.0-alpha01

4. Dezember 2019

androidx.camera:camera-lifecycle:1.0.0-alpha01 wurde veröffentlicht. Version 1.0.0-alpha01 des Kameralebenszyklus enthält diese Commits

API-Hinweise

  • Das Kamera-Lebenszyklus-Artefakt wird hinzugefügt und stellt die LifeCycleCameraProvider-Schnittstelle und eine Implementierung namens ProcessCameraProvider bereit, die viele der Funktionen der vorherigen CameraX-Klasse im Kern bietet und über eine getInstance()-Methode abgerufen wird.
  • Apps müssen die Kamera-Lebenszyklusbibliothek enthalten, um CameraX verwenden zu können.
  • Informationen zur Initialisierung von CameraX mit einer ProcessCameraProvider finden Sie in den Hinweisen im Abschnitt camera-core.

Kamera-Erweiterungen und Kamera-Ansicht Version 1.0.0

Version 1.0.0-alpha32

15. Dezember 2021

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

API-Änderungen

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

Fehlerkorrekturen

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

Version 1.0.0-alpha31

17. November 2021

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

API-Änderungen

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

Fehlerkorrekturen

  • Ein Absturz beim schnellen Wechseln zwischen dem Erweiterungsmodus und dem Modus „Nur Video“ auf bestimmten Geräten wurde behoben. (Iebbef)

Version 1.0.0-alpha30

13. Oktober 2021

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

API-Änderungen

  • Alle CameraX-Klassen wurden um die Annotation @RequiresApi(21) ergänzt und die minSdkVersion wurde aus AndroidManifest.xml entfernt. Dadurch lässt sich der Kamerakern einfach in Anwendungen einbinden, deren minSdkVersion kleiner als 21 ist, die aber bedingt Codepfade verwenden möchten, die auf API 21 und höher angewiesen sind. Bei Anwendungen mit minSdkVersion 21 oder höher erfordert diese Änderung keine Maßnahme. (Ie7f2e, b/200599470)

Fehlerkorrekturen

  • Das Problem "Abstrakte Methode", 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 werden freigegeben. Version 1.0.0-alpha29 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • „ExtensionMode#BEAUTY“ in „FACE_RETOUCH“ umbenannt, um die Funktion des Erweiterungsmodus korrekt zu beschreiben. (I61f54, b/198515274)
  • Das Problem wurde behoben, dass die Kamera unerwartet geschlossen wird, wenn in einer Aktivität mehrere CameraController und PreviewView verwendet werden. (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 wurden veröffentlicht. Version 1.0.0-alpha28 enthält diese Commits.

API-Änderungen

  • Die Anmerkung „ExperimentalUseCaseGroupLifecycle“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I17b85)
  • RotationListener wurde neu strukturiert und in RotationProvider umbenannt. Die Funktion wird weiterhin mit einer leicht anderen API angeboten. (Idffc5)
  • Benennen Sie TAP_TO_FOCUS_UNSUCCESSFUL in TAP_TO_FOCUS_NOT_FOCUSED und TAP_TO_FOCUS_SUCCESSFUL in TAP_TO_FOCUS_FOCUSED um. OutputSize finalisiert (I099fa)

Fehlerkorrekturen

  • Die eingestellten <EffectName><UseCase>Extender-Klassen, das ExtensionsErrorListener und die zugehörigen 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 wurden veröffentlicht. Version 1.0.0-alpha27 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Das Problem beim Strecken des PreviewView PERFORMANCE-Modus bei Verwendung mit der Compose-Benutzeroberfläche wurde behoben. (Ie1137, b/183864890)

Version 1.0.0-alpha26

30. Juni 2021

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

API-Änderungen

  • Fügen Sie eine neue Methode CameraController#getTapToFocusState() hinzu, die das aktuelle Ergebnis des Fokussierens durch Tippen zurückgibt. (Iaccb0)
  • Hinzufügen weiterer Kamera-Kernfunktionen zu CameraController: Getter/Setter für Zielseitenverhältnis, Zielauflösung, Erfassungsmodus, CameraControl und benutzerdefinierte Executors. (Iea8f2)
  • Fügen Sie die Klasse „RotationReceiver“ hinzu, die Änderungen an der Oberflächendrehung empfängt. Damit kann die Zieldrehung festgelegt werden, wenn sich das Gerät im festen Hoch-/Querformat befindet. (Ib278f)
  • Neue öffentliche APIs vom Typ „getEstimatedCaptureLatencyRange“ in der Klasse „ExtensionsManager“ wurden freigegeben. (I6a8ec)
  • Eingestellter ExtensionsErrorListener. Derzeit wird diese Oberfläche nur verwendet, um beim Aktivieren der Erweiterungsmodi zu überwachen, ob eine Vorschau oder ImageCapture fehlt. CameraX fügt automatisch eine zusätzliche Vorschau oder ImageCapture hinzu, damit die Erweiterungsfunktionen gut funktionieren. Danach werden über diese Benutzeroberfläche keine Fehler mehr gemeldet. (I47d9e)
  • Die öffentlichen APIs „ExtensionsManager.getInstance“, „isExtensionAvailable“ und „getExtensionEnabledCameraSelector“ wurden eingeführt und die alten <EffectName><UseCase>Extender-Klassen und zugehörigen APIs eingestellt. (I329e6)

Version 1.0.0-alpha25

2. Juni 2021

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

API-Änderungen

  • Die ExperimentalCameraFilter APIs haben die Testphase beendet und sind nun formale APIs. Sie können ohne annotierte Einwilligung verwendet werden. (I4bc94)
  • Fügen Sie ein Dienstprogramm hinzu, das Koordinaten zwischen Anwendungsfällen umwandelt. Anwendungsbeispiel: Die im Anwendungsfall „ImageAnalysis“ erkannten Koordinaten transformieren und das erkannte Objekt in der Vorschau hervorheben. (I63ab1, b/137515129)
  • CameraView wurde entfernt. CameraView wurde durch CameraController ersetzt. Weitere 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 werden freigegeben. Version 1.0.0-alpha24 enthält diese Commits.

Fehlerkorrekturen

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

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 werden freigegeben. Version 1.0.0-alpha23 enthält diese Commits.

API-Änderungen

  • CameraView wird nicht mehr unterstützt. Bitte verwende stattdessen „LifecycleCameraController“. Weitere Informationen finden Sie in der Migrationsanleitung (Idac2c).
  • FloatRange-Anmerkung zu setLinearZoom() hinzugefügt (I69971)

Fehlerkorrekturen

  • Die Abhängigkeiten der Kameraansicht wurden so angepinnt, dass sie auf 1.0.0-Artefakten basieren. Je nach Kameraansicht führt die Abhängigkeitsauflösung von Gradle nicht mehr dazu, dass Kamerakern, Kamera-Kamera2 und Kamera-Lebenszyklus automatisch auf die neuesten Artefakte von 1.1.0 aktualisiert werden. Die Kameraansicht ist jedoch weiterhin mit diesen Artefakten kompatibel, wenn explizit 1.1.0 festgelegt wurde. (Ic8fa1, b/181599852)
  • Die gestreckte Vorschau auf dem Samsung A3 wurde in PreviewView behoben. (Iacb30, b/180121821)
  • Das Problem wurde behoben, dass 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 werden freigegeben. Version 1.0.0-alpha22 enthält diese Commits.

API-Änderungen

Fehlerkorrekturen

  • Fehlerbehandlung für ExtensionsErrorListener wurde korrigiert, um Fehler zu melden, wenn nur „Preview“ oder „ImageCapture“ gebunden ist. (I5ae39)

Kameraerweiterungen und Ansichtsversion 1.0.0-alpha21

27. Januar 2021

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

Unterstützung für andere Artefakte der Kamerabibliothek.

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 werden freigegeben. Version 1.0.0-alpha20 enthält diese Commits.

Unterstützung für andere Artefakte der Kamerabibliothek.

Kameraerweiterungen und Kameraansicht – Version 1.0.0-alpha19

11. November 2020

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

Fehlerkorrekturen

  • Die Anmerkung @ExperimentalVideo wurde in der Kameraansicht eingeführt. Mit dieser Anmerkung werden APIs gekennzeichnet, die experimentelle Videofunktionen zur Verfügung stellen. Diese können sich im Laufe der Entwicklung der Funktionen ändern. Für jede Methode mit diesen APIs sollte die Annotation @UseExperimental mit ExperimentalVideo als markerClass verwendet werden. (I6d729)

Camera-Extensions Version 1.0.0-alpha18

14. Oktober 2020

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

Kameraansicht – Version 1.0.0-alpha18

14. Oktober 2020

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

Unterstützung für andere Artefakte der Kamerabibliothek.

Camera-Extensions Version 1.0.0-alpha17

23. September 2020

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

Fehlerkorrekturen

Kameraansicht-Version 1.0.0-alpha17

23. September 2020

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

Fehlerkorrekturen

Camera-Extensions Version 1.0.0-alpha16

16. September 2020

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

Fehlerkorrekturen

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

Kameraansicht-Version 1.0.0-alpha16

16. September 2020

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

API-Änderungen

  • PreviewView#setDeviceRotationForRemoteDisplayMode() und PreviewView#getDeviceRotationForRemoteDisplayMode() wurden entfernt. Die beiden Methoden dienen zum Anpassen der Vorschaurotation, wenn die gewünschte Rotation nicht die Displaydrehung ist, z.B. bei der Remote-Anzeige. Wenn Sie die Drehung der Vorschau, die nicht auf dem Display angezeigt wird, jetzt festlegen möchten, legen Sie 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 ausführen muss. (I0c3cc)
  • Beliebige Zielrotation für die Vorabversion zulassen. Die Transformationsinformationen werden berechnet und über einen neuen TranformationInfoListener-Callback in Echtzeit an den Nutzer zurückgegeben. (I21470)

Bekannte Probleme

  • In der Vorschau wird OnClickListener#onClick() nicht aufgerufen, wenn der Endnutzer auf „Vorschau“ klickt. Das Touch-Ereignis wird fälschlicherweise von PreviewView#onTouchEvent() erfasst. 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.

Kameraerweiterungen Version 1.0.0-alpha15

19. August 2020

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

Fehlerkorrekturen

  • Die Methode ExtensionsManager.init() nimmt jetzt einen Kontext als Parameter an, 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)

    Kameraansicht-Version 1.0.0-alpha15

    19. August 2020

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

Fehlerkorrekturen

  • DisplayOrientedMeteringPointFactory nimmt eine CameraInfo-Instanz anstelle einer CameraSelector an. Es gibt also eine direkte Zuordnung dazu, für welche Kamera die Fabrik Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, nehmen auch eine CameraInfo-Instanz anstelle von CameraSelector an. (I400c1)
  • TextureViewMeteringPointFactory wurde entfernt. PreviewView bietet eine öffentliche API (createMeteringPointFactory()), mit der eine Messpunkt-Fabrik erstellt werden kann, unabhängig davon, ob TextureView oder SurfaceView verwendet wird. (Ide693)
  • Die Implementierungsmodi SURFACE_VIEW/TEXTURE_VIEW von PreviewView werden in PERFORMANCE/COMPATIBLE umbenannt. PERFORMANCE ist der alte SURFACE_VIEW-Modus und COMPATIBLE der alte TEXTURE_VIEW-Modus. (I0edc2)
  • Überschreiben Sie bei der Bildaufnahme das Flag „Horizontal drehen“ in den Metadaten basierend auf der Kamerarichtung. (I28499)

Camera-Extensions Version 1.0.0-alpha14

22. Juli 2020

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

Kameraansicht – Version 1.0.0-alpha14

22. Juli 2020

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

Kameraerweiterungen Version 1.0.0-alpha13

24. Juni 2020

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

Fehlerkorrekturen

  • Es wurden experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und Kameraeigenschaften hinzugefügt. (I28f61)

Kameraansicht – Version 1.0.0-alpha13

24. Juni 2020

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

Fehlerkorrekturen

  • CameraView stürzt nicht mehr mit einer IllegalArgumentException ab, wenn es an einen LifecycleOwner gebunden wird, dessen Lebenszyklus kurz nach der Bindung in den Status DESTROYED übergeht. Bei Bindungslebenszyklen im Status „DESTROYED“ wird nicht versucht, die Kamera zu öffnen. (I7c2b8)
  • Der StreamState für die Vorschauansicht ist jetzt über CameraView.getPreviewStreamState() verfügbar (I21a2b)

Kamera-Erweiterungen Version 1.0.0-alpha12

10. Juni 2020

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

Fehlerkorrekturen

  • Behebung des Absturzes beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im Modus „Bitte nicht stören“ befindet. Ein InitializationException, das eine CameraUnavailableException enthält, wird auf die ListenableFuture des Initialisierungsergebnisses festgelegt, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)

Kameraansicht – Version 1.0.0-alpha12

10. Juni 2020

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

Fehlerkorrekturen

  • Fügen Sie die PreviewView#getBitmap() API hinzu, die eine Bitmap-Darstellung der Inhalte zurückgibt, die auf der Vorschaufläche angezeigt werden. (I9b500, b/157659818)

Kameraerweiterungen – Version 1.0.0-alpha11

27. Mai 2020

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

Camera-View Version 1.0.0-alpha12

10. Juni 2020

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

Neue Funktionen

API-Änderungen

Fehlerkorrekturen

  • Fügen Sie die PreviewView#getBitmap() API hinzu, die eine Bitmap-Darstellung der Inhalte zurückgibt, die auf der Vorschaufläche angezeigt werden. (I9b500, b/157659818)

Camera-View Version 1.0.0-alpha11

27. Mai 2020

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

API-Änderungen

  • Hinzufügen der PreviewView#getPreviewStreamState API, mit der Apps erkennen können, ob eine Vorschau gestreamt wird oder nicht. Wenn sich die Vorschauansicht im Modus „TEXTURE_VIEW“ befindet, wird durch den Status „STREAMING“ auch sichergestellt, dass das Vorschaubild sichtbar ist. (Ic0906, b/154652477)
  • Die PreviewView#setDeviceRotationForRemoteDisplayMode() API wurde hinzugefügt, um die Gerätedrehung für Transformationsberechnungen bereitzustellen, wenn die Anwendung im Remote-Displaymodus ausgeführt wird. (I59b95, b/153514525)

Fehlerkorrekturen

  • Das Problem mit der Verzerrung der Vorschau bei FULL/LIMITED/LEVEL_3-Kameras mit Android 7.0 und niedriger wurde behoben. Bei Android 7.0 oder niedriger wird der Modus ImplementationMode#TEXTURE_VIEW erzwungen. (I83e30, b/155085307)
  • Der Parameter CameraInfo wurde aus PreviewView#createSurfaceProvider() entfernt. PreviewView ruft ihn jetzt intern aus der SurfaceRequest ab. (If18f0, b/154652477)
  • Das Standardseitenverhältnis von VideoCapture in CameraView wurde auf 16:9 festgelegt. (Ie6a7b, b/153237864)
  • PreviewView Probleme mit dem schwarzen Bildschirm behoben, wenn das Preview-Fragment herausgewischt und dann in ViewPager2 wieder hereingewischt wird. Außerdem wurde das Problem behoben, wenn removeView(previewview) und dann addView(previewView) eingegeben wurde. (Iab555, b/149877652, b/147354615)
  • Aktualisieren Sie die CameraView#takePicture() API, damit Bilder in Uri und OutputStream gespeichert werden können. Aktualisieren Sie die Test-App, um Uri als kanonisches Beispiel zu verwenden. (Ia2459, b/153607583)
  • Sie können den Skalierungstyp der Vorschauansicht über ein 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/abzurufen. (Ia8974, b/153014831)
  • Weisen Sie PreviewView standardmäßig eine Hintergrundfarbe zu, falls noch keine vorhanden ist. So wird verhindert, dass Inhalte dahinter sichtbar sind, bevor der Vorschaustream beginnt. (I09fad)

Kameraerweiterungen – Version 1.0.0-alpha10

15. April 2020

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

Fehlerkorrekturen

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

Kameraansicht – Version 1.0.0-alpha10

15. April 2020

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

Fehlerkorrekturen

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

Camera-Extensions Version 1.0.0-alpha09

1. April 2020

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

Fehlerkorrekturen

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

Kameraansicht – Version 1.0.0-alpha09

1. April 2020:androidx.camera:camera-view:1.0.0-alpha09 wird 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, angehalten wird. Wenn es neu gestartet wird, wird die Kamera wieder geöffnet und es wird möglicherweise versucht, die Vorschau fortzusetzen, bevor die Oberfläche der SurfaceView wieder gültig ist. Vorerst sollten Sie ImplementationMode.TEXTURE_VIEW verwenden.

API-Änderungen

  • PreviewView.setImplementationMode() wurde in PreviewView.setPreferredImplementationMode() umbenannt.
  • PreviewView.getImplementationMode() wurde in PreviewView.getPreferredImplementationMode() umbenannt.
  • PreviewView.getSurfaceProvider() wurde durch PreviewView.createSurfaceProvider(CameraInfo) ersetzt, das eine nullable CameraInfo-Instanz annimmt, um die Vorschau zu optimieren, indem nach Möglichkeit ImplementationMode.SURFACE_VIEW verwendet wird. Wenn eine Nullinstanz ü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 früher 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))
    
  • PreviewView.getSurfaceProvider() wurde die Anmerkung @UiThread hinzugefügt. Das bedeutet, dass es aus dem Hauptthread aufgerufen werden muss. (I192f3)

  • PreviewView.setScaleType() wurde hinzugefügt, mit dem sich der Skalierungstyp der Vorschau festlegen lässt. Es kann einer der Werte in PreviewView.ScaleType sein. 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.

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

Fehlerkorrekturen

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

Camera-Extensions Version 1.0.0-alpha08

26. Februar 2020

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

Camera-View Version 1.0.0-alpha08

26. Februar 2020

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

Fehlerkorrekturen

  • ListenableFuture in SurfaceRequest.provideSurface() wurde durch Executor und Callback ersetzt. Dadurch wird die API vereinfacht, da keine Ausnahmen mehr bei provideSurface() verarbeitet werden müssen und der provideSurface()-Callback nicht mehr abgebrochen werden kann. So werden Abstürze auf älteren Geräten verhindert, die durch eine vorzeitige Freigabe von Oberflächen verursacht werden. Mit dem SurfaceRequest.Result-Objekt wird jetzt nachverfolgt, wie eine 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, das den Standardanbieter CameraXConfig festlegt. (I2d6c1)

Kamera-Erweiterungen – Version 1.0.0-alpha07

10. Februar 2020

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

Fehlerkorrekturen

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

Camera-View Version 1.0.0-alpha07

10. Februar 2020

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

API-Änderungen

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

Fehlerkorrekturen

  • ImageCapture wurde aktualisiert, damit Bilder in Uri und OutputStream gespeichert werden können. Überladene takePicture-Methoden wurden zu einer einzigen Methode kombiniert. Die Test-App wurde aktualisiert, sodass Uri als kanonisches Beispiel verwendet wird. (Ia3bec)
  • Preview.PreviewSurfaceProvider wurde in Preview.SurfaceProvider umbenannt. Für SurfaceProvider müssen Entwickler keine eigenen ListenableFuture mehr erstellen. Die Angabe einer Surface erfolgt jetzt über ein neues SurfaceRequest-Objekt. Die Methode Preview.getPreviewSurfaceProvider() wurde entfernt, da sie möglicherweise missbräuchlich verwendet wird, wenn Preview mit anderen Klassen wie PreviewView gekoppelt ist. (I20105)
  • Die Argumente, die zuvor in ImageCapture.OnImageSavedCallback.onError() und ImageCapture.OnImageCapturedCallback.onError() übergeben wurden, wurden durch ein einzelnes Argument ImageCaptureException ersetzt, das weiterhin alle zuvor übergebenen Informationen enthält.
  • Das Dateiargument, das zuvor in ImageCapture.OnImageSavedCallback.onImageSaved() übergeben wurde, wurde entfernt. (I750d2)
  • Die API wurde aktualisiert. Die Methoden getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() und getLinearZoom() von CameraInfo wurden in getZoomState() zusammengeführt, die eine ZoomState-Instanz zurückgibt. (Ib19fe)

Kameraerweiterungen Version 1.0.0-alpha06

22. Januar 2020

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

Updates

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

Kameraansicht – Version 1.0.0-alpha06

22. Januar 2020

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

Updates

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

Kamera-Erweiterungen Version 1.0.0-alpha05

18. Dezember 2019

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

Fehlerkorrekturen

  • Die API wurde an die internen Camera Core APIs angepasst.

Kameraansicht – Version 1.0.0-alpha05

18. Dezember 2019

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

Bekannte Probleme

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

Neue Funktionen

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

Camera-Extensions Version 1.0.0-alpha04

4. Dezember 2019

androidx.camera:camera-extensions:1.0.0-alpha04 wurde 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. Dabei muss es sich um dieselbe CameraSelector handeln, die zum Binden 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()
    )
    

Kameraansicht-Version 1.0.0-alpha04

4. Dezember 2019

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

API-Änderungen

  • Eine PreviewView-Klasse wird bereitgestellt, um die Ausgabe aus dem Anwendungsfall „Preview“ (Vorschau) in einer Anwendung einfach anzuzeigen.
  • PreviewView kann in das Layout aufgenommen werden:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
       />
    
  • PreviewView bietet eine PreviewSurfaceProvider, mit der sich ein Vorschau-Anwendungsfall ganz einfach verknüpfen lässt.

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

  • Bei einigen Methodenparametern wurde die Nullbarkeit geändert.

Kameraerweiterungen und Kameraansicht – Version 1.0.0-alpha03

9. Oktober 2019

androidx.camera:camera-extensions:1.0.0-alpha03 und androidx.camera:camera-view:1.0.0-alpha03 werden freigegeben. Dies sind die Commits in camera-extensions:1.0.0-alpha03 und dies sind die Commits in camera-view:1.0.0-alpha03.

Neue Funktionen

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

Kameraerweiterungen und Kameraansicht – Version 1.0.0-alpha02

5. September 2019

androidx.camera:camera-extensions:1.0.0-alpha02 und androidx.camera:camera-view:1.0.0-alpha02 werden veröffentlicht. Dies sind die Commits, die in camera-extensions:1.0.0-alpha02 enthalten sind, und die mit "camera-view:1.0.0-alpha02" enthaltenen Commits.

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

Kameraerweiterungen und Kameraansicht – Version 1.0.0-alpha01

7. August 2019

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

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