KameraX

CameraX ist eine Ergänzung von Jetpack, mit der sich Ihrer App Kamerafunktionen leichter hinzufügen lassen. Die Bibliothek bietet eine Reihe von Kompatibilitätskorrekturen und Problemumgehungen, damit die Entwicklerumgebung auf vielen Geräten einheitlich ist.

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

Artefakt Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
Kamera-Kamera2 1.3.3 1.4.0-alpha05
Kamerakern 1.3.3 1.4.0-alpha05
Kameraeffekte 1.4.0-alpha05
Kameraerweiterungen 1.3.3 1.4.0-alpha05
Kameralebenszyklus 1.3.3 1.4.0-alpha05
Kamera-MLkit-Vision 1.3.0-beta02 1.4.0-alpha05
Kameraansicht 1.3.3 1.4.0-alpha05
Kamerasucher 1.3.0-beta02 1.4.0-alpha05
Kamera-Video 1.3.3 1.4.0-alpha05
Diese Mediathek wurde zuletzt am 17. April 2024 aktualisiert

Gerätetests

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

Abhängigkeiten deklarieren

Zum Hinzufügen einer Abhängigkeit von CameraX müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

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

Groovig

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.4.0-alpha05"
  // 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.4.0-alpha05"
    // 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

Dein Feedback hilft uns, Jetpack zu verbessern. Lassen Sie uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie eine neue erstellen. Durch Klicken auf die Stern-Schaltfläche können Sie zu einem vorhandenen Problem abstimmen.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.4

Version 1.4.0-alpha05

17. April 2024

androidx.camera:camera-*:1.4.0-alpha05 wird freigegeben. Version 1.4.0-alpha05 enthält diese Commits.

Neue Funktionen

  • Hinzufügen eines zusammensetzbaren Suchers zur Verwendung mit CameraX oder Camera2 (If79e7)
  • ProcessCameraProvider wurde in eine Kotlin-Implementierung umgewandelt. (I46d4f)
  • ImageCapture.takePicture-Sperrfunktionen wurden hinzugefügt, damit sie Kotlin-idiomatisch aufgerufen werden können. (I920be)

API-Änderungen

  • Fügen Sie ImageCapture API für das Ausgabeformat und zu ImageCaptureCapabilities die Methode getSupportedOutputFormats hinzu, um 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 eingestellt 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 Geräten nahtlos als normales JPEG-Bild dargestellt werden. In Apps und Geräten, die aktualisiert wurden, um das Format vollständig zu unterstützen, werden Bilder im HDR-Format angezeigt. (I5de50)
  • Füge PhysicalCameraInfo zu CameraInfo hinzu, um Informationen zur physischen Kamera abzufragen und den ID-Setter/Getter für physische Kamera in CameraSelector (Ic5b90) hinzuzufügen
  • Ersetzen Sie CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED durch ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. Der Wert der Konstante bleibt gleich. Dies dient der Konsolidierung aller Konstanten an einem Ort. (I890bb)
  • Mit der neuen RetryPolicy API können Entwickler das Wiederholungsverhalten für die CameraX-Initialisierung anpassen. (I36dd2)
  • Erstellung von ImageCaptureLatencyEstimate-Objekten zur Unterstützung der Testbarkeit aktivieren (Iaba99)
  • ImageAnalysis#COORDINATE_SYSTEM_SENSOR hinzufügen. In diesem Fall gibt MlKitAnalyzer die Koordinaten im Koordinatensystem des Kamerasensors zurück. (I3ec61)
  • Exposed Extensions Metadata API Mit den neuen Schnittstellen für CameraExtensionsInfo und CameraExtensionsControl können Anwendungen die Einstellungen für die Effektivität von Erweiterungen im Blick behalten und anpassen. Anwendungen können die Instanz CameraExtensionsInfo oder CameraExtensionsControl über die neu hinzugefügten Methoden ExtensionsManager#getCameraExtensionsInfo() oder ExtensionsManager#getCameraExtensionsControl() abrufen. (I28e1a)
  • ProcessCameraProvider.awaitInstance wurde hinzugefügt. Dies ist eine gesperrte Version von ProcessCameraProvider.getInstance (Ib22b9).
  • Fügen Sie eine PreviewView#getSensorToViewTransform() API hinzu. Die Matrix stellt die Umwandlung der Kamerasensorkoordinaten in die Koordinaten des PreviewView dar. Damit lassen sich Koordinaten von einer UseCase in eine andere umwandeln. Beispielsweise werden die Koordinaten der erkannten Objekte in ImageAnalysis in das Overlay PreviewView umgewandelt. (I947ab)
  • Mache die camera-viewfinder-core API allgemeiner, damit sie von camera-viewfinder und camera-viewfinder-compose verwendet werden kann. (I1e295)
  • Fügen Sie ViewfinderSurfaceRequest die Funktion getSurface hinzu. (I781a0)
  • Verwenden Sie camera-viewfinder-core in camera-viewfinder und verwerfen Sie ViewfinderSurfaceRequest und CameraViewfinder. (I6198c)
  • ZoomGestureDetector wurde hinzugefügt, mit dem Skalierungsgesten interpretiert werden, die speziell für das Zoomen durch Auseinander- und Zusammenziehen konfiguriert sind. (Ifafbf)

Fehlerkorrekturen

  • Das Problem bei der Auswahl der Auflösung von ImageAnalysis im Zusammenhang mit der Standardzielauflösungseinstellung des Analyse-Tools wurde behoben: Die Zielauflösung wurde fälschlicherweise als 640 × 480 beibehalten, auch wenn in Anwendungen eine andere Standardauflösungseinstellung des Analysetools festgelegt war. Wenn bei Anwendungen dieses Problem (1.3.0 bis 1.3.2) auftritt und kein Upgrade auf die neueren Versionen möglich ist, die die Lösung enthalten, kannst du das Problem umgehen, indem du ResolutionSelector direkt mit der bevorzugten Auflösung und eine übereinstimmende AspectRatioStrategy auf ImageAnalysis UseCase setzt. (I81f72, b/330091012)
  • Anfragen vom Typ takePicture, die in die Warteschlange gestellt wurden, konnten nicht ausgeführt werden, wenn die aktuelle Anfrage fehlgeschlagen ist. Dieses Problem wurde behoben. (Ie0801)
  • Wenden Sie die Prüfung auf ungültige JPEG-Daten auf Vivo X60- und X60 Pro-Geräte an. Dadurch können Probleme mit ungewöhnlich großen Bildern auf diesen Geräten behoben werden. (I82247, b/288828159)
  • Das Problem mit den falschen Metadaten von JPEG-Bildern auf Samsung A24-Geräten wurde behoben. Damit kann CameraX das JPEG-Bild speichern oder beim Aufrufen der Funktion ImageProxy.toBitmap() auf Samsung A24-Geräten korrekte Bitmapobjekte zurückgeben. (I8d6eb, b/309005680)
  • Wenden Sie die Prüfung auf ungültige JPEG-Daten auf alle Samsung-Geräte an, wenn das Bild größer als 10 MB ist. Dadurch kann ein ungewöhnlich großes Bildproblem auf Samsung-Geräten behoben werden. (Ic2a65, b/288828159)
  • Die ImageAnalysis-Unterstützung für CameraX-Erweiterungen wurde entfernt, da viele Implementierungen von OEM-Erweiterungen mit ImageAnalysis nicht gut 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 freigegeben. Version 1.4.0-alpha04 enthält diese Commits.

Neue Funktionen

  • Neues Artefakt: Kameraeffekte: 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, die die Kameraausgabe effizient manipulieren.
  • OverlayEffect: zum Zeichnen von Overlays mit der Canvas API von Android Dadurch kann die App ein Wasserzeichen hinzufügen oder erkannte Objekte auf der Kameraausgabe hervorheben.
  • DynamicRange APIs für den Vorschau-Anwendungsfall: Für den Vorschau-Anwendungsfall kann jetzt der dynamische Bereich festgelegt werden, unabhängig vom Video-Anwendungsfall. So sind dynamische HDR-Bereiche wie HLG10 allein für die Vorschau möglich. Neue APIs sind auch in CameraInfo verfügbar, um abzufragen, welche dynamischen Bereiche die einzelnen Kameras unterstützen.

API-Änderungen

  • ScreenFlashUiCompleter wurde in ScreenFlashListener umbenannt und ScreenFlashUiCompleter#getExpirationTimeMillis in den Parameter expirationTimeMillis von ScreenFlash#apply verschoben. (I13944)
  • Es wurden neue APIs hinzugefügt, mit denen der dynamische Bereich im Vorschau-Anwendungsfall festgelegt und die von jeder Kamera unterstützten dynamischen Bereiche abgefragt werden können. Dadurch können dynamische HDR-Bereiche wie HLG10 allein im Vorschauanwendungsfall verwendet werden, ohne dass gleichzeitig ein VideoCapture gebunden werden muss. (If25e3)
  • getMirroring() wurde in isMirroring() (I47063) umbenannt
  • Unterstützung für die Schätzung der Latenz bei der Aufnahme in Echtzeit in CameraX wurde hinzugefügt. Mit Kameraerweiterungen können Anwendungen eine API nutzen, die abschätzen kann, wie lange eine Aufnahme dauern wird. Bei der Schätzung werden die aktuellen Umgebungsbedingungen und der Kamerastatus berücksichtigt. Außerdem wird die Zeit berücksichtigt, die für die Verarbeitung von Aufnahmeanfragen mit mehreren Frames aufgewendet wurde, sowie ggf. die zusätzliche Zeit für die Codierung verarbeiteter Zwischenspeicher. (I05c3a)
  • ScreenFlashUiControl wurde in ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi in ScreenFlash#apply und ScreenFlashUiControl#clearScreenFlashUi in ScreenFlash#clear umbenannt und die Methode getScreenFlashUiApplyTimeoutSeconds wurde hinzugefügt, anstatt SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS direkt anzugeben. (Iccdd0)

Fehlerkorrekturen

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

Version 1.4.0-alpha03

13. Dezember 2023

androidx.camera:camera-*:1.4.0-alpha03 wird freigegeben. 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 Beschränkungen abgespielt werden muss. (Ifda84)
  • OnImageCapturedCallback.onCaptureStarted und OnImageSavedCallback.onCaptureStarted wurden hinzugefügt, um benachrichtigt zu werden, wenn die Kamera mit der Belichtung eines Frames begonnen hat. Es wird empfohlen, das Auslösegeräusch oder die Auslöseanimation an dieser Stelle abzuspielen. (Ic49b3)
  • Kamera X unterstützt jetzt die Funktion „Bildschirmblitz“ für die Aufnahme von Bildern der Frontkamera. CameraX übernimmt die Framework-seitige API-Handhabung und synchronisiert die Zeitangaben je nach Bedarf mit den Änderungen an der Benutzeroberfläche der App (z.B. der AE-Auslöser für die Aufnahme nach einer Änderung der Bildschirmfarbe/Helligkeit des App-Bildschirms). Apps müssen nur ihre Implementierungen auf der Benutzeroberfläche der ScreenFlashUiControl-Schnittstelle hinzufügen, die CameraX zur Verfügung gestellt wird. (I8ae84)
  • Unterstützung für die Implementierung von Bildschirmblitz auf der Benutzeroberfläche in CameraX wurde hinzugefügt. Apps können eine einfache ImageCapture.ScreenFlashUiControl-Implementierung ab PreviewView oder der neu hinzugefügten ScreenFlashView erhalten, die eine einfarbige Overlay-Ansicht ermöglicht und die Bildschirmhelligkeit während der Bildschirmaufnahme von Flash-Fotos maximiert. (I1810e)

API-Änderungen

  • Unterstützt neue Erweiterungsfunktionen(Postview- und Capture-Prozessfortschritt): Es wurden ImageCapture#getImageCaptureCapabilities()-APIs für Apps hinzugefügt, um die Funktionen von Postview abzufragen und den Callback zum Prozessfortschritt zu erfassen. Apps können die PostView mithilfe von ImageCapture.Builder#setPostviewEnabled() aktivieren. Die PostView-Größe kann mithilfe von ImageCapture.Builder#setPostviewResolutionSelector() ausgewählt werden. Beim Aufrufen von takePicture() können onPostviewBitmapAvailable und onCaptureProcessProgressed in OnImageSavedCallback oder OnImageCapturedCallback implementiert werden, um die PostView- und Verarbeitungsfortschrittbenachrichtigungen zu erhalten, sofern dies unterstützt wird. (I5cd88)
  • APIs zur Berechnung der Koordinatentransformation vom Sensor in den aktuellen Zwischenspeicher, mit einer Markierung, die angibt, ob die Oberfläche Informationen zur Kameraausrichtung enthält (I59096)
  • Geben Sie die API in der Vorschau UseCase für die Abfrage von PreviewCapabitlity frei. (Ie5b6c)
  • Es wurden APIs hinzugefügt, um mehr Qualitäten für VideoCapture zu unterstützen. Recorder.Builder#setVideoCapabilitiesSource(int) kann mit VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES verwendet werden, um eine Recorder-Instanz zu erstellen, die mehr Qualitäten als VIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE unterstützt. Ein häufiger Anwendungsfall ist, wenn die App versucht, möglichst UHD-Video aufzuzeichnen, die CamcorderProfile des Geräts jedoch keine UHD-Einstellungen enthält, obwohl der Codec UHD-Videos aufzeichnen kann. (Iedbe2, b/263961771)
  • Fügen Sie CameraController das Ausgabeformat ImageAnalysis als Getter/Setter hinzu. (I9a96c, b/308240643)

Fehlerkorrekturen

  • Von Kamera 1.3.1: Die Leistung von ProcessCameraProvider#bindToLifecycle() wurde verbessert. Die größte Änderung besteht darin, die 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)
  • Verwendung von VideoCapture zulassen, wenn Erweiterungen aktiviert sind. (I91f32)
  • Das Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Serien Samsung A71 und M51 wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante Padding-Daten mit Nullen im komprimierten JFIF-Datensegment. Dies führt dazu, dass die erfassten Bilder eine extrem große Dateigröße haben. Diese redundanten Padding-Daten für Nullen werden entfernt, damit die aufgenommenen Bilder wieder eine normale Bilddateigröße haben. (I01afc, b/288828159)
  • Deaktiviere die ImageAnalysis-Unterstützung auf Pixel, um den Fehler zu vermeiden, der versehentlich die nicht leeren ImageAnalysis unterstützten Größen zurückgibt. (I7ec31)
  • Leistungsproblem behoben, bei dem die CPU-Auslastung und der Stromverbrauch bei aktivierten Erweiterungen zugenommen haben. (Ibdccb)
  • Snapdragon 480 wurde dem CameraUseInconsistentTimebaseQuirk hinzugefügt. Dadurch wird auf Geräten mit diesem Chipsatz unter Android 12 ein Problem behoben, bei dem die Audiospur in Aufnahmen durch die Dauer des gesperrten Geräts kompensiert wird. (I58010)

Version 1.4.0-alpha02

18. Oktober 2023

androidx.camera:camera-*:1.4.0-alpha02 wird freigegeben. 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 hinzufügen, um die Gerätefunktion abzufragen und die Video-/Vorschaustabilisierung zu aktivieren (I87544)
  • Geben Sie eine API zum Anpassen der Öffnungszeit für die Kamera an. (I0c642)
  • Veröffentlichung von ProcessCameraProvider.shutdownAsync als öffentliche Test-API, damit Prozesskamera-Anbieter in Testsuiten verwendet werden können, die CameraX zwischen den Tests möglicherweise auf unterschiedliche Weise initialisieren müssen. (I9eca7)
  • Füge APIs hinzu, um den dynamischen Bereich für die Videoaufnahme, die Framerate und den Spiegelungsmodus zu konfigurieren. (Ifb8f7)
  • Verwerfen Sie OutputSize und ersetzen Sie ihn durch ResolutionSelector. ResolutionSelector ist eine umfassendere Möglichkeit zur Auswahl von Auflösungen und entspricht der API des Kamerakerns. (I93abd, b/286801438)

Fehlerkorrekturen

  • Das Problem mit der schwarzen Vorschau auf dem Samsung Galaxy S23 Ultra 5G, wenn Bokeh- oder Gesichtsretusche für Erweiterungen mit ImageAnalysis auf der Rückkamera aktiviert war, wurde behoben. (I2e8b1)
  • Probleme mit der Vorschau und VideoCapture Verlängerung auf Moto E5 Play wurden behoben. (73dce2)

Version 1.4.0-alpha01

20. September 2023

androidx.camera:camera-*:1.4.0-alpha01 wird freigegeben. Version 1.4.0-alpha01 enthält diese Commits.

API-Änderungen

  • Füge eine neue API hinzu, um während der Aufnahme auf Informationen zu Audio-Amplituden 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)
  • Es wurde ein Fehler bei der Konfiguration der Aufzeichnungssitzung behoben, der auf die Überschreitung der unterstützten Oberflächenkombination zurückzuführen war, da intern eine zusätzliche sich wiederholende Oberfläche hinzugefügt wurde. (Id718c)
  • Das Problem mit großen aufgenommenen JPEG-Bildern auf dem Vivo S16-Gerät wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante Padding-Daten mit Nullen im komprimierten JFIF-Datensegment. Dadurch sind die erfassten Bilder sehr groß. Diese redundanten Padding-Daten für Nullen werden entfernt, damit die aufgenommenen Bilder wieder eine normale Bilddateigröße haben. (I79505, b/299069235)
  • Das Problem, dass ImageAnalysis nicht mit ImageCapture und der Vorschau verbunden werden konnte, wenn auf einigen Geräten einige Erweiterungsmodi aktiviert waren, wurde behoben. Zur Problembehebung wird der richtige Wert zurückgegeben, wenn die ImageAnalysis-Verfügbarkeit über ExtensionsManager#isImageAnalysisSupported() von Apps abgefragt wird. (I7d538)
  • Aktualisieren Sie JavaDoc, um das Verhalten anzupassen. Anstatt den Vorgang sofort abzuschließen, warten #setZoomRatio, #setLinearZoom und #enableTorch, bis die Kamera bereit ist. Außerdem wurden Informationen zum Erreichen des maximalen Sichtfelds mit der #takePicture API hinzugefügt. (I23588)

Version 1.3

Version 1.3.3

17. April 2024

androidx.camera:camera-*:1.3.3 wird freigegeben. Version 1.3.3 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem bei der Auswahl der Auflösung von ImageAnalysis im Zusammenhang mit der Standardzielauflösungseinstellung des Analyse-Tools wurde behoben: Die Zielauflösung wurde fälschlicherweise als 640 × 480 beibehalten, auch wenn in Anwendungen eine andere Standardauflösungseinstellung des Analysetools festgelegt war. Wenn dieses Problem bei Anwendungen auftritt (1.3.0 bis 1.3.2) und kein Upgrade auf die neueren Versionen möglich ist, die die Lösung enthalten, kann das Problem durch direktes Festlegen eines ResolutionSelector mit der bevorzugten Auflösung und einer passenden AspectRatioStrategy auf den Anwendungsfall ImageAnalysis umgangen werden. (I81f72, b/330091012)

Version 1.3.2

6. März 2024

androidx.camera:camera-*:1.3.2 wird freigegeben. Version 1.3.2 enthält diese Commits.

Fehlerkorrekturen

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

Version 1.3.1

13. Dezember 2023

androidx.camera:camera-*:1.3.1 wird freigegeben. Version 1.3.1 enthält diese Commits.

Fehlerkorrekturen

Die Leistung von ProcessCameraProvider#bindToLifecycle() wurde verbessert. Die größte Änderung besteht darin, die 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 bis 60 ms
    • Samsung Galaxy S23 Ultra: ca. 540 ms bis 45 ms
    • Samsung A53 5G: ca. 115 bis 70 ms
  • Drei UseCases: Preview + ImageCapture + ImageAnalysis

    • Google Pixel 7: ca. 9 ms bis 7 ms
    • Samsung Galaxy S23 Ultra: ca. 6 bis 5 ms
    • Samsung A53 5G: ca. 32 bis 12 ms
  • Snapdragon 480 wurde dem CameraUseInconsistentTimebaseQuirk hinzugefügt. Dadurch wird auf Geräten mit diesem Chipsatz unter Android 12 ein Problem behoben, bei dem die Audiospur in Aufnahmen durch die Dauer des gesperrten Geräts kompensiert wird. (I58010)

Version 1.3.0

18. Oktober 2023

androidx.camera:camera-*:1.3.0 wird freigegeben. 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 freigegeben. Version 1.3.0-rc02 enthält diese Commits.

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. Dadurch wurden einige Probleme mit der schwarzen Vorschau behoben, die beim Wechsel des Erweiterungsmodi oder der Kamera aufgetreten sind. Iddaac
  • Das Problem, dass ImageAnalysis nicht mit ImageCapture und der Vorschau verbunden werden konnte, wenn auf einigen Geräten einige Erweiterungsmodi aktiviert waren, wurde behoben. Zur Problembehebung wird der richtige Wert zurückgegeben, wenn die ImageAnalysis-Verfügbarkeit über ExtensionsManager#isImageAnalysisSupported() von Apps abgefragt wird. (I7d538)
  • Audio- und Videoaufzeichnungen waren nicht synchron, wenn der Spiegelungsmodus auf Xiaomi Poco X3 NFC aktiviert war. Dieses Problem wurde behoben. (I20b4c)

Version 1.3.0-rc01

23. August 2023

androidx.camera:camera-*:1.3.0-rc01 wird freigegeben. Version 1.3.0-rc01 enthält diese Commits.

API-Änderungen

  • PendingRecording.asPersistentRecording wurde hinzugefügt, damit eine Aufzeichnung kontinuierlich aufgezeichnet wird, während die VideoCapture, mit der der Rekorder verbunden ist, wieder aufgenommen wird. (I517c6)

Fehlerkorrekturen

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

Version 1.3.0-beta02

26. Juli 2023

androidx.camera:camera-*:1.3.0-beta02 wird freigegeben. Version 1.3.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Taschenlampe als Blitz für Pixel 4 und Pixel 5 verwenden, um die Aufnahmequalität bei wenig Licht zu verbessern (I56ff5, b/280221967)
  • Das Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Serie Samsung A5 (2017) wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante Padding-Daten mit Nullen im komprimierten JFIF-Datensegment. Dadurch haben die erfassten Bilder eine Dateigröße von etwa 32 MB. Diese redundanten Padding-Daten für Nullen werden entfernt, damit die aufgenommenen Bilder wieder eine normale Bilddateigröße haben. (I29837, b/288828159)
  • Ein Problem wurde behoben, bei dem die Wiederholungsversuche bei einem Aufnahmefehler bei problematischen Geräten, die in CaptureFailedRetryQuirk erwähnt wurden, nicht ordnungsgemäß ausgelöst wurden. (I7b589)

Version 1.3.0-beta01

21. Juni 2023

androidx.camera:camera-*:1.3.0-beta01 wird freigegeben. Version 1.3.0-beta01 enthält diese Commits.

API-Änderungen

  • Der Name der ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)-Funktion wurde in setAllowedResolutionMode umbenannt und die ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON-Konstanten in PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE umbenannt. (If84e8)
  • Die verworfenen APIs ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int) und VideoCapture.setTargetRotationDegrees(int) wurden entfernt. (Id8e77)
  • Die Klasse DynamicRange stellt den dynamischen Bereich von Bildern dar. Kann verwendet werden, um High Dynamic Range-Formate als Ausgabe von VideoCapture bis VideoCapture.Builder#setDynamicRange() auszuwählen. (Ib0377)
  • Der ExtensionsManager wurde eine isImageAnalysisSupported API hinzugefügt. Über diese API können Apps feststellen, ob ein ImageAnalysis-Anwendungsfall verknüpft werden kann, zusammen mit der Vorschau und ImageCapture, wenn Erweiterungen aktiviert sind. (I1bc63)
  • Mit der neuen Klasse VideoCapabilities aus dem Recorder können unterstützte dynamische Bereiche und Qualitäten für die Videoaufnahme auf dem Gerät abgefragt werden. Die Methoden getSupportedQualities() und isQualitySupported() von QualitySelector werden eingestellt. Verwende stattdessen die Methoden getSupportedQualities() und isQualitySupported() von VideoCapabilities. (I04014)
  • CameraController#setVideoCaptureTargetQuality() wurde in setVideoCaptureQualitySelector umbenannt und verwendet das Argument QualitySelector, das mehr Flexibilität bei der Einrichtung der Videoqualität bietet. CameraController#getVideoCaptureTargetQuality() wird entsprechend zu getVideoCaptureQualitySelector geändert. (I520ed)
  • Die experimentelle Anmerkung für Videofunktionen wurde entfernt. Die Videofunktionen sind jetzt stabil. (I1a113)

Fehlerkorrekturen

  • Auf Samsung SM-A320-Modellen als Blitzlicht verwenden, um bei schlechten Lichtverhältnissen die Geschwindigkeit und die Bildqualität zu verbessern (I6a022, b/286190938)
  • ImageFormat.JPEG-Formatunterstützung für ImageProxy.toBitmap() hinzufügen. Wenn das JPEG-Bytearray nicht decodiert werden kann, wird ein UnsupportedOperationException ausgegeben. (I81958, b/282057603)

Version 1.3.0-alpha07

24. Mai 2023

androidx.camera:camera-*:1.3.0-alpha07 wird freigegeben. Version 1.3.0-alpha07 enthält diese Commits.

Neue Funktionen

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

API-Änderungen

  • Die ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON-Konstanten wurden in ALLOWED_RESOLUTIONS_NORMAL/SLOW umbenannt und der Name der Builder-Funktion setHighResolutionEnabledFlag in setAllowedResolutionMode wurde umbenannt. (Iae817)
  • CameraInfo#getSupportedFrameRateRanges() gibt jetzt Set statt List zurück, um besser darzustellen, dass die Bereiche unsortiert sind. (I02f43)
  • Fügen Sie CameraEffect einen Fehler-Listener hinzu, um nicht behebbare Fehler zu verarbeiten (Ice471).
  • Fügen Sie zur besseren Testbarkeit einen öffentlichen Konstruktor in ResolutionInfo hinzu (If6d1c)
  • Eine API UseCase.snapToSurfaceRotation(int) wurde 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 enthält jetzt den Fehlercode ERROR_RECORDING_GARBAGE_COLLECTED, wenn das Recording-Objekt aufgrund der automatischen Speicherbereinigung beendet wird. (Iba974)

Fehlerkorrekturen

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

Version 1.3.0-alpha06

19. April 2023

androidx.camera:camera-*:1.3.0-alpha06 wird freigegeben. Version 1.3.0-alpha06 enthält diese Commits.

Neue Funktionen

  • Die gleichzeitige Kamera ist eine neue Funktion, die ab Android 11 eingeführt wurde und das gleichzeitige Streaming von Kamerageräten unterstützt. So können auf einem Gerät beispielsweise die Front- und Rückkamera gleichzeitig laufen. CameraX unterstützt derzeit nur zwei Kameras gleichzeitig. Das ermöglicht die gleichzeitige Nutzung von zwei Kameras mit maximal zwei {@link UseCase}s. Die maximale Auflösung beträgt 720p oder 1440p. Weitere Informationen finden Sie im folgenden Link: CameraManager#getConcurrentCameraIds()
  • Die neue ResolutionSelector API unterstützt die folgenden Funktionen:
    • Anwendungen können Strategien für das Seitenverhältnis und die Auflösung festlegen, um die beste Auflösung für ihre Anforderungen auszuwählen.
    • Alle Parameter für Größe und Seitenverhältnis werden in den Koordinaten des Gerätesensors der Kamera angegeben.
    • Anwendungen können einen benutzerdefinierten Auflösungsfilter implementieren, um die unterstützten Größen in der gewünschten Reihenfolge anzuordnen.
    • Anwendungen können auch Aufnahmen in hoher Auflösung ermöglichen, um Bilder mit höherer Auflösung zu erhalten. Beachten Sie jedoch, dass die Aufnahme einer hohen Auflösung länger dauern kann.
    • VideoCapture Spiegelungs-APIs 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 kann bei Verwendung der Frontkamera eine Ausrichtung auf die Kameravorschau vorgenommen werden. Es gibt drei MirrorMode, OFF, ON und ON_FRONT_ONLY. Zum Ausrichten an der Kameravorschau empfiehlt sich die Verwendung von ON_FRONT_ONLY. Das bedeutet, dass die Spiegelung nicht für die Rückkamera, aber für die Frontkamera aktiviert ist.

API-Änderungen

  • Neue ResolutionSelector API freigegeben. In Anwendungen können mithilfe von Fallback-Regeln oder einem benutzerdefinierten Auflösungsfilter Strategien für das Seitenverhältnis und die Auflösung festgelegt werden, um die gewünschten Ergebnisse zu erzielen. Anwendungen können ein Flag angeben, um eine Aufnahme in hoher Auflösung zu ermöglichen. So kann CameraX bei der Aufnahme von Fotos oder Videos höhere Auflösungen auswählen. Beachten Sie jedoch, dass die Aufnahme einer hohen Auflösung länger dauern kann. (Ibed95)
  • Die vom AE-Algorithmus unterstützten fps-Bereiche können jetzt über CameraInfo#getSupportedFrameRateRanges() abgefragt werden. (Iaa67f)
  • Fassen Sie die Namen aller Framerate-Methoden mithilfe von 'FrameRate' zusammen. Korrigieren Sie den Javadoc-Fehler in VideoCapture#getTargetFrameRate() (I83304)
  • Die alte setTargetAspectRatio- und setTargetResolution-API wurde verworfen. Verwenden Sie stattdessen die neue ResolutionSelector API. (I542c3)
  • Es wurden öffentliche APIs für die gleichzeitige Verwendung von zwei Kameras hinzugefügt, einschließlich
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn() und ConcurrentCameraConfig, SingleCameraConfig und ConcurrentCamera (Iab1c1)
  • ImageProcessor.Response#getOutputImage als Nicht-Null festlegen (Ib9c60)
  • VideoCapture Spiegelungs-APIs hinzugefügt, einschließlich VideoCapture.Builder.setMirrorMode(int) und VideoCapture.getMirrorMode(). Die APIs sind nützlich für Anwendungen, bei denen die Videoaufzeichnung mit dem üblichen Vorschauverhalten der Kamera übereinstimmen muss, d.h., die Vorschau der Rückkamera wird nicht gespiegelt, aber die Frontkamera-Vorschau gespiegelt. (I713b6, b/194634656)
  • Fügen Sie die setTargetFrameRate() API in der VideoCapture.Builder und der getTargetFramerate() API in VideoCapture hinzu (I109d4).
  • Machen Sie SurfaceOutput, die Closable erweitert, und blenden Sie den öffentlichen Konstruktor von SurfaceOutput.Event aus. (I60ea8)
  • Recording.mute wurde hinzugefügt, um eine Aufzeichnung während der Verarbeitung dynamisch stummzuschalten oder die Stummschaltung aufzuheben. RecordingStats enthält AudioStats.AUDIO_STATE_MUTED, wenn die laufende Aufzeichnung explizit stummgeschaltet wird. (Ie17fc)
  • Der Parameter #setEffects() wurde auf den Wert null gesetzt. Füge eine #clearEffects() API zum Entfernen von Effekten hinzu. Die App sollte #clearEffects() aufrufen, um Effekte zu entfernen. (I4b4d9)
  • Fügen Sie einen zweiten Konstruktor für ViewfinderSurfaceRequest.Builder hinzu, um einen Builder für den Kopierkonstruktor zu verwenden (I621a7).

Fehlerkorrekturen

  • Apps, die die Extensions API aufrufen, konnten beim Schließen der Kamera abstürzen (Ib27e5). Dieses Problem wurde behoben.
  • Das Problem, dass „VideoCapture“ auf einigen Geräten mit der Frontkamera nicht funktioniert hat, wurde behoben. Beispiel auf dem Samsung Galaxy S23 und dem Xiaomi 2107113SG. (Ibec7e, b/270656244)
  • Das Problem, dass die Aufnahme von Bildern mit der Datei „Datei“ im öffentlichen externen Speicherordner unter Android 10 oder höher immer fehlgeschlagen ist, wurde behoben. Bitte beachten Sie, dass unter Android 10 für die Aufnahme von Bildern mit der Datei „Datei“ im öffentlichen Ordner des externen Speichers außerdem requestLegacyExternalStorage im App-Tag auf „true“ gesetzt werden muss. (I11b2c)
  • Ein RejectedExecutionException-Absturz in DefaultSurfaceProcessor wurde behoben. Der Absturz könnte auftreten, wenn VideoCapture gebunden ist und die Aktivität pausiert wird. (Idb46a, b/273713906)

Version 1.3.0-alpha05

22. März 2023

androidx.camera:camera-*:1.3.0-alpha05 wird freigegeben. Version 1.3.0-alpha05 enthält diese Commits.

API-Änderungen

  • VideoCapture Rotations-APIs hinzugefügt, einschließlich VideoCapture.Builder.setTargetRotation(int), VideoCapture.setTargetRotation(int), VideoCapture.setTargetRotationDegrees(int) und VideoCapture.getTargetRotation(). Die APIs sind nützlich für Anwendungen, die die Geräteausrichtung sperren. ImageCapture.setTargetRotationDegrees(int) und ImageAnalysis.setTargetRotationDegrees(int) 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 geteilten Stream angewendet, bevor sie in die Vorschau und den VideoCapture-Stream kopiert werden. (Iee6f3)

Fehlerkorrekturen

  • Von Kamera 1.2.2: Das Problem, dass CameraX-Erweiterungen auf einigen Geräten wie Pixel (I90aa2) nicht richtig funktionierten, wenn Proguard aktiviert war, wurde behoben.
  • Ein PreviewView-Fehler wurde behoben, bei dem die Vorschau beim Drehen verzerrt werden kann, wenn die App die Bildschirmausrichtung selbst übernimmt. Das passiert nur auf bestimmten Geräten. Es kann auf Pixel a4, Pixel 5 und Pixel 6a reproduziert werden. (I14340, b/223488673)

Version 1.3.0-alpha04

22. Februar 2023

androidx.camera:camera-*:1.3.0-alpha04 wird freigegeben. Version 1.3.0-alpha04 enthält diese Commits.

Neue Funktionen

Eine neue Funktion, mit der bisher nicht unterstützte Oberflächenkombinationen durch die gemeinsame Nutzung eines Streams für mehrere Anwendungsfälle unterstützt werden.

  • Bisher hat CameraX beim Binden von „Preview, VideoCapture, ImageAnalysis“ auf Kamerahardwareebene VOLL und darunter oder bei Bindung von „Preview, VideoCapture, ImageCapture“ auf Hardwareebene LEGACY IllegalArgumentException ausgelöst.
  • Das neue Verhalten besteht darin, dass die Bindungen funktionieren, ohne Ausnahmen auszulösen. Stattdessen verwendet CameraX OpenGL, um einen freigegebenen Stream sowohl in die Vorschau als auch in VideoCapture zu kopieren.
  • Da die Kosten für das Kopieren des Zwischenspeichers anfallen, können die Latenz und der Stromverbrauch der Anwendung steigen.

API-Änderungen

  • Füge eine API hinzu, um ImageProxy in Bitmap zu konvertieren. Das unterstützte ImageProxy-Format ist ImageFormat.YUV_420_888 und PixelFormat.RGBA_8888. Wenn das Format ungültig ist, wird IllegalArgumentException ausgelöst. (Ic7110)
  • CoroutineCameraViewfinder wurde hinzugefügt, um die Konfiguration des Suchers mithilfe von Sperrfunktionen in Kotlin zu unterstützen. (I657bc)
  • Neuen öffentlichen Konstruktor für ViewfinderSurfaceRequest hinzufügen. Sie bietet die Flexibilität, wenn der Nutzer CameraCharacteristics nicht angeben kann. (Ie6549)

Fehlerkorrekturen

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

Version 1.3.0-alpha03

25. Januar 2023

androidx.camera:camera-*:1.3.0-alpha03 wird freigegeben. Version 1.3.0-alpha03 enthält diese Commits.

API-Änderungen

  • CameraInfo.getIntrinsicZoomRatio wurde hinzugefügt, um Informationen zum Blickwinkel relativ zur Standardkamera bereitzustellen. (Ib300c)
  • CameraInfo.getLensFacing wurde hinzugefügt, um Informationen zur Objektivausrichtung bereitzustellen. CameraSelector#LENS_FACING_EXTERNAL wurde als experimentelle Funktion zur Auswahl externer Kameras hinzugefügt. (Icaf3e)
  • Füge #setEffect() zu CameraController hinzu, um Effekte zur Kameraausgabe hinzuzufügen. (I1d21f)
  • Fügen Sie die Methode invalidate() zu SurfaceRequest hinzu. Der Anbieter von Oberflächen kann Ihnen mitteilen, dass die zuvor bereitgestellte Oberfläche nicht mehr gültig ist. (Idc649)
  • Fügen Sie eine ImageProcessor API hinzu. Diese Schnittstelle dient zum Einfügen von Nachbearbeitungseffekten in die ImageCapture-Pipeline. (I575c6)
  • Die API „Recorder.Builder.setAspectRatio()“ wurde hinzugefügt, die mit QualitySelector kombiniert werden kann, um noch mehr Videoauflösungen zu unterstützen. (I8a082)
  • Recorder.Builder#setTargetVideoEncodingBitRate wurde hinzugefügt, um BitRate und Recorder#getTargetVideoEncodingBitRate für die Zielvideocodierung festzulegen, um die Bitrate der Zielvideocodierung zu erhalten. (I5984d)

Fehlerkorrekturen

  • ImageCapture ist fehlgeschlagen, wenn keine Blitzeinheit vorhanden und der Blitzmodus aktiviert ist. (I9e8b4, b/263391112)
  • Das Problem mit Beschädigungen von JPEG-Bildern beim Schreiben von EXIF-Standortdaten auf einigen Samsung Android 12-Geräten wurde behoben. (Ib7086, b/263747161, b/263289024)
  • Wenn die Taschenlampe bzw. der Zoom vor den Compelets für die Kamerainitialisierung eingestellt wird (z. B. beim Aufrufen von CameraController#enableTorch), wird die ausstehende Aktion im Cache gespeichert und gesendet, sobald die Initialisierung abgeschlossen ist. (I11e92, b/264157663)

Version 1.3.0-alpha02

7. Dezember 2022

androidx.camera:camera-*:1.3.0-alpha02 wird freigegeben. 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 Videoaufnahme zu verarbeiten. Die Annotation @RequiresPermission wird von startRecording-Funktionen in AudioConfig verschoben, um unnötige Berechtigungsanfragen für Fälle zu vermeiden, in denen kein Audio benötigt wird. (I28755)
  • Entfernt die Klassen „Metadata“ sowie die Klassen OnVideoSavedCallback, OutputFileOptions und OutputFileResults, die nach Anwendung der neuen Videoaufnahme-API nicht mehr verwendet werden. (I38cd8)
  • Wenden Sie die neue Video Capture API an. Die Methoden getVideoCaptureTargetSize und setVideoCaptureTargetSize werden durch die Methoden getVideoCaptureTargetQuality und setVideoCaptureTargetQuality ersetzt, da setTargetResolution nicht mehr unterstützt wird. (I2a1d5)

Fehlerkorrekturen

  • Verworfene core.VideoCapture API entfernen. (I531e0)
  • Das Problem, dass der onError-Callback bei Fotos ohne Speicherberechtigung nicht aufgerufen wurde (I936db, b/244807669) wurde behoben.
  • Verbessern Sie die Qualität und Zuverlässigkeit von Kameraerweiterungen. Kameraerweiterungen sind auf Motorola-Geräten mit Kameraerweiterungen v1.1.0 und älter deaktiviert, da Probleme mit der Bokeh-Unterstützung, der Bildaufnahme und der Fortsetzung der Vorschau auftreten können. (Id3ce3)
  • Der native Absturz wurde behoben, wenn das Zuschneiden von Videos über ViewPort auf älteren Geräten aktiviert ist. (I16b8a, b/251357665)

Version 1.3.0-alpha01

9. November 2022

androidx.camera:camera-*:1.3.0-alpha01 wird freigegeben. Version 1.3.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Camera-viewfinder wurde offiziell veröffentlicht. Camera-viewfinder bietet ein Basissucher-Widget, mit dem der Kamerafeed der Camera2 angezeigt werden kann. Im Beispielcode finden Sie ein Beispiel.

API-Änderungen

  • OutputOptions.setDurationLimit wurde hinzugefügt, um das Festlegen der Dauer von Videos zu ermöglichen. Die Aufzeichnung wird automatisch abgeschlossen, wenn die angegebene Dauer überschritten wird. (I902a0)
  • Audiofehlerstatus für Videoaufnahme hinzufügen: AudioStats.AUDIO_STATE_SOURCE_ERROR. Wird gesendet, wenn die Einrichtung der Audioquelle fehlschlägt oder ein Fehler auftritt. (I37410)

Fehlerkorrekturen

  • Füge etwas Eigenheiten hinzu, damit bei problematischen Geräten ein neuer Aufnahmeversuch möglich ist, wenn Aufnahmefehler auftreten. (Id4795)
  • Problem mit dem schwarzen Bildschirm bei der Implementierung von PreviewView SurfaceView auf ViewPager2 beheben. Im Rahmen der Korrektur verwendet PreviewView die SurfaceView wieder, wenn die angeforderte Auflösung nicht geändert wird. (Ib3f27)
  • Das Zuschneiden von Videos (WYSIWYG-Funktion) wird unterstützt, wenn die ViewPort- oder CameraController-API verwendet wird. (Ifbba8, b/201085351)
  • Ein Problem mit der Frontkamera, das auf dem Huawei P40 Lite aufgenommen wurde, wurde behoben. (I87c57, b/250807400)

Version 1.2

Version 1.2.3

24. Mai 2023

androidx.camera:camera-*:1.2.3 wird freigegeben. Version 1.2.3 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem, dass „VideoCapture“ auf einigen Geräten mit der Frontkamera nicht funktioniert hat, wurde behoben. Beispiel auf dem Samsung Galaxy S23 und dem Xiaomi 2107113SG. (Ibec7e, b/270656244)

Version 1.2.2

22. März 2023

androidx.camera:camera-*:1.2.2 wird freigegeben. Version 1.2.2 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem CameraX-Erweiterungen auf einigen Geräten wie Pixel (I90aa2) nicht richtig funktionierten, wenn Proguard aktiviert war

Version 1.2.1

25. Januar 2023

androidx.camera:camera-*:1.2.1 wird freigegeben. Version 1.2.1 enthält diese Commits.

Fehlerkorrekturen

  • Problem mit Beschädigung von JPEG-Bildern beim Schreiben von EXIF-Standortdaten auf einigen Samsung Android 12-Geräten wurde behoben. (b/263289024)

Version 1.2.0

7. Dezember 2022

androidx.camera:camera-*:1.2.0 wird freigegeben. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • Neue Bibliothek „kamera-mlkit-vision“. CameraX lässt sich ganz einfach in viele MLKit-Funktionen wie Barcode-Scanning, Gesichtserkennung, Texterkennung usw. einbinden. MLKitAnalyzer wurde als neue APIs hinzugefügt.
  • Neue experimentelle Zero-Shutter Lag API Optimiert die Erfassungspipeline für eine bessere Latenz bei gleichbleibender Bildqualität. Wenn der Aufnahmemodus auf CAPTURE_MODE_ZERO_SHUTTER_LAG eingestellt ist, wird die Latenz zwischen dem Klicken auf den Auslöser und der Aufnahme des Bildes im Vergleich zu anderen Aufnahmemodi voraussichtlich minimiert. Auf Geräten, die ZERO_SHUTTER_LAG nicht unterstützen, wird auf CAPTURE_MODE_MINIMIZE_LATENCY zurückgesetzt.
  • android.camera.core.VideoCapture wird eingestellt.
  • setStreamUseCase() wurde als öffentliche Camera2Interop API hinzugefügt.
  • Für setOutputImageRotationEnabled wurde eine API-Level-Anforderung 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.
  • Niedrige Framerate bei Verwendung von VideoCapture und der Vorschau in Anwendungsfällen mit einem Seitenverhältnis von 16:9 wurde korrigiert
  • Es wurde ein Problem mit der schwarzen Vorschau behoben, das auftrat, wenn die BOKEH-Erweiterung auf einigen Samsung-Geräten aktiviert war und der Nutzer die Kameras wechselte.
  • Das Problem mit den erweiterten erweiterten Funktionen von Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) Preview/VideoCapture auf Geräten mit API-Level 27 wurde behoben.
  • Die Problemumgehung zum horizontalen Umdrehen des AF-Bereichs der Frontkameras von 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 freigegeben. 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-Anwendungsfall für die Streamsitzung angeben und so die interne Logik von CameraX überschreiben, um den Anwendungsfall „Stream“ zu wählen und ihn entsprechend seiner Anforderungen zu optimieren. (Ib1a95)

Fehlerkorrekturen

  • Das Problem mit den erweiterten erweiterten Funktionen von Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) Preview/VideoCapture auf Geräten mit API-Level 27 wurde behoben. Bei einer Auflösung von 1920 x 1080 werden die Preview/VideoCapture-Bilder gestreckt. Es wurde eine Problemumgehung hinzugefügt, um nicht die Auflösung 1920 x 1080 für die Vorschau oder VideoCapture auszuwählen, um ein Problem mit gedehnten Bildern zu vermeiden. (I0e04e)
  • Eine niedrige Framerate bei Verwendung von VideoCapture und der Vorschau in Anwendungsfällen mit einem Seitenverhältnis von 16:9 auf einigen Huawei-Geräten wurde behoben. (If8c88, b/223643510)
  • Ein Fehler beim Öffnen der Kamera wurde behoben, wenn „SurfaceProvider“ der Vorschau nicht festgelegt war. Im Rahmen dieser Problembehebung wird jetzt keine Vorschau ohne SurfaceProvider in der Kameraaufnahme konfiguriert. (I99681)

Version 1.2.0-beta02

21. September 2022

androidx.camera:camera-*:1.2.0-beta02 wird freigegeben. Version 1.2.0-beta02 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Die Problemumgehung zum horizontalen Umkehren des AF-Bereichs der Frontkameras von Samsung Android T wurde deaktiviert, da das Problem behoben wurde. (I05f69)
  • Das Problem mit der schwarzen Vorschau, das auftrat, wenn die Erweiterung BOKEH auf einigen Samsung-Geräten aktiviert war und Nutzer die Kameras wechseln, wurde behoben. (If6168)

Version 1.2.0-beta01

24. August 2022

androidx.camera:camera-*:1.2.0-beta01 wird freigegeben. Version 1.2.0-beta01 enthält diese Commits.

Neue Funktionen

  • Neue Mediathek: camera-mlkit-vision. CameraX lässt sich ganz einfach in viele MLKit-Funktionen wie Barcode-Scanning, Gesichtserkennung, Texterkennung usw. einbinden. Hier finden Sie den Beispielcode.
  • Neue experimentelle Zero-Shutter Lag API. Optimiert die Erfassungspipeline für eine bessere Latenz bei gleichbleibender Bildqualität. Wenn der Aufnahmemodus auf CAPTURE_MODE_ZERO_SHUTTER_LAG eingestellt ist, wird die Latenz zwischen dem Klicken auf den Auslöser und der Aufnahme des Bildes im Vergleich zu anderen Aufnahmemodi voraussichtlich minimiert. Auf Geräten, die ZERO_SHUTTER_LAG nicht unterstützen, wird auf CAPTURE_MODE_MINIMIZE_LATENCY zurückgesetzt.
  • ImageAnalysis.Analyzer und MLKitAnalyzer wurden als offizielle APIs eingeführt.
  • Exposed API zum Festlegen von Standortmetadaten für das gespeicherte Video.
  • Benennen Sie ImageAnalysis.Analyzer#getTargetResolutionOverride() in ImageAnalysis.Analyzer#getDefaultTargetResolution() um.

Fehlerkorrekturen

  • Das Bilderfassungsproblem von Alps k61v1_basic_ref wurde behoben. Die aufgenommenen JPEG-Bilder von HAL haben falsche EXIF-Metadaten. Die EXIF-Metadaten enthalten nicht das Tag 0xffd9 oder 0xffda, damit ExifInterface die Attribute korrekt parsen kann. Um dieses Problem zu umgehen, nehmen Sie die Bilder im YUV-Format auf und komprimieren sie dann als JPEG-Ausgabebilder. (I45abb)

Version 1.2.0-alpha04

27. Juli 2022

androidx.camera:camera-*:1.2.0-alpha04 wird freigegeben. Version 1.2.0-alpha04 enthält diese Commits.

API-Änderungen

  • Benennen Sie ImageAnalysis.Analyzer#getTargetResolutionOverride() in ImageAnalysis.Analyzer#getDefaultTargetResolution() um. Das Verhalten wird ebenfalls so geändert, dass der von dieser Methode zurückgegebene Wert mit dem Wert von ImageAnalysis#setTargetResolution() überschrieben werden kann. (If1d36)
  • Exposed 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

  • Beheben Sie das Problem beim Aufnehmen eines Bilds mit aufgehobener Vorschau (Ie70b6, b/235119898).
  • Das Problem mit einem Absturz in Recorder wurde behoben, wenn versucht wurde, eine Aufnahme durchzuführen, während die Audioquelle nicht verfügbar war. (I9f652)

Version 1.2.0-alpha03

29. Juni 2022

androidx.camera:camera-*:1.2.0-alpha03 wird freigegeben. Version 1.2.0-alpha03 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Neues Standardzeitlimit für den Autofokus von 5.000 ms hinzugefügt, das den AF-Teil mit isFocusSuccessful falsch beendet, wenn FocusMeteringAction nicht abgebrochen wird und der AF-Teil in der Dauer nicht konvergiert wird. (Ibc2e3)
  • Problem beim Aufnehmen eines Bildes mit aufgehobener Vorschau (I1d3a2, b/235119898) beheben
  • Erweiterte Extender-Implementierung wurde aktiviert und die CameraX-Support-Extension-Interface-Version wurde auf 1.2 aktualisiert (I92256).

Version 1.2.0-alpha02

1. Juni 2022

androidx.camera:camera-*:1.2.0-alpha02 wird freigegeben. Version 1.2.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Verwenden Sie die CameraX Zero-Shutter Lag API als experimentell.

API-Änderungen

  • Füge einen neuen Aufnahmemodus CAPTURE_MODE_ZERO_SHUTTER_LAG in ImageCapture und isZslSupported in CameraInfo hinzu, um die Gerätefunktion abzufragen. Im CAPTURE_MODE_ZERO_SHUTTER_LAG-Modus wird versucht, die minimale Latenz für Sofortaufnahmen zu gewährleisten. Sie wird auf Grundlage eines Ringpuffers implementiert, der Aufnahmeergebnisse zwischenspeichert, um sie später erneut zu verarbeiten, wenn der Nutzer Schaltflächen zum Aufnehmen von Bildern drückt. Wenn {@link VideoCapture} gebunden, der Blitzmodus nicht deaktiviert oder die OEM-Erweiterung aktiviert ist, wird dieser Modus automatisch deaktiviert. (I9ae74)
  • Methode ImageAnalysis.getBackgroundExecutor() hinzufügen (Icc945)

Fehlerkorrekturen

  • Das Problem mit der "takePicture-Methode" von ImageCapture wurde behoben, durch die die Taschenlampe auf den gemeldeten Geräten ausgeschaltet wurde. (Ib5eb5, b/228272227)
  • Es wurde ein Fehler behoben, bei dem AssertionError beim Abrufen des CONTROL_ZOOM_RATIO_RANGE-Attributs nicht verarbeitet wurde.(/Ia248a, b/231701345)

Version 1.2.0-alpha01

18. Mai 2022

androidx.camera:camera-*:1.2.0-alpha01 wird freigegeben. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Neue Bibliothek „kamera-mlkit-vision“

Fehlerkorrekturen

  • Problem behoben, bei dem QualitySelector kein UHD-Video aufzeichnet, wenn eine Fallback-Strategie aktiviert ist. Das Problem tritt auf, wenn VideoCapture an ImageCapture gebunden ist und in der Vorschau auf einem Kameragerät auf Hardwareebene oder höher ist. Die Fallback-Strategie „QualitySelector“ führt dazu, dass VideoCapture fälschlicherweise eine FHD-Auflösung erhält. Die UHD-Auflösung wird für diese Anwendungsfallkombination unterstützt und sollte verwendet werden. (I0e788, b/230651237)
  • Problem mit NullPointerException am ImageCapture.takePicture() behoben. (I92366, b/230454568, b/229766155)
  • Asynchrones Pausenverhalten von androidx.camera.video.Recorder (Ia8ce8) korrigieren

Kamera-Kamera2, Kamerakern, Kameralebenszyklus und Kamera-Video-Version 1.1.0

Version 1.1.0

29. Juni 2022

androidx.camera:camera-*:1.1.0 wird freigegeben. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.0.0

  • „Landed View“, „Extension“ und „Video Capture“ als erste RC-Version. Ab 1.1.0-beta01 haben alle CameraX-Bibliotheken dieselbe Versionsnummer. Dies wird Entwicklern helfen, Versionen viel einfacher zu verfolgen und die Komplexität großer Versionskompatibilitätsmatrizen zu reduzieren.
  • Einführung neuer öffentlicher APIs und Funktionen, darunter:
  • Fügen Sie die offizielle Mediathek für Kameravideos hinzu, um Anwendungsfälle für Videoaufnahmen zu unterstützen.
  • Konvertierung und Rotation von YUV in RGB (ImageAnalysis.Builder.setOutputImageRotationEnabled und setOutputImageFormat)
  • Sie können den Mehrfenstermodus unterstützen, indem Sie zulassen, dass CameraX-Apps die Kamera fortsetzen, wenn die Kamera durch eine andere App unterbrochen wird und der Fokus wieder fokussiert ist.
  • Durch Behebung einiger Probleme mit der Vorschau wird sichergestellt, dass CameraX auf faltbaren Geräten gut funktioniert.
  • Eine CameraState API wurde hinzugefügt, die über CameraInfo verfügbar gemacht wird.
  • Die API ProcessCameraProvider.getAvailableCameraInfos() wurde hinzugefügt, um Informationen zu den verfügbaren Kameras direkt abzurufen.
  • JPEG-Ausgabeformat für ImageCapture#OnImageCapturedCallback, wenn Erweiterungen aktiviert sind
  • Die API „isFocusMeteringSupported“ wurde zu CameraInfo hinzugefügt. Damit können Anwendungen prüfen, ob die angegebene FocusMeteringAction von der aktuellen Kamera unterstützt wird.
  • Gefährdete getResolutionInfo API zur Bereitstellung der Auflösungsinformationen für die Vorschau, ImageCapture und ImageAnalysis.
  • Es wurde eine neue API ImageCapture.Builder#setJpegQuality hinzugefügt, die das Ändern der JPEG-Ausgabekomprimierungsqualität bei der Aufnahme von Bildern ermöglicht.
  • CameraSelector#filter wurde der öffentlichen API hinzugefügt, um eine Liste von CameraInfos basierend auf einem CameraSelector zu filtern.
  • Camera2CameraControl.clearCaptureRequestOptions zum Löschen der vorhandenen Optionen für Aufnahmeanfragen wurde hinzugefügt.
  • Es wurde eine experimentelle API zur Verwendung von CameraController mit externen Bildverarbeitungsbibliotheken hinzugefügt, z. B.MLKit.
  • Die experimentelle API CameraInfo#getCameraSelector() wurde hinzugefügt, die eine CameraSelector eindeutig für die Kamera zurückgibt
  • Mehrere experimentelle APIs wurden zu formalen öffentlichen APIs hochgestuft
  • Die Annotation @Experimental wurde in den experimentellen APIs durch @RequiresOptIn ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle des verworfenen Objekts androidx.annotation.experimental.UseExperimental.
  • Die folgenden experimentellen APIs wurden auf offizielle APIs hochgestuft: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(),
  • @ExperimentalCameraFilter APIs
  • oder experimenteller Expositionskompensation.
  • Wir haben die experimentelle UseCaseGroup API für Kamerakern, Kameralebenszyklus und Kameravideo beworben. ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection und ViewPort.Builder#setScaleType zum Anpassen des Darstellungsbereichs hinzugefügt.
  • Die ExperimentalUseCaseGroupLifecycle wurde zu formalen öffentlichen APIs hochgestuft.
  • Änderungen an den vorhandenen APIs
  • Zum MediaStoreOutputOptions.getCollectionUri Renamed MediaStoreOutputOptions.getCollection.
  • ActiveRecording wurde in „Aufzeichnung“ umbenannt, um die Ausführlichkeit zu reduzieren.
  • QualitySelector Creator API wurde in eine listenbasierte API geändert

Fehlerkorrekturen

  • Das Problem YuvToJpegProcessor EOFException wurde behoben, wenn der Erweiterungsmodus aktiviert und der ImageCapture#CAPTURE_MODE_MAX_QUALITY-Modus festgelegt wurde.
  • Fehler bei der Codec-Konfiguration, da die Videoaufzeichnung beendet wurde
  • Das Seitenverhältnis von Vorschau und Video bei Aufzeichnung in FHD wurde korrigiert.
  • Audio/Video wurde auf einigen Geräten nach Pausieren und Fortsetzen nicht synchron abgespielt.
  • Ein Problem wurde behoben, bei dem der Blitz beim Tippen zum Fokussieren (startFocusAndMetering) ausgelöst wurde, wenn der Blitzmodus automatisch oder bei wenig Licht auf „Always_on“ eingestellt war.

Version 1.1.0-rc02

1. Juni 2022

androidx.camera:camera-*:1.1.0-rc02 wird freigegeben. Version 1.1.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Problem mit NullPointerException am ImageCapture.takePicture() behoben. (I92366, b/230454568, b/229766155)
  • Es wurde ein Fehler behoben, bei dem AssertionError beim Abrufen des CONTROL_ZOOM_RATIO_RANGE-Merkmals nicht verarbeitet wurde. (Ia248a, b/231701345)

Version 1.1.0-rc01

11. Mai 2022

androidx.camera:camera-*:1.1.0-rc01 wird freigegeben. Version 1.1.0-rc01 enthält diese Commits.

Neue Funktionen

  • Erste RC-Version für Kameravideo, Kameraansicht und Kameraerweiterung veröffentlichen

Fehlerkorrekturen

  • Der Video-Codec wurde nicht freigegeben, als VideoCapture<Recorder> gebunden wurde. Dadurch schlugen nachfolgende Verwendungen von VideoCapture<Recorder> bei der Aufnahme mit MediaCodec.CodecException fehl, insbesondere auf API 21-22-Geräten. (Ie7f68)
  • Probleme mit aufgenommenen Bildern von CameraExtensionsActivity wurden in ImageCaptureTest nicht gelöscht

Version 1.1.0-beta03

6. April 2022

androidx.camera:camera-*:1.1.0-beta03 wird freigegeben. Version 1.1.0-beta03 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Das Problem, dass die Vorschau in PreviewView zur Seite wurde, wenn Aktivität nach rotierenden Geräten im Mehrfenstermodus nicht neu gestartet wurde, wurde behoben. (I1ea36, b/223488673)
  • Ein Problem mit dem Mehrfenstermodus wurde behoben, bei dem die Kamera nicht wieder aktiviert wird, wenn der Fokus wieder auf die App gesetzt wird, wenn (1) eine andere App mit hoher Priorität eine andere Kamera öffnet (2) es sich um Android 12-Geräte von Samsung handelt. (I7e9f2)
  • Eine Problemumgehung ist für Geräte enthalten, die bei der Überprüfung der Flash-Verfügbarkeit abstürzen. Auf diesen Geräten ist keine Taschenlampe verfügbar. (If26a3, b/216667482)
  • Problem „AbstractMethodError“ wurde behoben, wenn Apps Erweiterungen verwenden und Proguard aktiviert wurde. (I7cbaf, b/222726805)
  • Erzwingen Sie die Deaktivierung des Bokeh-Erweiterungsmodus auf einem Motorola Razr 5G-Gerät, was zu Problemen mit dem schwarzen Vorschaubildschirm führt. (I35d49)
  • Audio/Video wurde auf einigen Samsung-Geräten vor API-Version 29 nach Pausieren und Fortsetzen nicht synchron wiedergegeben. (I64622, b/202798609, b/202798572)
  • Audio und Video waren auf dem Sony G3125 nach Pausieren und Fortsetzen nicht synchron. (I2a1a5, b/202799148)
  • Ein Absturz wurde behoben, wenn im Rekorder ein InvalidConfigException erkannt wurde. Diese Korrektur verhindert jedoch nur den Absturz der App, behebt jedoch nicht die Ursache des InvalidConfigException-Fehlers. Wenn Recorder immer noch nicht konfiguriert werden kann, erhalten Anwendungen einen Fehler-Callback, wenn sie mit der Aufzeichnung beginnen. (I89c29, b/213617227)

Externer Beitrag

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

Version 1.1.0-beta02

23. Februar 2022

androidx.camera:camera-*:1.1.0-beta02 wird freigegeben. Version 1.1.0-beta02 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

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

Version 1.1.0-beta01

26. Januar 2022

androidx.camera:camera-*:1.1.0-beta01 wird freigegeben. Version 1.1.0-beta01 enthält diese Commits.

Neue Funktionen

  • Ab 1.1.0-beta01 haben alle CameraX-Bibliotheken dieselbe Versionsnummer. Dies wird Entwicklern helfen, Versionen viel einfacher zu verfolgen und die Komplexität der Kompatibilitätsmatrix für größere Versionen zu verringern.

API-Änderungen

  • Camera2CameraControl.clearCaptureRequestOptions zum Löschen der vorhandenen Optionen für Aufnahmeanfragen wurde hinzugefügt. (Ifa07d)

Fehlerkorrekturen

  • Der Absturz beim Aufzeichnen des Videos auf einigen Geräten vor Android O(API 26) wurde behoben. (I88fdf, b/212328261)
  • Das Problem mit dem falschen AF-Bereich bei Verwendung von cameraControl#startFocusAndMetering() mit der Kamera auf der Frontlinse von Samsung-Geräten wurde behoben (Ifbf59, b/210548792).
  • Auf Pixel 3a und Pixel 3a XL die Taschenlampe als Blitz verwenden, um die Geschwindigkeit und die Qualität der Aufnahme bei Dunkelheit zu verbessern (Ib12b6, b/211474332)
  • Aktivierte Anwendungen, die die Kamera fortsetzen, wenn die Kamera im Mehrfenstermodus von einer anderen Anwendung mit höherer Priorität unterbrochen wird und der Fokus wieder auf die Anwendung wechselt. Aufgrund eines Framework-Problems kann eine gewisse Latenz(1 bis 10 Sekunden oder mehr) zwischen Fokusänderungen und dem erneuten Öffnen der Kamera auftreten. (I4d092)

Version 1.1.0-alpha12

15. Dezember 2021

androidx.camera:camera-*:1.1.0-alpha12 wird freigegeben. Version 1.1.0-alpha12 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Das Problem, dass Fotos im Modus FLASH_AUTO bei dunklen Lichtverhältnissen unterbelichtet waren, wurde auf Pixel 3a und Pixel 3a XL (I13f19, b/205373142) behoben.
  • Immer die neueste Anzeigegröße zur Bestimmung der Vorschau-Resolution verwenden. (I4a694)
  • Herausgefilterte Kameras ohne REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. Kameras mit REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE haben die Mindestfunktionen, die von jeder Kamera unterstützt werden. Eine Kamera ohne REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE ist möglicherweise eine Kamera, die besondere Funktionen und keine Standardfarbausgabe unterstützt. CameraX unterstützt die Anwendungsfälle Preview, ImageCapture, ImageAnalysis oder VideoCapture für diese Kameras nicht. Diese Kameras sollten daher herausgefiltert werden, um eine falsche Verwendung zu verhindern. Ib8cda
  • CameraSelector#filter gibt kein IllegalArgumentException mehr aus, wenn die Ergebnismenge leer ist. (I27804)
  • Anhand der vom OEM angegebenen Profile werden jetzt Encoder-Einstellungen mithilfe intelligenterer Heuristiken ausgewählt. (Iaeef0)
  • Nach dem Start der UHD-Videoaufnahme auf Pixel1 werden in der festen Vorschau verschachtelte Farblinien angezeigt. (I833c6, b/205340278)

Version 1.1.0-alpha11

17. November 2021

androidx.camera:camera-*:1.1.0-alpha11 wird freigegeben. Version 1.1.0-alpha11 enthält diese Commits.

API-Änderungen

  • CameraSelector#filter wurde der öffentlichen API hinzugefügt, um eine Liste von CameraInfos basierend auf einem CameraSelector zu filtern. (I105d0)
  • Fügen Sie die setOutputImageRotationEnabled API für die ImageAnalysis-Konfiguration hinzu. Der Nutzer kann die Rotation für YUV/RGB-Bildzwischenspeicher aktivieren. Der Grad der Drehung ist eine relative Drehung, die auf der Sensor- und Zieldrehung berechnet wird, um das Bild vorne zu halten.

  • Fügen Sie die setOutputImageRotationEnabled API für die ImageAnalysis-Konfiguration hinzu. Der Nutzer kann die Rotation für YUV/RGB-Bildzwischenspeicher aktivieren. Der Grad der Drehung ist eine relative Drehung, die auf der Sensor- und Zieldrehung berechnet wird, um das Bild vorne zu halten.

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

  • Es wurde eine neue API „ImageCapture.Builder#setJpegQuality“ hinzugefügt, die das Ändern der JPEG-Ausgabekomprimierungsqualität bei der Bildaufnahme ermöglicht. I8dcf4.

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

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem der Blitz ausgelöst wurde, wenn der Blitz durch Tippen (startFocusAndMetering) fokussiert wurde (startFocusAndMetering), wenn der Blitzmodus in Umgebungen mit wenig Licht automatisch oder immer aktiviert war. (Id4c11)
  • HDR+ wurde auf Pixel 2 XL / Pixel 3 XL im Modus MINIMIZE_LATENCY deaktiviert, um die Latenz zu verringern. (Ib6270, b/203505523)

Externer Beitrag

Version 1.1.0-alpha10

13. Oktober 2021

androidx.camera:camera-*:1.1.0-alpha10 wird freigegeben. Version 1.1.0-alpha10 enthält diese Commits.

Neue Funktionen

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

API-Änderungen

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

Fehlerkorrekturen

  • Lösen Sie eine InitializationException aus, damit die App den beim Erstellen von CameraCharacteristics aufgetretenen AssertionError problemlos 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 wurden veröffentlicht. Version 1.1.0-alpha09 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Beheben Sie das Problem, bei dem aufgenommene Fotos im MAXIMIZE_QUALITY-Modus unkenntlich gemacht wurden. (I173a9, b/193823892)
  • Problem mit dem Samsung Galaxy J5 behoben, bei dem die Kamera nach dem Aufnehmen von Bildern mit eingeschaltetem Blitz/automatischem Blitz in dunkler Umgebung hängen geblieben ist (I3aab9)
  • Wenn für ImageCapture ein Zuschneiden erforderlich ist, wird das zugeschnittene Ausgabebild mit der angegebenen JPEG-Qualität gemäß dem festgelegten Erfassungsmodus 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

  • Die setOutputImageFormat API wurde für die Bildanalysekonfiguration hinzugefügt. Nutzer können „ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888“ oder „ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888“ auswählen. Standardmäßig ist ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 ausgewählt. (I7902d)

API-Änderungen

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

Fehlerkorrekturen

  • Fester Vorschaubildschirm ist beim Huawei P20 Lite zu hell. Dieses Problem tritt nur auf, wenn bestimmte Sonderauflösungen der Vorschau zusammen mit einem großen Wert für die Heranzoomen verwendet werden. (Idefce, b/192129158)
  • Der Blitz funktionierte auf einigen Geräten nicht, wenn der Blitzmodus kurz auf FLASH_MODE_ON eingestellt und danach Bilder aufgenommen wurden. Dieses Problem wurde behoben. (Ieb49b)
  • Das Problem, dass die Vorschau beim Aufnehmen von Bildern eine Zeit lang angehalten wurde, wenn VideoCapture, ImageCapture und Vorschau gebunden sind, wurde behoben. (I56197, b/193864120)
  • ImageAnalysis kann eine Auflösung auswählen, die größer als 1080p ist. Ein Gerät mit LIMITED höher kann eine Auflösung von RECORD für ImageAnalysis unterstützen, wenn es mit Preview und ImageCapture verknüpft ist. Der Nachteil: Die ausgewählte Auflösung für ImageCapture muss ebenfalls eine RECORD-Auflösung sein. Um für ImageAnalysis eine RECORD-Größenauflösung erfolgreich auszuwählen, sollte sowohl für ImageCapture als auch für ImageAnalysis eine Zielauflösung von RECORD mit einer Größe festgelegt werden. Dies weist darauf hin, dass die Anwendung die Kompromisse genau versteht und für ImageAnalysis eine höhere Auflösung als für ImageCapture bevorzugt, um eine Maximalauflösung zu haben. Die Definitionen von RECORD, MAXIMUM Größen und weitere Informationen findest du unter https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-record. Die RECORD-Größe bezieht sich auf die maximal vom CamcorderProfile unterstützte Aufnahmeauflösung des Kamerageräts. Die Größe MAXIMUM bezieht sich auf die maximale Ausgabeauflösung der Kamera für dieses Format oder Ziel aus StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
  • Fügen Sie dem aufgenommenen Bild die EXIF-Informationen hinzu. (I01ff0, b/193342619)
  • Geben Sie in ImageCapture den URI des gespeicherten Bildes zurück, wenn der Speicherort "File" ist. (Ib5b49, b/149241379)
  • Mit Flash aufgenommene Bilder sind auf vielen Geräten dunkel. Dieses Problem wurde behoben. (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

  • Es wurde ein Problem mit dem Samsung Galaxy Note 5 behoben, bei dem die Kamera nach der Aufnahme von Bildern mit eingeschaltetem Blitz/automatisch in dunkler Umgebung nicht weiter reagiert hat (If6871).
  • Das Problem YuvToJpegProcessor EOFException 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

  • Die experimentellen Expositionskompensations-APIs für den Kamerakern (I08ee8) hochstufen
  • In CameraInfo wurde die API „isFocusMeteringSupported“ hinzugefügt, mit der Anwendungen prüfen können, ob die FocusMeteringAction von der aktuellen Kamera unterstützt wird oder nicht. (Ib45ae, b/188606490)
  • Gefährdete getResolutionInfo API zur Bereitstellung der Auflösungsinformationen für Preview, ImageCapture und ImageAnalysis. (I2b613, b/188600718)
  • Die folgenden experimentellen APIs wurden auf offizielle APIs hochgestuft: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor()I2CameraXConfig#getSchedulerHandler().2
  • Die CameraProvider-Schnittstelle wurde offengelegt, um Zugriff auf eine Reihe von Kameras zu gewähren. (I1a7b1)
  • Die experimentelle UseCaseGroup API für Kamerakern, Kameralebenszyklus und Kameravideo bewerben ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection und ViewPort.Builder#setScaleType zum Anpassen des Darstellungsbereichs hinzugefügt. (I7cee8)

Version 1.1.0-alpha05

2. Juni 2021

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

API-Änderungen

  • Camera2CameraFilter Kurs wurde entfernt. Schlagt vor, die Kamera nach CameraFilter auszuwählen und dann bei Bedarf über Camera2CameraInfo Informationen zu „CameraCharacteristics“ oder „Camera2“ abzurufen. (Ib887c)
  • ExperimentalCameraFilter APIs haben die experimentelle Phase durchlaufen und werden zu formalen APIs. Sie können ohne kommentiertes Opt-In verwendet werden. (I4bc94)
  • Kamerastatus-API hinzugefügt, die über CameraInfo#getCameraState() freigegeben ist. (Ia86b4)
  • Die experimentelle API CameraInfo#getCameraSelector() wurde hinzugefügt, die einen für die Kamera eindeutigen CameraSelector (I77f9f) zurückgibt.

Fehlerkorrekturen

  • Problem behoben, bei dem ListenableFuture, das in setZoomRatio und setLinearZoom zurückgegeben wurde, auf einigen Android 11-Geräten nicht abgeschlossen werden konnte (I716d7)
  • Beschleunigen Sie den Kamerawechsel und verringern Sie die Fehlerrate bei der Kamera (I34c99).
  • „ExperimentalUseCaseGroupLifecycle“ wurde durch „ExperimentalUseCaseGroup“ ersetzt. (I3b2ef, b/159033688)

Version 1.1.0-alpha04

21. April 2021

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

Fehlerkorrekturen

  • Ein Speicherleck wurde behoben, das durch den gleichzeitigen Zugriff mehrerer Threads auf dieselbe Sammlung verursacht wurde. Das Speicherleck kann dazu führen, dass die Aktivität oder das Fragment von einer Vorschauinstanz beibehalten wird. (I7b4b8)
  • Die Annotation @Experimental wurde in den experimentellen APIs durch @RequiresOptIn ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle des verworfenen androidx.annotation.experimental.UseExperimental. (Iff226)
  • Ein Fehler bei der Bilderfassung mit aktiviertem Blitz / „Automatisch“ macht verwaschene Bilder auf dem Samsung Galaxy S7 korrigiert. (I30001)
  • Eine CameraState API wurde hinzugefügt, die über CameraInfo verfügbar gemacht wird. (I75392)

Version 1.1.0-alpha03

24. März 2021

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

Fehlerkorrekturen

  • JPEG-Ausgabeformat für ImageCapture#OnImageCapturedCallback, wenn Erweiterungsmodus aktiviert ist (I0d7b1)
  • Ein Fehler bei der Initialisierung auf UMIDIGI BISON-Geräten wurde behoben (I57d9e, b/180818665)
  • Problem mit der gestreckten Vorschau auf dem Samsung A3 in der Vorschauansicht 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 wurden veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • CameraX versucht jetzt, das Öffnen einer Kamera beim ersten Versuch zu erzwingen. Dies kann dazu führen, dass CameraX die Kamera von anderen Kamera-Clients wegnimmt, wenn die zugehörige App eine höhere Priorität hat. (Iab069, b/175820568)
  • Der Robolectric-Testfehler bei der Verwendung von setAvailableCamerasLimiter in CameraXConfig wurde behoben. (Ice307)
  • Mit dieser Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis das Limit erreicht hat. Anstelle eines Absturzes kann es vorkommen, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene/verzögerte Vorschau. (Ic12da, b/175851631)
  • Fehlerkorrektur für ExtensionsErrorListener, sodass jetzt Fehler gemeldet werden, wenn nur Preview oder ImageCapture gebunden ist. (I5ae39)
  • Der Leistungsabfall von ImageCapture wurde durch Entfernen der Validierung des gespeicherten Bildstandorts vor der Aufnahme eines Bildes behoben. Wenn Sie diese Änderung vorgenommen haben und das Speicherziel ungültig ist, dauert es länger, bis Sie die Fehlerantwort erhalten, da versucht wird, das Bild nach der Aufnahme des Fotos zu speichern. (I1fd4e, b/177061560)
  • Der Leistungsabfall von ImageCapture mit OutputFileOptions vom Typ "File" wurde behoben. (I5164a, b/177061560)
  • Die Dokumentation wurde aktualisiert, sodass die Verwendung von ProcessCameraProvider.configureInstance(...) aus dem Bibliothekscode nicht empfohlen wird. (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

  • Eine Problemumgehung ist enthalten, wenn auf der rückseitigen Kamera SM-G930T zeitweise beschädigte JPEG-Bilddaten verwendet werden. (I52001, b/159831206)
  • IllegalArgumentException-Problem behoben, das auftrat, wenn alle in der Vorschau unterstützten Größen kleiner als 640 x 480 und Anzeigegröße größer als 640 x 480 waren. (I2a63c, b/150506192)
  • Ressourcen in Bibliotheken ohne explizit deklarierte öffentliche Ressourcen (z. B. über public.xml) sind jetzt standardmäßig privat. (Ia1dcc, b/170882230)

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

Fehlerkorrekturen

  • Beheben Sie das Problem, bei dem aufgenommene Fotos im MAXIMIZE_QUALITY-Modus unkenntlich gemacht wurden. (I173a9, b/193823892)
  • Mit Flash aufgenommene Bilder sind auf vielen Geräten dunkel. Dieses Problem wurde behoben. (I4e510)

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

Fehlerkorrekturen

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

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

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

Hauptfunktionen von Version 1.0.0

  • CameraX unterstützt Vorschau, Bilderfassung und Analyse
  • CameraX verwaltet den Lebenszyklus der Kamera über eine nutzerfreundliche API.
  • CameraX soll eine Kompatibilitätsebene bereitstellen, die viele Probleme der Android-Kamera-Umgebung behebt.

Bekannte Probleme

Version 1.0.0-rc05

21. April 2021

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

Fehlerkorrekturen

  • Ein Fehler bei der Bilderfassung mit aktiviertem Blitz / „Automatisch“ macht verwaschene Bilder auf dem Samsung Galaxy S7 korrigiert. (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 wurden veröffentlicht. Version 1.0.0-rc04 enthält diese Commits.

Fehlerkorrekturen

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

Version 1.0.0-rc03

24. Februar 2021

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

Fehlerkorrekturen

  • Formatfehler im Dokument von ProcessCameraProvider#getInstance beheben
  • Der Robolectric-Testfehler bei der Verwendung von setAvailableCamerasLimiter in CameraXConfig wurde behoben.
  • Der Leistungsabfall von ImageCapture wurde durch Entfernen der Validierung des gespeicherten Bildstandorts vor der Aufnahme eines Bildes behoben. Wenn Sie diese Änderung vorgenommen haben und das Speicherziel ungültig ist, dauert es länger, bis Sie die Fehlerantwort erhalten, da versucht wird, das Bild zu speichern, nachdem das Foto aufgenommen wurde.
  • Mit dieser Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis das Limit erreicht hat. Anstelle eines Absturzes kann es vorkommen, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene/verzögerte Vorschau.
  • Eine Problemumgehung ist enthalten, wenn auf der rückseitigen Kamera SM-G930T zeitweise beschädigte JPEG-Bilddaten verwendet werden. (I52001, b/159831206)
  • Mit dieser Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis das Limit erreicht hat. Anstelle eines Absturzes kann es vorkommen, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene/verzögerte Vorschau. (Ic12da, b/175851631)
  • Der Robolectric-Testfehler bei der Verwendung von setAvailableCamerasLimiter in CameraXConfig wurde behoben. (Ice307)
  • Der Leistungsabfall von ImageCapture wurde durch Entfernen der Validierung des gespeicherten Bildstandorts vor der Aufnahme eines Bildes behoben. Wenn Sie diese Änderung vorgenommen haben und das Speicherziel ungültig ist, dauert es länger, bis Sie die Fehlerantwort erhalten, da versucht wird, das Bild nach der Aufnahme des Fotos zu speichern. (I1fd4e, b/177061560)
  • Der Leistungsabfall von ImageCapture mit OutputFileOptions vom Typ "File" wurde behoben. (I5164a, b/177061560)

Version 1.0.0-rc02

27. Januar 2021

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

Fehlerkorrekturen

  • Ein Problem mit dem Fehler " fügen" wurde behoben , falls alle in der Vorschau unterstützten Größen kleiner als 640 x 480 und die Anzeigegröße größer als 640 x 480 waren. (b/150506192)
  • Begrenzen Sie die Anzahl der Versuche zum erneuten Öffnen der Kamera. KameraX versucht nicht mehr, die Kamera auf unbestimmte Zeit wieder zu öffnen, um bestimmte Probleme beim Öffnen der Kamera wiederherzustellen. Stattdessen wird sie nach 10 Sekunden abgebrochen.I435d2

  • IllegalArgumentException-Problem behoben, das auftrat, wenn alle in der Vorschau unterstützten Größen kleiner als 640 x 480 und Anzeigegröße größer als 640 x 480 waren. (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 wurden veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

API-Änderungen

  • CameraFilter und Camera2Filter wurden so geändert, dass sie in CameraInfo aufgenommen werden. (I6883d)
  • Die experimentelle Klasse Camera2CameraControl wurde hinzugefügt, um die dynamische Zusammenarbeit mit Camera2 APIs zu ermöglichen. (I45cf3)
  • Kamera2CameraInfo#fromCameraInfo wurde in #from umbenannt. (Ia2bd6)
  • Eine experimentelle API vom Typ „setAvailableCamerasLimiter“ wurde zu CameraXConfig hinzugefügt. Damit können Apps die Initialisierungslatenz optimieren, indem nicht verwendete Kameras nicht initialisiert werden. (I6cf88)
  • Die experimentelle Methode CameraXConfig.Builder#setMinimumLoggingLevel() wurde hinzugefügt, um das Festlegen einer Mindestprotokollstufe für CameraX-Protokolle zu ermöglichen. Wenn nichts festgelegt ist, wird standardmäßig Log#DEBUG verwendet. (Ic3245)

Fehlerkorrekturen

  • Eine Problemumgehung ist enthalten, wenn auf der rückseitigen Kamera SM-G930V zeitweise beschädigte JPEG-Bilddaten verwendet werden. (I5aca5, b/159831206)
  • Das Problem, dass beim Aufnehmen von Bildern keine Ergebnisse angezeigt werden, wenn der Blitz immer/an ist und die Umgebung auf Samsung SM-A716-Geräten dunkel ist, wurde behoben. (If98b2, b/172036589)
  • Das Problem, dass die Vorschau durch Aufrufen von Preview.setSurfaceProvider(null) nicht beendet werden konnte, wurde behoben. (I3ac18)
  • Ein Ausrichtungsproblem bei der Aufnahme von Bildern im Seitenverhältnis 4:3 auf einigen Geräten wurde behoben. (I0e3fb, b/171492111)

Camera Camera2, Core und Lifecycle Version 1.0.0-beta12

11. November 2020

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

Fehlerkorrekturen

  • Der automatische Blitz auf Samsung A3-Geräten wurde deaktiviert, um den Absturz beim Aufnehmen eines Fotos mit dem automatischen Blitz (AE-Modus) auf Samsung A3-Geräten zu beheben. (Ia5fe3, b/157535165)
  • Auf Nexus 4-Geräten mit Android L (API-Level 21 und 22) wurde die Vorschau gedehnt. Das Problem wurde behoben. (I4d407, b/158749159)
  • Bei der Implementierung der OnImageCapturedCallback#onCaptureSuccess-Basisklasse wird das Image nicht mehr geschlossen. So soll unerwartetes Verhalten von Entwicklern verhindert werden. Entwickler sollten sich beim Schließen des Images nicht auf super.onCaptureSuccess verlassen. (Ifbf9c)
  • Die Androidx-Variante der experimentellen Annotation wurde verworfen, um sie an Kotlin anzupassen. Sie wurde durch die Annotation „AnforderungsOptIn“ ersetzt und der Java-Linter wurde aktualisiert, um sowohl die neue Kotlin-Annotation als auch die neue androidx-Variante zu unterstützen. (I52495, b/151331381)

Kamera-Kamera2 Version 1.0.0-beta11

14. Oktober 2020

androidx.camera:camera-camera2:1.0.0-beta11 wird freigegeben. Version 1.0.0-beta11 enthält diese Commits.

Neue Funktionen

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

Fehlerkorrekturen

  • Das Problem mit dem NumberFormatException-Fehler wurde behoben, wenn die Kamera-ID keine Ganzzahl ist. (Ib2228)
  • Die Latenz bei CameraX-Initialisierung und bindToLifecycle (I61dc5) wurde verbessert.
  • Die Erstellung von Anwendungsfällen erfordert keine Initialisierung von CameraX. Alle implementierungsspezifischen Konfigurationen werden für den Anwendungsfall festgelegt, sobald er mit einer Kamerainstanz verknüpft ist, für die die öffentliche API ProcessCameraProvider.bindToLifecycle() ist. (Ia5411)
  • <UseCase>.getTargetRotation() gibt bei Aufruf Surface.ROTATION_0 zurück, bevor es an eine Kamerainstanz angehängt wird, es sei denn, für den Builder oder Anwendungsfall wurde eine targetRotation festgelegt. (I80fcd)

Kamera-Core-Version 1.0.0-beta11

14. Oktober 2020

androidx.camera:camera-core:1.0.0-beta11 wird freigegeben. Version 1.0.0-beta11 enthält diese Commits.

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

Fehlerkorrekturen

  • Das Problem mit dem NumberFormatException-Fehler wurde behoben, wenn die Kamera-ID keine Ganzzahl ist. (Ib2228)
  • Die Erstellung von Anwendungsfällen erfordert keine Initialisierung von CameraX. Alle implementierungsspezifischen Konfigurationen werden für den Anwendungsfall festgelegt, sobald er mit einer Kamerainstanz verknüpft ist, für die die öffentliche API ProcessCameraProvider.bindToLifecycle() ist. (Ia5411)
  • <UseCase>.getTargetRotation() gibt bei Aufruf Surface.ROTATION_0 zurück, bevor es an eine Kamerainstanz angehängt wird, es sei denn, für den Builder oder Anwendungsfall wurde eine targetRotation festgelegt. (I80fcd)

Kamera-Core-Version 1.0.0-beta10

23. September 2020

androidx.camera:camera-core:1.0.0-beta10 wird freigegeben. Version 1.0.0-beta10 enthält diese Commits.

Fehlerkorrekturen

  • Fehler beim Validieren des Dateispeicherziels für die Bildaufnahme behoben (I8c565, b/167697553)

Kamera-Kamera2 Version 1.0.0-beta10

23. September 2020

androidx.camera:camera-camera2:1.0.0-beta10 wird freigegeben. Version 1.0.0-beta10 enthält diese Commits.

Fehlerkorrekturen

Kamera-Kamera2 Version 1.0.0-beta09

16. September 2020

androidx.camera:camera-camera2:1.0.0-beta09 wird freigegeben. Version 1.0.0-beta09 enthält diese Commits.

API-Änderungen

  • Statt statische Methoden bereitzustellen, verwendet Camera2CameraInfo eine CameraInfo-Instanz, wenn sie erstellt wird, um Camera2-bezogene Informationen abzurufen. (I5b844)

Fehlerkorrekturen

  • Problem mit dem Zielseitenverhältnis auf Tablets behoben. Eine Größe von 16:9 sollte ausgewählt werden, wenn das Zielseitenverhältnis auf AspectRatio.RATIO_16_9 festgelegt ist. (Ib7fcf, b/151969438)
  • Wirf InitializationException aus, damit die App den beim Erstellen von CameraCharacteristics aufgetretenen AssertionError problemlos verarbeiten kann. (I89c8c, b/160524721)
  • Experimentelle Schnittstellen für ExposureCompensation (If96c7) hinzugefügt

Kamera-Core-Version 1.0.0-beta09

16. September 2020

androidx.camera:camera-core:1.0.0-beta09 wird freigegeben. Version 1.0.0-beta09 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Problem behoben, bei dem der Blitz auf einigen Geräten nicht deaktiviert werden konnte. Dieser Fehler tritt auf, wenn der Blitzmodus auf FLASH_MODE_ON eingestellt ist, um ein Bild aufzunehmen, und auf FLASH_MODE_OFF geändert wird, wenn der Blitz ausgelöst wird. Das Symptom ist, dass der Taschenlampen-Modus aktiviert ist. (Ib4451, b/162568128)
  • PreviewView wurde gezwungen, TextureView zu verwenden, wenn der Erweiterungseffekt aktiviert ist und die Implementierung der Anbieterbibliothek einen speziellen Prozess auf der Ausgabeoberfläche ausführen muss. (I0c3cc)
  • Das Aktivitäts-/Fragment-Datenleck, wenn ein Aktivitäts-/Fragmentkontext an ProcessCameraProvider.getInstance(Context) übergeben wurde, wurde behoben.

Bekannte Probleme

  • Wenn ViewPort festgelegt ist, ist das Zuschnittrechteck von ImageCapture auf Geräten, die den Bildzwischenspeicher in HAL rotieren, 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 freigegeben. Version 1.0.0-beta08 enthält diese Commits.

Fehlerkorrekturen

  • BindToLifecycle wurde für eine schnelle Ausführung im Hauptthread optimiert. (I1d57e)
  • DisplayOrientedMeteringPointFactory verwendet eine CameraInfo-Instanz anstelle eines CameraSelector, sodass eine direkte Zuordnung zur Kamera möglich ist, für die die Fabrik Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, verwenden auch eine CameraInfo-Instanz anstelle von CameraSelector. (I400c1)
  • Das Problem mit der Größengruppierung für das Seitenverhältnis bei automatischer Auflösung, bei dem eine mod16-Größe von 864 x 480 (16:9) ausgewählt wurde, wenn die Zielauflösungseinstellung 2016 x 1080 lautete und eine weitere Größe von 16:9 (1920 x 1080) unterstützt wurde, wurde behoben. (I53167, b/159363774)
  • Beheben Sie das CameraControl-Problem, bei dem die Kamera aufgrund einer Race-Bedingung nicht funktioniert (I2279f, b/152333890, b/160714166).

Kamera-Core-Version 1.0.0-beta08

19. August 2020

androidx.camera:camera-core:1.0.0-beta08 wird freigegeben. Version 1.0.0-beta08 enthält diese Commits.

API-Änderungen

  • DisplayOrientedMeteringPointFactory übernimmt eine CameraInfo-Instanz anstelle einer CameraSelector-Instanz, sodass es eine direkte Zuordnung zur Kamera gibt, für die die Factory Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, nehmen auch eine CameraInfo-Instanz anstelle von CameraSelector auf. (I400c1)

Fehlerkorrekturen

  • Überschreiben Sie für die Bildaufnahme die Markierung „Horizontal spiegeln“ in den Metadaten basierend auf der 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)

Kamera-Kamera2 Version 1.0.0-beta07

22. Juli 2020

androidx.camera:camera-camera2:1.0.0-beta07 wird freigegeben. Version 1.0.0-beta07 enthält diese Commits.

Fehlerkorrekturen

  • Das Problem, dass die Vorschau auf einem älteren Gerät mit Android 5.0 gedehnt wurde, wurde behoben. (I0c03a)
  • Einige von JPEG unterstützte Größen, die auf einigen Geräten zu einem WYSIWYG-Problem führen, wurden ausgeschlossen. (Ib5128)

Kamera-Core-Version 1.0.0-beta07

22. Juli 2020

androidx.camera:camera-core:1.0.0-beta07 wird freigegeben. Version 1.0.0-beta07 enthält diese Commits.

API-Änderungen

  • FIT_CENTER, FIT_START und FIT_END-Passform mit FIT zusammenführen. FITbedeutet, dass das zurückgegebene Zuschnittrechteck das maximal mögliche Sensorrecht ist. (Ia73c3)
  • Das Zuschneiderechteck der Vorschau wird anhand des Darstellungsbereichs konfiguriert. Für Endnutzer sollte nur der Bereich sichtbar sein, der vom Zuschnittrechteck abgedeckt ist. (I142a4)

Fehlerkorrekturen

  • Das Problem, dass die Vorschau auf einem älteren Gerät mit Android 5.0 gedehnt wurde, wurde behoben. (I0c03a)
  • Das Ausnahmeproblem ConcurrentModificationException 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 wird freigegeben. 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

  • Das Problem, bei dem startFocusAndMetering das Samsung Galaxy S7 nicht erfolgreich fokussieren konnte, wurde behoben. (If3be7, b/159039233)
  • Fehler beheben, damit die Kamera nach Beenden der App nicht geschlossen werden kann (I7a7b3)
  • Fehler bei wiederholten Kamerawechsel beheben, die die Vorschau bei Verwendung der SurfaceView-Implementierung von PreviewView (I920ce) unterbrechen
  • CameraControl#startFocusAndMetering schlägt fehl, wenn keines der angegebenen MeteringPoint gültige Messrechtecke generieren kann. (Id53ce)

Kamera-Core-Version 1.0.0-beta06

24. Juni 2020

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

Kamera-Kamera2 Version 1.0.0-beta05

10. Juni 2020

androidx.camera:camera-camera2:1.0.0-beta05 wird freigegeben. Version 1.0.0-beta05 enthält diese Commits.

Fehlerkorrekturen

  • Der Absturz beim App-Start beim Initialisieren von CameraX im Modus „Bitte nicht stören“ wurde behoben. Ein InitializationException enthält einen CameraUnavailableException, der auf den ListenableFuture des Initialisierungsergebnisses gesetzt wird, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)
  • Der Absturz beim Aufrufen von startFocusAndMetering auf Geräten, auf denen CONTROL_AF_STATE null ist, wurde behoben. (Ife55e, b/157084254)

Kamera-Core-Version 1.0.0-beta05

10. Juni 2020

androidx.camera:camera-core:1.0.0-beta05 wird freigegeben. Version 1.0.0-beta05 enthält diese Commits.

API-Änderungen

  • Der Absturz beim App-Start beim Initialisieren von CameraX im Modus „Bitte nicht stören“ wurde behoben. Ein InitializationException enthält ein CameraUnavailableException, das auf den ListenableFuture des Initialisierungsergebnisses festgelegt wird, anstatt die Anwendung abstürzen zu lassen. (I9909a, b/149413835)

Fehlerkorrekturen

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

Kamera-Kamera2 Version 1.0.0-beta04

27. Mai 2020

androidx.camera:camera-camera2:1.0.0-beta04 wird freigegeben. Version 1.0.0-beta04 enthält diese Commits.

Fehlerkorrekturen

  • Anwendungen dürfen beliebige Parameter für Camera2-Aufnahmeanfragen über Camera2Interop festlegen, ohne einen Absturz zu verursachen. Beachten Sie, dass durch das Überschreiben von Parametern Probleme auftreten. Stabilität und Verhalten sind beim Überschreiben von Parametern mit Camera2Interop nicht garantiert. (Ibe5a1, b/149103700)
  • Bei der Verwendung einer App auf einem Gerät, das eine Pseudo-Sprache verwendet, wurde die automatische Initialisierung korrigiert. (I3bef3, b/154767663)
  • Das Fehlerprotokoll im Zusammenhang mit dem getrennten Anwendungsfall wurde in ein Debug-Protokoll für Camera2CameraImpl umgewandelt. (I1a565, b/154422490)
  • Ein Problem wurde behoben, bei dem ein aufgenommenes Bild manchmal zu dunkel war, obwohl Flash ausgelöst wurde. (I5d9fa, b/149729613)
  • Fehler behoben, bei dem der Zwischenspeicher in ImageProxy von ImageCapture nicht zurückgespult wurde (I0c455, b/153249512)
  • Probleme behoben, bei denen nur bei Bindung zur Bildaufnahme (1) Fotos mit MAX_QUALITY nicht aufgenommen wurden; (2) Schlechte Bildqualität, da die automatische Belichtung nicht funktionierte. (I17782, b/145326998)
  • Zuverlässigkeit beim erneuten Öffnen der Kamera verbessert, wenn CameraX durch einen anderen Prozess oder Codepfad getrennt wurde, der die Kamera stiehlt (I1fbc3, b/153714651)

Kamera-Core-Version 1.0.0-beta04

27. Mai 2020

androidx.camera:camera-core:1.0.0-beta04 wird freigegeben. Version 1.0.0-beta04 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Es wurde ein Absturz in ImageAnalysis behoben, bei dem auf ImageProxy zugegriffen wurde, nachdem ImageReaderProxy geschlossen wurde. Dies bewirkt auch, dass alle ImageProxy, die an der Analyzer empfangen werden, geschlossen sein müssen, bevor der ImageReaderProxy geschlossen wird. (I4b299, b/145956416, b/154155377, b/156357269)
  • Der CameraInfo-Parameter wurde aus PreviewView#createSurfaceProvider() entfernt. PreviewView ruft ihn jetzt intern aus SurfaceRequest ab. (If18f0, b/154652477)
  • Bei der Verwendung einer App auf einem Gerät, das eine Pseudo-Sprache verwendet, wurde die automatische Initialisierung korrigiert. (I3bef3, b/154767663)
  • Ein Problem wurde behoben, bei dem ein aufgenommenes Bild manchmal zu dunkel war, obwohl Flash ausgelöst wurde. (I5d9fa, b/149729613)
  • Ein Problem mit ImageAnalysis wurde behoben, bei dem mehrere Aufrufe von setAnalyzer/clearAnalyzer dazu geführt haben, dass das Analysetool keine zu analysierenden Bilder erhielt. (I6169f, b/151605317, b/153514544)
  • Fehler behoben, bei dem der Zwischenspeicher in ImageProxy von ImageCapture nicht zurückgespult wurde (I0c455, b/153249512)
  • Das Problem, dass die erste Kamera in der Liste der unterstützten Kameras von CameraManager nicht immer zur Verwendung ausgewählt wurde, wurde behoben. (I4c624, b/153418028)
  • Das Problem mit einem vorübergehenden Absturz wurde behoben, der dadurch verursacht wurde, dass Preview.SurfaceProvider die zuvor angeforderte Oberfläche nicht freigegeben hatte. “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 freigegeben. Version 1.0.0-beta03 enthält diese Commits.

Fehlerkorrekturen

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

Kamera-Core-Version 1.0.0-beta03

15. April 2020

androidx.camera:camera-core:1.0.0-beta03 wird freigegeben. Version 1.0.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Die Regression von beta03 wurde behoben, bei der der Aufruf von bindToLifecycle() mit null UseCases zu einer ausgelösten Ausnahme führte. Dadurch konnte kein Camera abgerufen werden, ohne ein UseCase zu binden.

Kamera-Kamera2 Version 1.0.0-beta02

1. April 2020

androidx.camera:camera-camera2:1.0.0-beta02 wird freigegeben. Version 1.0.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • ImageInfo.getRotationDegrees() aus dem von ImageCapture erzeugten ImageProxy wurde korrigiert, sodass es mit dem Wert der EXIF-Ausrichtungsausrichtung übereinstimmt. (Id4281, b/150802561)
  • Eine explizite Reihenfolge der CameraX-Abhängigkeiten innerhalb von build.gradle ist nicht mehr erforderlich, um die Standardimplementierung von CameraX/Camera2 zu verwenden. In Fällen, in denen strikte Abhängigkeiten deklariert werden müssen, können jetzt alle CameraX-Abhängigkeiten in die Build-Datei aufgenommen werden. (I46e88)
  • Das Problem IllegalArgumentException, das auf Geräten auftrat, auf denen die Anzeige kleiner als 640 × 480 war, wurde behoben. (Ife3f2, b/150506192)
  • bindToLifecycle wurde so korrigiert, dass der Anwendungsfall nur geändert wird, wenn er erfolgreich gebunden wurde. Bisher wurde beim Aufrufen von bindToLifecycle für Auflösungsberechnungen der Anwendungsfall aktualisiert. Jetzt muss der Anwendungsfall für die Berechnungen nicht mehr aktualisiert werden (I78d9e).

Kamera-Core-Version 1.0.0-beta02

1. April 2020

androidx.camera:camera-core:1.0.0-beta02 wird freigegeben. Version 1.0.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • ImageInfo.getRotationDegrees() aus dem von ImageCapture erzeugten ImageProxy wurde korrigiert, sodass es mit dem Wert der EXIF-Ausrichtungsausrichtung übereinstimmt. (Id4281, b/150802561)
  • bindToLifecycle wurde so korrigiert, dass der Anwendungsfall nur geändert wird, wenn er erfolgreich gebunden wurde. Bisher wurde beim Aufrufen von bindToLifecycle für Auflösungsberechnungen der Anwendungsfall aktualisiert. Jetzt muss der Anwendungsfall für die Berechnungen nicht mehr aktualisiert werden (I78d9e).
  • Die Aufnahmesitzung des Anwendungsfalls „Preview“ wurde nicht aktualisiert, wenn sich die Vorschauoberfläche nach mehr als einmal Aufrufen von Preview.setSurfaceProvider() änderte.

Kamera-Kamera2 Version 1.0.0-beta01

26. Februar 2020

androidx.camera:camera-camera2:1.0.0-beta01 wird freigegeben. Version 1.0.0-beta01 enthält diese Commits.

Fehlerkorrekturen

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

Kamera-Core-Version 1.0.0-beta01

26. Februar 2020

androidx.camera:camera-core:1.0.0-beta01 wird freigegeben. Version 1.0.0-beta01 enthält diese Commits.

API-Änderungen

  • ListenableFuture in SurfaceRequest.provideSurface() durch Executor und Callback ersetzt. Dies vereinfacht die API, da die Verarbeitung von Ausnahmen für provideSurface() nicht mehr erforderlich ist. Außerdem wird erzwungen, dass der provideSurface()-Callback nicht abgebrochen werden kann. Dadurch werden Abstürze auf älteren Geräten verhindert, die durch eine vorzeitige Veröffentlichung von Oberflächen verursacht werden. Mit dem SurfaceRequest.Result-Objekt wird jetzt erfasst, wie ein SurfaceRequest das bereitgestellte Surface verwendet. (I7854b)
  • SurfaceRequest.setSurface(Surface) wurde in SurfaceRequest.provideSurface(Surface) und SurfaceRequest.setWillNotComplete() in SurfaceRequest.willNotProvideSurface() umbenannt. (I224fe)

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem das Seitenverhältnis eines gespeicherten Bilds nach Änderung des Werts für die Zieldrehung mit ImageCapture.setTargetRotation() nicht korrekt war. (I474ea, b/148763432)
  • Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert, indem das Flag beibehalten wurde, mit dem der Standardanbieter CameraXConfig festgelegt wird. (I2d6c1)
  • Die Dokumentation für Flash Mode APIs wurde aktualisiert, um mögliche Werte aufzunehmen. (I4a3ec)

Kamera-Kamera2 Version 1.0.0-alpha10

10. Februar 2020

androidx.camera:camera-camera2:1.0.0-alpha10 wird freigegeben. Version 1.0.0-alpha10 enthält diese Commits.

Fehlerkorrekturen

  • Verbesserte Stabilität auf INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY-Geräten, da Surfaces nur so lange aufbewahrt werden, wie Camera2 verwendet wird. (I9dac2)
  • Das Problem mit der unterbelichteten Vorschau auf LEGACY-Geräten wurde durch ordnungsgemäße Anpassung von CONTROL_AE_TARGET_FPS_RANGE behoben. 1224638

Kamera-Core-Version 1.0.0-alpha10

10. Februar 2020

androidx.camera:camera-core:1.0.0-alpha10 wird freigegeben. Version 1.0.0-alpha10 enthält diese Commits.

API-Änderungen

  • ImageCapture wurde aktualisiert, damit Bilder in Uri und OutputStream gespeichert werden können. Überlastete takePicture-Methoden wurden in einer kombiniert. Die Test-App wurde aktualisiert, damit Uri als kanonisches Beispiel verwendet wird. (Ia3bec)
  • Preview.PreviewSurfaceProvider wurde in Preview.SurfaceProvider umbenannt. Für SurfaceProviders müssen Entwickler keine eigenen ListenableFuture mehr erstellen. Die Bereitstellung 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)
  • getTargetRotation() und getTargetName() wurden zu Preview hinzugefügt. (Iceee7)
  • getTargetRotation(), getBackpressureStrategy() und getImageQueueDepth() wurden in ImageAnalysis hinzugefügt. (I9d6d9)
  • getTargetRotation() und getCaptureMode() wurden in ImageCapture() (I5bc17) hinzugefügt
  • Die zuvor in ImageCapture.OnImageSavedCallback.onError() und ImageCapture.OnImageCapturedCallback.onError() übergebenen Argumente wurden jetzt durch ein einzelnes Argument ImageCaptureException ersetzt, das weiterhin alle zuvor übergebenen Informationen enthält.
  • Das zuvor an ImageCapture.OnImageSavedCallback.onImageSaved() übergebene Dateiargument wurde entfernt. (I750d2)
  • Die Kurse Preview und ImageCapture sind jetzt als fertig markiert. (I2500b)
  • Die API wurde mit den Methoden getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() und getLinearZoom() aktualisiert, um CameraInfo mit getZoomState() zusammenzuführen, 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 Verwendung von Bibliotheken bestimmt sind. Konstruktor für CameraXConfig.Builder wurde entfernt. (I96912)
  • Die Anforderung, dass die App Application erweitern muss, um CameraX zu initialisieren, wurde entfernt. CameraX wird jetzt mit einer Standardkonfiguration für Camera2 initialisiert, sofern das Artefakt camera-camera2 im build.gradle der Anwendung enthalten ist. (I58ff5) (b/146923574)

Kamera-Kamera2 Version 1.0.0-alpha09

22. Januar 2020

androidx.camera:camera-camera2:1.0.0-alpha09 wird freigegeben. Version 1.0.0-alpha09 enthält diese Commits.

API-Änderungen

  • Fügen Sie einen Camera2-Interoperabilitätspfad hinzu, um eine Camera2-Kamera-ID zu extrahieren. Sie können die Kamera-ID mit Camera2CameraInfo.extractCameraId() aus CameraInfo extrahieren. Das folgende Codebeispiel zeigt, wie dies verwendet wird:

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

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

Kamera-Core-Version 1.0.0-alpha09

22. Januar 2020

androidx.camera:camera-core:1.0.0-alpha09 wird freigegeben. 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 verwendet und die aktuelle Anzeige übergibt.
  • Javadoc-Verbesserungen für Focus API und Metering APIs bezüglich MeteringMode- und 3A-Flags und Verwendung des Display-Parameters.
  • Die Referenzdokumentation für setZoomRatio und setLinearZoom wurde erweitert.

Fehlerkorrekturen

  • Es wurden Probleme behoben, die beim Schließen und Öffnen von Kameras zu einem Fehler bei der Prüfung „Vorbedingung“ geführt haben.
  • Ein ConcurrentModificationException wurde behoben, das bei der Verwendung von Torch und Zoom APIs auftreten konnte.
  • Ein Problem wurde behoben, durch das jetzt Auflösungen ausgewählt werden, die näher an der angeforderten Auflösung liegen, wenn eine mod16-Größe verfügbar ist.
  • Die startFocusMetering- und cancelFocusMetering-APIs verhalten sich jetzt wie dokumentiert, mit korrektem Timing und möglichen Fehlern, die auftreten, wenn sie auftreten.
  • Ein Problem wurde behoben, bei dem eine bestimmte Zielauflösung mit einem Seitenverhältnis für den Zuschnitt auf einem Gerät angefordert wurde, das solche Größen nicht unterstützt. Jetzt wird eine nicht zugeschnittene Größe mit ausreichender Auflösung zum Binden der ursprünglichen Anfrage ausgewählt, wenn diese verfügbar ist.

Kamera-Kamera2 Version 1.0.0-alpha08

18. Dezember 2019

androidx.camera:camera-camera2:1.0.0-alpha08 wird freigegeben. Version 1.0.0-alpha08 enthält diese Commits.

Bekannte Probleme

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

Fehlerkorrekturen

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

API-Änderungen

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

Kamera-Core-Version 1.0.0-alpha08

18. Dezember 2019

androidx.camera:camera-core:1.0.0-alpha08 wird freigegeben. Version 1.0.0-alpha08 enthält diese Commits.

Bekannte Probleme

  • Bei Apps, in denen PreviewView oder CameraView verwendet werden, ist die Vorschau des Seitenverhältnisses möglicherweise falsch. Dies geschieht nach dem Pausieren oder Fortsetzen auf einigen VOLLSTÄNDIGEN Geräten, wie z. B. auf dem Pixel2.

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 außerhalb der IntDef-Definition verschoben.
  • rotationDegrees wurde aus Kurs „OnImageCaptureCallback“ in „ImageInfo“ verschoben.
  • rotationDegrees wurde aus Kurs „Analyzer“ in „ImageInfo“ verschoben.

Camera-Camera2-Version 1.0.0-alpha07

4. Dezember 2019

androidx.camera:camera-camera2:1.0.0-alpha07 wird freigegeben. Version 1.0.0-alpha07 von Kamera-Kamera2 enthält diese Commits

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

Kamera-Core-Version 1.0.0-alpha07

4. Dezember 2019

androidx.camera:camera-core:1.0.0-alpha07 wird freigegeben. Version 1.0.0-alpha07 des Kamerakerns enthält diese Commits

Im Rahmen der Vorbereitung auf die Betaversion gibt es in diesem Alpharelease einige wesentliche Änderungen. Wir empfehlen Ihnen, sich die Änderungen anzusehen und der Google-Gruppe „CameraX“ Feedback zu geben. Entwicklern, die CameraX in Apps aus dem Play Store verwenden, empfehlen wir, die offizielle Betaversion abzuwarten, 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 den von androidx.camera.camera2 bereitgestellten Standard-Camera2Config verwenden. Eine typische Verwendung ist:

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

  • Eine prozessspezifische Instanz von ProcessCameraProvider wird asynchron mit der statischen Methode ProcessCameraProvider.getInstance() abgerufen, die ein auflistbares Future-Objekt zurückgibt, das nach Abschluss das ProcessCameraProvider bereitstellt. Hier wird er in onCreate() für eine typische Verwendung angezeigt. Sie können getInstance() später im Lebenszyklus der Aktivität aufrufen, um die Latenz bei der Initialisierung auf einen späteren Zeitpunkt zu verschieben, z. B. wenn eine Nutzeraktion eine Kamera-UI öffnet.

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

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

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

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • Anwendungsfallklassen vom Typ „Config“ werden entfernt. Stattdessen können Sie Anwendungsfälle direkt erstellen und Optionen für die einzelnen Anwendungsfälle festlegen. Beispiele:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • Der Anwendungsfall „Vorabversion“ wurde aktualisiert und akzeptiert nun eine Oberfläche, die von der App erstellt und verwaltet wird, um Best Practices für Android zu gewährleisten. Es wird dringend empfohlen, die im Kameraansicht-Paket enthaltene Ansichtsklasse PreviewView zu verwenden.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • 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 Analyzer-Methode ImageAnalysis muss für empfangene Bilder image.close() aufrufen, nachdem sie verwendet wurden. Andernfalls kann es sein, dass keine neuen Bilder empfangen werden oder die Kamera sich verirrt. Weitere Informationen finden Sie in der Referenzdokumentation.

  • ImageAnalysis ImageReaderMode“ ist jetzt in die Gegendruckstrategie „intdef“ geändert.

  • ImageProxy.getImage() ist als experimentell gekennzeichnet. Die Nutzung sollte durch die Anwendung annotiert werden, beispielsweise über @androidx.camera.core.ExperimentalGetImage

  • Die Anmerkungsanforderung UIThread für Analyzer wurde entfernt.

  • Zum Entfernen eines Analyzers wird die Funktion ImageAnalysis.clearAnalyzer() hinzugefügt.

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

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

  • Zoomsteuerelemente wurden hinzugefügt:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • CameraInfo.hasFlashUnit() wird hinzugefügt, um zu ermitteln, ob ein Blitzgerät oder eine Taschenlampe vorhanden ist.

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

  • ImageCapture.Metadata-Felder werden durch die Zugriffsmethoden „get/set/is“ ersetzt.

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

  • MeteringPoints dienen jetzt als Handles für Metering-Aktionen und werden von Fabriken produziert. Apps sollten die vorhandenen Factorys statt benutzerdefinierter Factorys verwenden.

Behobene Probleme

  • Ein Problem wurde behoben, das beim Fortsetzen von Bildern aufgetreten ist (nachdem bei einer früheren Pause Bilder aufgenommen wurden, die noch nicht abgeschlossen waren).
  • Bekanntes Problem: CameraControl.enableTorch() funktioniert, aber der zurückgegebene ListenableFuture<Void> steht immer in unmittelbarer complete(success)-Zukunft, selbst wenn keine Flash-Einheit vorhanden ist. Dieses endgültige Verhalten wird in zukünftigen Versionen behoben: Wenn keine Flash-Einheit vorhanden ist, schlägt enableTorch(true) sofort fehl und sendet keine Anfrage an CaptureSession und TorchState bleibt deaktiviert.
  • Bekanntes Problem: startFocusAndMetering und cancelFocusAndMetering starten und brechen die Fokusmessung ab, geben jedoch sofort ein completed (success)-Objekt zurück, das nicht dem dokumentierten Verhalten entspricht. Das FocusMeteringResult von ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() ist ein fiktives Ergebnis, das isFocusSuccessful() und immer „falsch“ ist. Es unterscheidet sich also vom beabsichtigten, dokumentierten Verhalten.
  • Bekanntes Problem: Eine Metering Point Factory zur Verwendung mit PreviewView-Touch-Ereignissen wird entwickelt. Derzeit können Apps, die benutzerdefinierte verwaltete Oberflächen verbinden, die vorhandenen Metering Point Factorys verwenden. Andernfalls ist für PreviewView keine Touchfokus-Funktion verfügbar.

Kamera-Kamera2 und Kamera-Core-Version 1.0.0-alpha06

9. Oktober 2019

androidx.camera:camera-camera2:1.0.0-alpha06 und androidx.camera:camera-core:1.0.0-alpha06 werden veröffentlicht. Dies sind die in camera-camera2:1.0.0-alpha06 enthaltenen Commits und die in camera-core:1.0.0-alpha06 enthaltenen Commits.

Neue Funktionen

Änderungen an den Einstellungen der Seitenverhältnisse:

  • setTargetAspectRatioMode() wurde hinzugefügt und akzeptiert ein enum-Argument. Dadurch wird der Modus für das Seitenverhältnis mit den Optionen RATIO_4_3 oder RATIO_16_9 anstelle eines beliebigen Seitenverhältnisses festgelegt. Dies spiegelt die Tatsache wider, dass von der Kamera nur bestimmte Seitenverhältnisse zur Verfügung gestellt werden, nicht ein willkürliches Verhältnis.
    • Derzeit sind nur die Seitenverhältnisse 16:9 und 4:3 verfügbar. Im Fall von 1:1 ist dies nur bei bestimmten Geräten über die Kamera möglich, und das dann auch nur bei begrenzter Auflösung. Anwendungen, die eine 1:1-Schnittstelle oder -Verarbeitung entwerfen, sollten die flexibleren Optionen im Format 16:9 oder 4:3 verwenden und die Anzeige oder den Prozess in einer Unterregion zuschneiden.
    • Diese Seitenverhältnisse sind auf die maximale Sensorfläche ausgerichtet.
  • getTargetAspectRatio() wurde den APIs für die Anwendungsfallkonfiguration hinzugefügt und gibt das Seitenverhältnis zurück, auf das die Ausgabe des Anwendungsfalls ausgerichtet ist.
  • Die Methode setTargetAspectRatio(Rational aspectRatio) wurde für ImageCapture zu setTargetAspectRatioCustom(Rational aspectRatio) geändert. Wenn festgelegt, wird die ImageCapture-Ausgabe entsprechend zugeschnitten.

Executor-APIs

  • Die folgenden Funktionen akzeptieren einen Executor-Parameter, mit dem die App steuern kann, auf welchem Executor die Funktion ausgeführt wird.
    • Preview.setOnPreviewOutputUpdateListener() API erstellen. 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“ mit den Kontrollkästchen „Flash verfügbar“ und „Sensor Rotation APIs“ hinzugefügt

  • 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 die Kamera verfügbar ist. Beispiele:

    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 aus Gründen der Nutzerfreundlichkeit relativ zu einer Ausrichtung an, die durch eine Oberflächenrotation beschrieben wird (die eine Ausrichtung relativ zur natürlichen Ausrichtung beschreibt).

API-Änderungen und Fehlerkorrekturen

  • Seitenverhältnisse: Für jeden Anwendungsfall sollten Anwendungen nur entweder setTargetResolution() oder setTargetAspectRatio() aufrufen. Wenn beide für denselben Builder aufgerufen werden, wird ein Fehler zurückgegeben.
    • Im Allgemeinen wird die Verwendung von setTargetAspectRatio() aufgrund des UI-Designs der Anwendung empfohlen. Lösungen hängen vom jeweiligen Anwendungsfall ab. Die Vorschau entspricht beispielsweise fast der Bildschirmauflösung und die Bildaufnahme liefert Standbilder mit hoher Auflösung. Weitere Informationen finden Sie in der Tabelle zur automatischen Problemlösung.
    • Verwende setTargetResolution() für konkretere Fälle, z. B. wenn minimale Auflösungen (um Berechnungen) oder maximale Auflösungen (zur Verarbeitung von Details) erforderlich sind.
  • Executor API: Der setCallbackHandler()-Aufruf wurde aus den APIs für die Anwendungsfallkonfiguration entfernt. Stattdessen können Anwendungen den Executor als Parameter in verschiedenen anderen APIs festlegen, die einen Callback festlegen.
  • Null-Annotationen für verschiedene Funktionen wurden aktualisiert.
  • Beim Öffnen der Kamera wurde java.lang.IllegalStateException at Camera$StateCallback.onError ausgelöst. Dieses Problem wurde behoben.
  • Ein Problem wurde behoben, bei dem zu kleine Auflösungen (unter 640 × 480) ausgewählt wurden, wenn die App größere oder Standardauflösungen anforderte, was zu einem blockartigen oder verschwommenen Vorschaubild führte. Anwendungen, die eine geringere Auflösung benötigen, können diese explizit anfordern.
  • Ein Problem wurde behoben, bei dem die Kamera nach ihrer Rückkehr von einem Intent, bei dem eine andere Kamera-App gestartet wurde, einen schwarzen Bildschirm anzeigten (die Kamera konnte nicht gestartet werden).
  • Der folgende Fehler wurde behoben, wenn Apps wiederholt gestartet oder beendet wurden: java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • Der folgende Fehler, der beim Deaktivieren von ImageAnalysis auftrat, wurde behoben: java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more..
  • Es wurden zusätzliche Tests für den Ablauf beim Trennen der Kamera hinzugefügt.
  • Die Stabilität des Testsystems bei aufeinanderfolgenden Kameratests wurde verbessert.

Kamera-Kamera2 und Kamera-Core-Version 1.0.0-alpha05

5. September 2019

androidx.camera:camera-camera2:1.0.0-alpha05 und androidx.camera:camera-core:1.0.0-alpha05 werden veröffentlicht. Dies sind die in „kamera-camera2:1.0.0-alpha05“ enthaltenen Commits und die enthaltenen „kamera-core:1.0.0-alpha05“.

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

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

    • Es wurde eine API zum Abrufen eines CameraControl von CameraX für eine Kamera hinzugefügt, die durch das Objektiv ausgewählt wird:

      CameraX.getCameraControl(LensFacing lensFacing)

    • MeteringPointFactory, MeteringPoint, MeteringMode und FocusMeteringAction wurden zum Ausführen des Tippens zum Fokussieren hinzugefügt:

      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 Factories hinzugefügt, die die Übersetzung von Tippkoordinaten in Sensorkoordinaten auf der Grundlage von 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 IllegalStateException aus, wenn dies nicht der Fall ist. Zukünftige Versionen ermöglichen die Verwendung in anderen Threads und stellen die Serialisierung sicher.

    • CameraX.bindToLifecycle()
    • CameraX.unbind()
    • CameraX.unbindAll()
    • ImageAnalysis.setAnalyzer()
    • ImageAnalysis.getAnalyzer()
    • ImageAnalysis.removeAnalyzer()
    • Preview.removePreviewOutputListener()
    • Preview.getOnPreviewOutputUpdateListener()
    • Preview.setOnPreviewOutputUpdateListener()
  • Verschiedene Konfigurationseinstellungen akzeptieren jetzt Nullparameter und entsprechende Getter geben möglicherweise null zurück.

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

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

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

  • Tests für mehrere gleichzeitige Bildanalyseanwendungsfälle wurden entfernt. Aus Gründen der Kompatibilität sollten Anwendungen nur einen einzigen Anwendungsfall für die Bildanalyse anhängen.

  • Erste robolektrische Tests für gefälschte Kameras in Kameratest-Suite (WIP) hinzugefügt.

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

Kamera-Kamera2 und Kamera-Core-Version 1.0.0-alpha04

7. August 2019

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

Neue Funktionen

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

Das Ziel von CameraX ist es, eine Kamerasitzung erfolgreich zu starten. Das bedeutet, dass CameraX je nach Gerätekapazität Kompromisse bei Auflösung und Seitenverhältnissen eingeht, um als erstes Ziel eine Aufnahme zu starten. Daher werden exakte Anfragen möglicherweise nicht berücksichtigt. Das kann folgende Gründe haben:

  • Geräte, die die angeforderte Auflösung nicht unterstützen
  • Kompatibilitätsprobleme, beispielsweise auf LEGACY-Geräten, bei denen bestimmte Auflösungen erforderlich sind, damit das Gerät richtig funktioniert
  • Auf einigen Geräten sind bestimmte Formate nur bei bestimmten Seitenverhältnissen verfügbar.
  • Eine Präferenz für einen „nächsten mod16“ für JPEG- oder Videocodierung. Weitere Informationen finden Sie unter CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP.

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

Es wurden einige Änderungen an den Einstellungen von Auflösungen und Seitenverhältnissen vorgenommen, um die API noch verständlicher zu machen:

  • Im Anwendungsfall „Vorschau“ wird jetzt davon ausgegangen, dass das Seitenverhältnis standardmäßig 4:3 ist, wenn keins festgelegt ist.
  • Wenn CameraX intern Änderungen an angeforderten Auflösungen und Seitenverhältnissen basierend auf der Gerätefunktion berücksichtigt, wird zuerst versucht, dasselbe Seitenverhältnis beizubehalten (durch setTargetAspectRatio- oder setTargetResolution-Aufrufe festgelegt).
  • Eine „Nächste Version 16“ der Auflösung wird als dasselbe Seitenverhältnis angesehen.

Nicht blockierender Bildanalysemodus

  • Das Verhalten von ImageReaderMode.ACQUIRE_LATEST_IMAGE ist jetzt nicht mehr blockierend. Dabei wird das neueste Bild in der Warteschlange erfasst, aber nicht verwendete Bilder kontinuierlich verwirft, um eine Blockierung durch die Kamera-Pipeline zu vermeiden.
  • Das Analysetool kann ein einzelnes Bild für unbegrenzte Zeit aufbewahren, ohne die Pipeline zu stören.
  • Wenn die Anwendung einen Executor bereitstellt, der dann blockiert, werden die Anwendungsfallblöcke ImageAnalysis.
  • Der intern festgelegte Standard-Executor verhält sich wie ein nicht blockierender Executor.

Fehlerkorrekturen

  • Zeitüberschreitung beim Warten auf die 3A-Konvergenz bei der Aufnahme von Bildern auf Geräten ohne Autofokus, automatische Belichtung und automatisches Weißabgleich. Dieses Problem wurde behoben.
  • Ein Problem wurde behoben, das bei einer schnellen Aufnahme von Bildern mit ImageCapture auftrat. Behebt den Fehler: java.lang.IllegalStateException: maxImages (2) has already been acquired
  • Ein Problem wurde behoben, bei dem setLensFacing für einen Anwendungsfall nicht aufgerufen wurde, was zu java.lang.IllegalArgumentException: Unable to get camera ID for use case führte.
  • Problem behoben, bei dem für das LEGACY-Gerät ein bestimmtes Seitenverhältnis als maximale JPEG-Auflösung erforderlich war
  • Ein Problem wurde behoben, das beim Öffnen der App im Hintergrund beim Öffnen der Kamera aufgetreten ist.
  • Problem mit API < 25 behoben, bei dem der Fehler checkAndUpdateEglState: invalid current EGLDisplay entfernt wurde
  • Ein Problem wurde behoben, wenn die Bindung der Vorschau nach dem Aktivieren und Starten von Erweiterungen aufgehoben wurde
  • Build-Artefakte für Kameraansicht und Kameraerweiterungen werden jetzt als Alphaversionen veröffentlicht

Kamera-Kamera2 und Kamera-Core-Version 1.0.0-alpha03

2. Juli 2019

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

API-Änderungen

  • Es wurde eine Javadoc-Erläuterung für "target" in den setTarget-Konfigurationsaufrufen hinzugefügt.

Kamerakern

  • Behebung eines nicht konfigurierten Absturzes der Eingabe-/Ausgabeoberfläche beim schnellen Öffnen/Schließen oder Binden/Aufheben der Bindung
  • Zu neuen Future-Implementierungen wechseln
  • Fehlerkorrekturen für zuverlässigere Tests
  • Hauptintegrationstest zeigt jetzt an, wie lange die Aufnahme von Fotos dauert
  • Entwicklung interner Compat-Kurs für Executors
  • Timing-Test-App-Aufnahmen warten, bis vorherige abgeschlossen sind und verbesserte Stabilität

Erweiterungen

  • Versionsverwaltungsprüfungen hinzugefügt
  • Zusätzliche Testabdeckung – Rückrufe für Erweiterungsereignisse
  • Verbesserungen für intern entsprechende Bild- und Metadaten
  • Fehlerkorrekturen beim Moduswechsel in der Test-App

Kamera-Kamera2 und Kamera-Core-Version 1.0.0-alpha02

5. Juni 2019

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

Fehlerkorrekturen

  • Problem mit div by null bei Verwendung des Emulators behoben
  • Der Fehler "NullPointerException/Surface Abandoned" trat auf einigen Geräten auf, wenn schnell Fotos aufgenommen wurden, während Anwendungsfälle schnell aufgehoben und neu verknüpft wurden.
  • Internes Problem behoben, das dafür sorgte, dass Aktualisierungen von Aufnahmeanfragen einheitlich auf allen 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
  • Zusätzliche Javadoc-Klarstellungen zur CameraX-Klassen- und Lebenszyklusverwaltung
  • Instrumentierte Tests für die Antilope-App für Leistungstests hinzugefügt
  • Entfernung der Notwendigkeit von „-keepattributes Signature“ in der App Proguard-Konfiguration

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

Fehlerkorrekturen

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

Kameralebenszyklus Version 1.0.0-beta10

23. September 2020

androidx.camera:camera-lifecycle:1.0.0-beta10 wird freigegeben. 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 freigegeben. Version 1.0.0-beta09 enthält diese Commits.

Kameralebenszyklus Version 1.0.0-beta08

19. August 2020

androidx.camera:camera-lifecycle:1.0.0-beta08 wird freigegeben. Version 1.0.0-beta08 enthält diese Commits.

Fehlerkorrekturen

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

Kameralebenszyklus Version 1.0.0-beta07

22. Juli 2020

androidx.camera:camera-lifecycle:1.0.0-beta07 wird freigegeben. Version 1.0.0-beta07 enthält diese Commits.

Kameralebenszyklus Version 1.0.0-beta06

24. Juni 2020

androidx.camera:camera-lifecycle:1.0.0-beta06 wird freigegeben. Version 1.0.0-beta06 enthält diese Commits.

API-Änderungen

  • CameraX kann jetzt vor dem Aufruf von ProcessCameraProvider#getInstance() mit ProcessCameraProvider#configureInstance() konfiguriert werden. Dadurch kann CameraXConfig angepasst werden, ohne dass CameraXConfig.Provider in der Anwendungsklasse der App implementiert werden muss. (Ia1a8d)

Kameralebenszyklus Version 1.0.0-beta05

10. Juni 2020

androidx.camera:camera-lifecycle:1.0.0-beta05 wird freigegeben. Version 1.0.0-beta05 enthält diese Commits.

Fehlerkorrekturen

  • Der Absturz beim App-Start beim Initialisieren von CameraX im Modus „Bitte nicht stören“ wurde behoben. Ein InitializationException enthält ein CameraUnavailableException, das auf den ListenableFuture des Initialisierungsergebnisses festgelegt wird, anstatt die Anwendung abstürzen zu lassen. (I9909a, b/149413835)

Kameralebenszyklus Version 1.0.0-beta04

27. Mai 2020

androidx.camera:camera-lifecycle:1.0.0-beta04 wird freigegeben. Version 1.0.0-beta04 enthält diese Commits.

Kameralebenszyklus Version 1.0.0-beta03

15. April 2020

androidx.camera:camera-lifecycle:1.0.0-beta03 wird freigegeben. Version 1.0.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Die Regression von beta03 wurde behoben, bei der der Aufruf von bindToLifecycle() mit null UseCases zu einer ausgelösten Ausnahme führte. Dadurch konnte kein Camera abgerufen werden, ohne ein UseCase zu binden.
  • Korrekturen 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 freigegeben. Version 1.0.0-beta01 enthält diese Commits.

Fehlerkorrekturen

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

Kameralebenszyklus Version 1.0.0-beta02

1. April 2020

androidx.camera:camera-lifecycle:1.0.0-beta02 wird freigegeben. 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.

Kameralebenszyklus Version 1.0.0-alpha10

10. Februar 2020

androidx.camera:camera-lifecycle:1.0.0-alpha10 wird freigegeben. Version 1.0.0-alpha10 enthält diese Commits.

API-Änderungen

  • Den Methoden "BindToLifecycle", "unbind" und "unbindAll" wurde die Anmerkung @MainThread hinzugefügt. (I990d2)

Kameralebenszyklus Version 1.0.0-alpha03

22. Januar 2020

androidx.camera:camera-lifecycle:1.0.0-alpha03 wird freigegeben. Version 1.0.0-alpha03 enthält diese Commits.

Updates

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

Kameralebenszyklus Version 1.0.0-alpha02

18. Dezember 2019

androidx.camera:camera-lifecycle:1.0.0-alpha02 wird freigegeben. Version 1.0.0-alpha02 enthält diese Commits.

Abhängigkeitsänderungen

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

Kameralebenszyklus Version 1.0.0-alpha01

4. Dezember 2019

androidx.camera:camera-lifecycle:1.0.0-alpha01 wird freigegeben. Version 1.0.0-alpha01 des Kameralebenszyklus enthält diese Commits

API-Hinweise

  • Das Artefakt für den Kameralebenszyklus wird hinzugefügt. Es bietet eine LifeCycleCameraProvider-Schnittstelle und eine Implementierung namens ProcessCameraProvider, die viele Funktionen der vorherigen CameraX-Klasse im Kern enthält und über eine getInstance()-Methode abgerufen wird.
  • Apps müssen die Kamera-Lebenszyklusbibliothek enthalten, um CameraX zu verwenden.
  • Informationen zur Initialisierung von CameraX mit einem ProcessCameraProvider finden Sie in den Hinweisen im Abschnitt Kamerakern.

Kameraerweiterungen und Kameraansicht Version 1.0.0

Version 1.0.0-alpha32

15. Dezember 2021

androidx.camera:camera-extensions:1.0.0-alpha32 und androidx.camera:camera-view:1.0.0-alpha32 werden veröffentlicht. 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 Artefakte der Kamera-Erweiterungen aktualisieren. (If683a, b/161377155)

Fehlerkorrekturen

  • Die App darf beim Binden 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 beliebigen Erweiterungsmodus aktiviert, wird ein IllegalArgumentException ausgelöst. (I0d87b)
  • CameraSelector#filter gibt kein IllegalArgumentException mehr aus, wenn die Ergebnismenge leer ist. (I27804)
  • Die ExtensionsManager#getInstance API wurde in getInstanceAsync umbenannt, weil sie ListenableFuture zurückgibt. Das asynchrone Suffix des Funktionsnamens kann deutlich darauf hinweisen, dass es sich um eine asynchrone Funktion handelt. (I279d2)
  • Entfernen Sie den Auflösungsparameter aus der ExtensionsManager#getEstimatedCaptureLatencyRange API, da Nutzer nicht wissen, welche Größen für den Anwendungsfall ImageCapture unterstützt werden, und nicht unterscheiden können, ob die zurückgegebenen Latenzinformationen sich auf die maximale Ausgabegröße oder den Parameter für die Eingabeauflösung beziehen. (I74bb2)
  • Verschieben Sie den CameraProvider-Parameter von ExtensionsManager-Funktionen in die getInstance() API. Damit die Nutzer den CameraProvider-Parameter nicht jedes Mal eingeben müssen, wenn sie die ExtensionsManager-Funktionen aufrufen. (Ic7e48)

Version 1.0.0-alpha31

17. November 2021

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

API-Änderungen

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

Fehlerkorrekturen

  • Ein Absturz beim schnellen Wechseln des Erweiterungsmodus 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 veröffentlicht. Version 1.0.0-alpha30 enthält diese Commits.

API-Änderungen

  • Allen CameraX-Klassen wurde die Annotation @RequiresApi(21) hinzugefügt und „minSdkVersion“ aus der AndroidManifest.xml gelöscht. Dadurch kann der Kamerakern einfach in Anwendungen eingebunden werden, deren minSdkVersion kleiner als 21 ist, aber Codepfade verwenden möchten, die auf API 21 oder höher basieren. Bei jeder Anwendung mit minSdkVersion 21 oder höher sind für diese Änderung keine Maßnahmen erforderlich. (Ie7f2e, b/200599470)

Fehlerkorrekturen

  • Das Problem "ZusammenfassungMethodError", das bei aktiviertem Proguard aufgetreten ist, 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 veröffentlicht. Version 1.0.0-alpha29 enthält diese Commits.

API-Änderungen

  • Die Annotation „ExperimentalUseCaseGroup“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I01ef5)
  • RotationProvider#removeAllListeners() entfernen. Bitte verwende stattdessen RotationProvider#removeListener(...). (Id9d4a)
  • Die RotationReceiver-Klasse wurde aktualisiert: Der Parameter "set/clear" wurde in "add/remove/removeAll" geändert, die setListener-Variante, die standardmäßig den Hauptthread verwendet, entfernt und die Methodenanmerkungen wurden hinzugefügt. (Ib1669)

Fehlerkorrekturen

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

Version 1.0.0-alpha28

18. August 2021

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

API-Änderungen

  • Die Annotation „ExperimentalUseCaseGroupLifecycle“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I17b85)
  • RotationListener refaktoriert und in RotationProvider umbenannt. Dieselbe Funktion wird auch mit einer etwas anderen API bereitgestellt. (Idffc5)
  • Benennen Sie TAP_TO_FOCUS_UNSUCCESSFUL in TAP_TO_FOCUS_NOT_FOCUSED und TAP_TO_FOCUS_SUCCESSFUL in TAP_TO_FOCUS_FOCUSED um. OutputSize als endgültig festgelegt (I099fa)

Fehlerkorrekturen

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

Version 1.0.0-alpha27

21. Juli 2021

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

API-Änderungen

  • Die Darstellungsbereich-API wurde aus der experimentellen Phase hochgestuft. Entfernen Sie die experimentelle Annotation der API. (I717ea)
  • CoordinateTransform#getTransform wurde in CoordinateTransform#transform umbenannt und JavaDoc (I864ae) aktualisiert

Fehlerkorrekturen

  • Das Problem mit der Streckung des PreviewView PERFORMANCE Modus bei Verwendung zusammen mit der Benutzeroberfläche für das Schreiben wurde behoben. (Ie1137, b/183864890)

Version 1.0.0-alpha26

30. Juni 2021

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

API-Änderungen

  • füge die neue Methode CameraController#getTapToFocusState() hinzu, mit der das letzte Ergebnis beim Tippen zum Fokussieren angezeigt wird. (Iaccb0)
  • Hinzufügen weiterer Kamerafunktionen zu CameraController: Getter/Setter für das Zielseitenverhältnis, die Zielauflösung, den Aufnahmemodus, CameraControl und benutzerdefinierte Executors. (Iea8f2)
  • Fügen Sie eine RotationReceiver-Klasse hinzu, die Änderungen der Oberflächenrotation empfängt. Damit kann die Zieldrehung festgelegt werden, wenn sich das Gerät im festen Hochformat/Querformat befindet. (Ib278f)
  • Neue öffentliche APIs vom Typ „getGeschätzteCaptureLatenzRange“ in der ExtensionsManager-Klasse verfügbar gemacht. (I6a8ec)
  • Eingestellter ExtensionsErrorListener. Derzeit wird mit dieser Oberfläche nur geprüft, ob beim Aktivieren von Erweiterungsmodi eine Vorschau oder eine Bildaufnahme fehlt. CameraX fügt automatisch eine zusätzliche Vorschau oder Bildaufnahme hinzu, damit die Funktionen der Erweiterung einwandfrei funktionieren. Danach werden über diese Oberfläche keine Fehler mehr gemeldet. (I47d9e)
  • Neue öffentliche „ExtensionManager“-APIs, „isExtensionAvailable“ und „getExtensionEnabledCameraSelector“-APIs sowie eingestellte alte <EffectName><UseCase>Extender-Klassen und zugehörige APIs wurden offengelegt. (I329e6)

Version 1.0.0-alpha25

2. Juni 2021

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

API-Änderungen

  • Die experimentellen APIs von ExperimentalCameraFilter befinden sich jetzt in der experimentellen Phase. Sie werden zu formalen APIs. Sie können ohne kommentiertes Opt-In verwendet werden. (I4bc94)
  • Fügen Sie ein Dienstprogramm hinzu, das Koordinaten zwischen Anwendungsfällen umwandelt. Anwendungsbeispiel: Im ImageAnalysis-Anwendungsfall erkannte 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 veröffentlicht. Version 1.0.0-alpha24 enthält diese Commits.

Fehlerkorrekturen

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

Kameraerweiterungen und Version 1.0.0-alpha23 ansehen

24. März 2021

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

API-Änderungen

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

Fehlerkorrekturen

  • Angepinnte Abhängigkeiten der Kameraansicht, die auf 1.0.0-Artefakten basieren Abhängig von der Kameraansicht führt die Gradle-Abhängigkeitsauflösung nicht mehr dazu, dass Kamerakern, Kamera-Kamera2 und Kameralebenszyklus automatisch auf die neuesten Artefakte der Version 1.1.0 aktualisiert werden. Die Kameraansicht ist jedoch weiterhin mit diesen Artefakten kompatibel, wenn für sie explizit 1.1.0 verwendet wird. (Ic8fa1, b/181599852)
  • Problem mit der gestreckten Vorschau auf dem Samsung A3 in der Vorschauansicht behoben. (Iacb30, b/180121821)
  • Das Problem, dass die Kameraauswahl nicht vor der Initialisierung der Kamera festgelegt werden konnte, wurde behoben. (Ic8bd0)

Kameraerweiterungen und Ansicht von Version 1.0.0-alpha22

24. Februar 2021

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

API-Änderungen

Fehlerkorrekturen

  • Fehlerkorrektur für ExtensionsErrorListener, sodass jetzt Fehler gemeldet werden, wenn nur Preview oder ImageCapture gebunden ist. (I5ae39)

Kameraerweiterungen und Version 1.0.0-alpha21 ansehen

27. Januar 2021

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

Wird veröffentlicht, um andere Artefakte aus der Kamerabibliothek zu unterstützen.

Kameraerweiterungen und Version 1.0.0-alpha20 ansehen

16. Dezember 2020

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

Wird veröffentlicht, um andere Artefakte aus der Kamerabibliothek zu unterstützen.

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

Fehlerkorrekturen

  • Die Anmerkung „@ExperimentalVideo“ wurde für die Kameraansicht eingeführt. Diese Annotation kennzeichnet APIs mit experimentellen Videofunktionen, die sich im Laufe der Zeit noch ändern können. Jede Methode, die diese APIs verwendet, sollte die Annotation @UseExperimental mit ExperimentalVideo als markerClass verwenden. (I6d729)

Kameraerweiterungen Version 1.0.0-alpha18

14. Oktober 2020

androidx.camera:camera-extensions:1.0.0-alpha18 wird freigegeben. Version 1.0.0-alpha18 enthält diese Commits.

Fehlerkorrekturen

  • Die Latenz bei CameraX-Initialisierung und bindToLifecycle (I61dc5) wurde verbessert.
  • <UseCase>.getTargetRotation() gibt bei Aufruf Surface.ROTATION_0 zurück, bevor es an eine Kamerainstanz angehängt wird, es sei denn, für den Builder oder Anwendungsfall wurde eine targetRotation festgelegt. (I80fcd)

Camera View-Version 1.0.0-alpha18

14. Oktober 2020

androidx.camera:camera-view:1.0.0-alpha18 wird freigegeben. Version 1.0.0-alpha18 enthält diese Commits.

Wird veröffentlicht, um andere Artefakte aus der Kamerabibliothek zu unterstützen.

Kamera-Erweiterungen Version 1.0.0-alpha17

23. September 2020

androidx.camera:camera-extensions:1.0.0-alpha17 wird freigegeben. Version 1.0.0-alpha17 enthält diese Commits.

Fehlerkorrekturen

Camera-View-Version 1.0.0-alpha17

23. September 2020

androidx.camera:camera-view:1.0.0-alpha17 wird freigegeben. Version 1.0.0-alpha17 enthält diese Commits.

Fehlerkorrekturen

Kameraerweiterungen Version 1.0.0-alpha16

16. September 2020

androidx.camera:camera-extensions:1.0.0-alpha16 wird freigegeben. Version 1.0.0-alpha16 enthält diese Commits.

Fehlerkorrekturen

  • In ExtensionsManager wurde eine Methode zum Abrufen eines Extensions-Objekts hinzugefügt, mit dem Erweiterungen auf Kamerainstanzen aktiviert und abgefragt werden können (I4fb7e).

Camera View-Version 1.0.0-alpha16

16. September 2020

androidx.camera:camera-view:1.0.0-alpha16 wird freigegeben. Version 1.0.0-alpha16 enthält diese Commits.

API-Änderungen

  • PreviewView#setDeviceRotationForRemoteDisplayMode() und PreviewView#getDeviceRotationForRemoteDisplayMode() wurden entfernt. Die beiden Methoden dienen der Anpassung der Vorschaudrehung, wenn die gewünschte Drehung nicht die Displaydrehung ist (z.B. Remote-Display). Wenn die Vorschau ohne Display jetzt ausgeliefert werden soll, legen Sie die gewünschte Rotation mit Preview#setTargetRotation() und dem neu hinzugefügten PreviewView#getViewPort(targetRotation) fest. (Ib62cc)
  • createSurfaceProvider() wurde in getSurfaceProvider() umbenannt. Die Methode gibt immer dieselbe Instanz von Preview.SurfaceProvider zurück. (Iff83c)

Fehlerkorrekturen

  • 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 Vorschau zulassen. Die Transformationsinformationen werden berechnet und bei Bedarf über einen neuen TranformationInfoListener-Callback an den Nutzer zurückgegeben. (I21470)

Bekannte Probleme

  • In PreviewView wird OnClickListener#onClick() nicht aufgerufen, wenn der Endnutzer auf „PreviewView“ klickt. Das Touch-Ereignis wird fälschlicherweise von PreviewView#onTouchEvent() verwendet. 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 wird freigegeben. Version 1.0.0-alpha15 enthält diese Commits.

Fehlerkorrekturen

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

    Camera View Version 1.0.0-alpha15

    19. August 2020

androidx.camera:camera-view:1.0.0-alpha15 wird freigegeben. Version 1.0.0-alpha15 enthält diese Commits.

Fehlerkorrekturen

  • DisplayOrientedMeteringPointFactory übernimmt eine CameraInfo-Instanz anstelle einer CameraSelector-Instanz, sodass es eine direkte Zuordnung zur Kamera gibt, für die die Factory Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, nehmen auch eine CameraInfo-Instanz anstelle von CameraSelector auf. (I400c1)
  • TextureViewMeteringPointFactory wurde entfernt. PreviewView bietet eine öffentliche API (createMeteringPointFactory()) zum Erstellen einer Metering Point Factory, unabhängig davon, ob eine TextureView oder SurfaceView verwendet wird. (ID693)
  • Benennen Sie die SURFACE_VIEW/TEXTURE_VIEW-Implementierungsmodi von PreviewView in PERFORMANCE/COMPATIBLE um. PERFORMANCE ist der alte SURFACE_VIEW-Modus und COMPATIBLE der alte TEXTURE_VIEW-Modus. (I0edc2)
  • Überschreiben Sie für die Bildaufnahme die Markierung „Horizontal spiegeln“ in den Metadaten basierend auf der Kamerarichtung. (I28499)

Kamera-Erweiterungen Version 1.0.0-alpha14

22. Juli 2020

androidx.camera:camera-extensions:1.0.0-alpha14 wird freigegeben. Version 1.0.0-alpha14 enthält diese Commits.

Camera View Version 1.0.0-alpha14

22. Juli 2020

androidx.camera:camera-view:1.0.0-alpha14 wird freigegeben. 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 wird freigegeben. Version 1.0.0-alpha13 enthält diese Commits.

Fehlerkorrekturen

  • Es wurden experimentelle Oberflächen zum Filtern von Kameras nach Kamera-ID und CameraCharacteristics hinzugefügt. (I28f61)

Camera View Version 1.0.0-alpha13

24. Juni 2020

androidx.camera:camera-view:1.0.0-alpha13 wird freigegeben. Version 1.0.0-alpha13 enthält diese Commits.

Fehlerkorrekturen

  • CameraView stürzt bei der Bindung an einen LifecycleOwner nicht mehr ab, wenn der Lebenszyklus kurz nach der Bindung in den Status DESTROYED übergeht. Durch das Binden von Lebenszyklen im Status GELÖSCHT wird nicht versucht, die Kamera zu öffnen. (I7c2b8)
  • PreviewView StreamState ist jetzt über CameraView.getPreviewStreamState() (I21a2b) verfügbar

Kameraerweiterungen Version 1.0.0-alpha12

10. Juni 2020

androidx.camera:camera-extensions:1.0.0-alpha12 wird freigegeben. Version 1.0.0-alpha12 enthält diese Commits.

Fehlerkorrekturen

  • Der Absturz beim App-Start beim Initialisieren von CameraX im Modus „Bitte nicht stören“ wurde behoben. Ein InitializationException enthält ein CameraUnavailableException, das auf den ListenableFuture des Initialisierungsergebnisses festgelegt wird, anstatt die Anwendung abstürzen zu lassen. (I9909a, b/149413835)

Camera View Version 1.0.0-alpha12

10. Juni 2020

androidx.camera:camera-view:1.0.0-alpha12 wird freigegeben. Version 1.0.0-alpha12 enthält diese Commits.

Fehlerkorrekturen

  • Fügen Sie die PreviewView#getBitmap() API hinzu, die eine Bitmap-Darstellung des auf der Vorschauoberfläche angezeigten Inhalts zurückgibt. (I9b500, b/157659818)

Kameraerweiterungen Version 1.0.0-alpha11

27. Mai 2020

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

Camera View Version 1.0.0-alpha11

27. Mai 2020

androidx.camera:camera-view:1.0.0-alpha11 wird freigegeben. Version 1.0.0-alpha11 enthält diese Commits.

API-Änderungen

  • Fügen Sie die PreviewView#getPreviewStreamState API hinzu, mit der Anwendungen feststellen können, ob die Vorschau gestreamt wird. Befindet sich die Vorschauansicht im Modus TEXTURE_VIEW, sorgt der STREAMING-Status auch dafür, dass das Vorschaubild sichtbar ist. (Ic0906, b/154652477)
  • Die PreviewView#setDeviceRotationForRemoteDisplayMode() API wurde hinzugefügt, um die Geräterotation für Transformationsberechnungen zu ermöglichen, wenn die Anwendung im Remote-Anzeigemodus ausgeführt wird. (I59b95, b/153514525)

Fehlerkorrekturen

  • Das Problem mit Verzerrungen in der Vorschau bei FULL/LIMITED/LEVEL_3-Kameras mit Android 7.0 und niedriger wurde behoben. Der ImplementationMode#TEXTURE_VIEW-Modus wird erzwungen, wenn Android 7.0 oder niedriger installiert ist. (I83e30, b/155085307)
  • Der CameraInfo-Parameter wurde aus PreviewView#createSurfaceProvider() entfernt. PreviewView ruft ihn jetzt intern aus SurfaceRequest ab. (If18f0, b/154652477)
  • Das Standard-Seitenverhältnis von VideoCapture wurde in CameraView auf 16:9 geändert. (Ie6a7b, b/153237864)
  • Beheben Sie PreviewView Probleme mit dem schwarzen Bildschirm, wenn Sie das Fragment Preview herausgewischt und dann in ViewPager2 zurückgewischt haben. Das Problem bei removeView(previewview) und dann addView(previewView) wurde ebenfalls behoben. (Iab555, b/149877652, b/147354615)
  • Aktualisieren Sie die CameraView#takePicture() API, um das Speichern von Bildern in Uri und OutputStream zuzulassen. Aktualisieren Sie die Test-App so, dass Uri als kanonisches Beispiel verwendet wird. (Ia2459, b/153607583)
  • Sie können den Skalierungstyp von PreviewView ü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/zu erhalten. (Ia8974, b/153014831)
  • Legen Sie für PreviewView standardmäßig eine Hintergrundfarbe fest, falls noch keine vorhanden ist. Dadurch wird verhindert, dass der dahinter bezogene Inhalt vor Beginn des Vorschaustreams sichtbar ist. (I09fad)

Kamera-Erweiterungen Version 1.0.0-alpha10

15. April 2020

androidx.camera:camera-extensions:1.0.0-alpha10 wird freigegeben. Version 1.0.0-alpha10 enthält diese Commits.

Fehlerkorrekturen

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

Camera-View-Version 1.0.0-alpha10

15. April 2020

androidx.camera:camera-view:1.0.0-alpha010 wird freigegeben. Version 1.0.0-alpha010 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde ein früheres bekanntes Problem behoben, bei dem die OberflächenView-Implementierung von PreviewView auf bestimmten Geräten nicht richtig funktionierte und dazu führte, dass die App nach der Wiederaufnahme der Vorschau abstürzte. (I5ed6b)

Kamera-Erweiterungen Version 1.0.0-alpha09

1. April 2020

androidx.camera:camera-extensions:1.0.0-alpha09 wird freigegeben. Version 1.0.0-alpha09 enthält diese Commits.

Fehlerkorrekturen

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

Camera View Version 1.0.0-alpha09

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

Bekannte Probleme

  • Die Verwendung von ImplementationMode.SURFACE_VIEW mit PreviewView funktioniert auf bestimmten Geräten möglicherweise nicht richtig. Das liegt daran, dass die für die Vorschau verwendete SurfaceView-Oberfläche ihre Oberfläche ungültig macht, wenn der Lebenszyklus des Fensters, in dem sie sich befindet, beendet wird. Beim Neustart wird die Kamera wieder geöffnet und versucht möglicherweise, die Vorschau fortzusetzen, bevor die Oberfläche von SurfaceView wieder gültig ist. Vorerst solltest du 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. Dabei wird eine CameraInfo-Instanz verwendet, für die Nullwerte zulässig sind, um die Vorschau nach Möglichkeit mithilfe von ImplementationMode.SURFACE_VIEW zu optimieren. Wenn eine Null-Instanz übergeben wird oder Sie den bevorzugten Implementierungsmodus auf ImplementationMode.TEXTURE_VIEW festlegen, wird ImplementationMode.TEXTURE_VIEW intern verwendet.
  • Das folgende Codebeispiel zeigt, wie ein Anwendungsfall für die Vorschau zuvor mit PreviewView verwendet wurde.

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

    Jetzt können Sie Folgendes schreiben:

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

  • PreviewView.setScaleType() wurde hinzugefügt, mit dem der Skalierungstyp der Vorschau festgelegt werden kann. Einer der Werte aus PreviewView.ScaleType ist zulässig. Der Standardwert ist PreviewView.ScaleType.FILL_CENTER.

  • PreviewView.getScaleType()“ wurde hinzugefügt.

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

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

Fehlerkorrekturen

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

Kamera-Erweiterungen Version 1.0.0-alpha08

26. Februar 2020

androidx.camera:camera-extensions:1.0.0-alpha08 wird freigegeben. 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 freigegeben. Version 1.0.0-alpha08 enthält diese Commits.

Fehlerkorrekturen

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

Kamera-Erweiterungen Version 1.0.0-alpha07

10. Februar 2020

androidx.camera:camera-extensions:1.0.0-alpha07 wird freigegeben. Version 1.0.0-alpha07 enthält diese Commits.

Fehlerkorrekturen

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

Camera View Version 1.0.0-alpha07

10. Februar 2020

androidx.camera:camera-view:1.0.0-alpha07 wird freigegeben. Version 1.0.0-alpha07 enthält diese Commits.

API-Änderungen

  • In der TextureView-Implementierung von PreviewView wird jetzt die Größe der TextureView auf die Ausgabegröße des Kamerasensors festgelegt, bevor sie auf das übergeordnete PreviewView skaliert wird. Wenn die Kameravorschau einen ganzen Teil der Benutzeroberfläche ausfüllen soll (z. B. den gesamten Bildschirm), solltest du für die Größe von PreviewView keinen festen Wert festlegen oder den Inhalt umbrechen (z. B. mithilfe des Attributs „wrap_content“). Andernfalls füllt die Kameravorschau eventuell nur einen Teil des PreviewView aus (falls die Größe des Kamerasensors kleiner ist). Stattdessen sollten Sie PreviewView so groß wie das übergeordnete Element festlegen, z. B. mithilfe des Attributs „match_parent“. (1204869)

Fehlerkorrekturen

  • ImageCapture wurde aktualisiert, damit Bilder in Uri und OutputStream gespeichert werden können. Überlastete takePicture-Methoden wurden in einer kombiniert. Die Test-App wurde aktualisiert, damit Uri als kanonisches Beispiel verwendet wird. (Ia3bec)
  • Preview.PreviewSurfaceProvider wurde in Preview.SurfaceProvider umbenannt. Für SurfaceProviders müssen Entwickler keine eigenen ListenableFuture mehr erstellen. Die Bereitstellung 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 zuvor in ImageCapture.OnImageSavedCallback.onError() und ImageCapture.OnImageCapturedCallback.onError() übergebenen Argumente wurden jetzt durch ein einzelnes Argument ImageCaptureException ersetzt, das weiterhin alle zuvor übergebenen Informationen enthält.
  • Das zuvor an ImageCapture.OnImageSavedCallback.onImageSaved() übergebene Dateiargument wurde entfernt. (I750d2)
  • Die API wurde mit den Methoden getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() und getLinearZoom() aktualisiert, um CameraInfo mit getZoomState() zusammenzuführen, wodurch eine ZoomState-Instanz zurückgegeben wird. (Ib19fe)

Kamera-Erweiterungen Version 1.0.0-alpha06

22. Januar 2020

androidx.camera:camera-extensions:1.0.0-alpha06 wird freigegeben. Version 1.0.0-alpha06 enthält diese Commits.

Updates

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

Camera View Version 1.0.0-alpha06

22. Januar 2020

androidx.camera:camera-view:1.0.0-alpha06 wird freigegeben. Version 1.0.0-alpha06 enthält diese Commits.

Updates

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

Kameraerweiterungen Version 1.0.0-alpha05

18. Dezember 2019

androidx.camera:camera-extensions:1.0.0-alpha05 wird freigegeben. Version 1.0.0-alpha05 enthält diese Commits.

Fehlerkorrekturen

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

Camera View Version 1.0.0-alpha05

18. Dezember 2019

androidx.camera:camera-view:1.0.0-alpha05 wird freigegeben. Version 1.0.0-alpha05 enthält diese Commits.

Bekannte Probleme

  • Das Seitenverhältnis ist möglicherweise falsch, wenn Sie PreviewView verwenden (b/146215202).

Neue Funktionen

  • Implementierung einer neuen Klasse namens PreviewView.TextureViewImplementation, die den Lebenszyklus von SurfaceTexture mit der Nutzung der TextureView-Oberfläche durch die Kamera synchronisiert.

Kamera-Erweiterungen Version 1.0.0-alpha04

4. Dezember 2019

androidx.camera:camera-extensions:1.0.0-alpha04 wird freigegeben. Version 1.0.0-alpha04 der Kamera-Erweiterungen enthält diese Commits

API-Änderungen

  • Bei der Überprüfung auf Verfügbarkeit und Aktivierung einer Erweiterung wird jetzt ein CameraSelector als Eingabeparameter verwendet. Dies muss dieselbe CameraSelector sein, 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()
    )
    

Camera View Version 1.0.0-alpha04

4. Dezember 2019

androidx.camera:camera-view:1.0.0-alpha04 wird freigegeben. Version 1.0.0-alpha04 der Kameraansicht enthält diese Commits

API-Änderungen

  • Zum einfachen Anzeigen der Ausgabe des Anwendungsfalls „Vorschau“ in einer Anwendung wird eine PreviewView-Klasse bereitgestellt.
  • PreviewView kann im Layout enthalten sein:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
      … />
    
  • PreviewView stellt ein PreviewSurfaceProvider-Element bereit, mit dem sich ein Anwendungsfall aus der Vorabversion einfach verbinden lässt

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

  • Einige Methodenparameter haben die Null-Zulässigkeit geändert

Camera-Erweiterungen und Camera-View-Version 1.0.0-alpha03

9. Oktober 2019

androidx.camera:camera-extensions:1.0.0-alpha03 und androidx.camera:camera-view:1.0.0-alpha03 werden veröffentlicht. Dies sind die in camera-extensions:1.0.0-alpha03 enthaltenen Commits und die in camera-view:1.0.0-alpha03 enthaltenen Commits.

Neue Funktionen

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

Kamera-Erweiterungen und Camera-View-Version 1.0.0-alpha02

5. September 2019

androidx.camera:camera-extensions:1.0.0-alpha02 und androidx.camera:camera-view:1.0.0-alpha02 werden freigegeben. Dies sind die in „kamera-extensions:1.0.0-alpha02“ enthaltenen Commits und die enthaltenen Commits „camera-view:1.0.0-alpha02“.

  • Es wurden Tests hinzugefügt, mit denen geprüft wird, ob Zeitstempel korrekt in PreviewImageProcessorImpl implementiert sind.
  • Beheben Sie den Testfehler ExtensionTest auf Nexus 5 (API-Level 21) und prüfen Sie, ob eine Vorschau verfügbar ist.

Kamera-Erweiterungen und Camera-View-Version 1.0.0-alpha01

7. August 2019

androidx.camera:camera-extensions:1.0.0-alpha01 und androidx.camera:camera-view:1.0.0-alpha01 werden freigegeben. Dies sind die in „kamera-extensions:1.0.0-alpha01“ enthaltenen Commits und die enthaltenen Commits „camera-view:1.0.0-alpha01“

  • Neue Mediathek 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 „Kameraansicht“. Diese Bibliothek ist noch in der Entwicklung.