CameraX
In dieser Tabelle sind alle Artefakte in der Gruppe androidx.camera
aufgeführt.
Artefakt | Stabile Version | Release Candidate | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
camera-camera2 | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-core | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-compose | - | – | - | 1.5.0-alpha04 |
camera-effects | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-extensions | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-feature-combination-query | - | – | - | 1.5.0-alpha04 |
camera-feature-combination-query-play-services | - | – | - | 1.5.0-alpha04 |
camera-lifecycle | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-mlkit-vision | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-view | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
camera-video | 1.4.1 | - | - | 1.5.0-alpha04 |
Gerätetests
CameraX wird in unserem Lab auf vielen Geräten getestet. Eine Liste der Geräte, die sich derzeit im Lab befinden, finden Sie unter Im CameraX Lab getestete Geräte.
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von CameraX hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre App oder Ihr Modul die Abhängigkeiten für die erforderlichen Artefakte hinzu:
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-alpha03" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.5.0-alpha03" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Kamera-Sucher-Komposition, Version 1.0
Version 1.0.0-alpha02
12. Juni 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
wird veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Version 1.0.0-alpha01
14. Mai 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
wird veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Neue Funktionen
- Neue Bibliothek Diese Bibliothek führt einen nativen Compose-Sucher ein, der mit CameraX und Camera2 verwendet werden kann. Der zusammensetzbare Sucher unterstützt verschiedene Seitenverhältnisse und die Verarbeitung von Touch-Ereignissen.
Kamera-Sucherversion 1.4
Version 1.4.0-alpha07
12. Juni 2024
androidx.camera:camera-viewfinder:1.4.0-alpha07
und androidx.camera:camera-viewfinder-core:1.4.0-alpha07
werden freigegeben. Version 1.4.0-alpha07 enthält diese Commits.
Version 1.4.0-alpha06
14. Mai 2024
androidx.camera:camera-viewfinder:1.4.0-alpha06
und androidx.camera:camera-viewfinder-core:1.4.0-alpha06
werden freigegeben. Version 1.4.0-alpha06 enthält diese Commits.
API-Änderungen
- Benennen Sie die
ImplementationMode
-Enume vonViewfinder
um, damit sie die zugrunde liegenden Implementierungen besser widerspiegeln, und fügen Sie feste Konstanten fürTransformationInfo.sourceRotation
hinzu. (Ic6149) ZoomGestureDetector.ZoomEvent
wurde hinzugefügt, um die Status einer Zoomgeste zu kapseln. (I84cdf)
Kameraversion 1.5
Version 1.5.0-alpha04
11. Dezember 2024
androidx.camera:camera-*:1.5.0-alpha04
wird veröffentlicht. Version 1.5.0-alpha04 enthält diese Commits.
API-Änderungen
ImageCapture.Builder#setOutputFormat
undImageCaptureCapabilities#getSupportedOutputFormats
als stabile APIs verfügbar gemacht (Ieb04a)- Fügen Sie
VideoCapture.getResolutionInfo()
hinzu, um die Auflösungsinformationen zu erhalten, wenn einVideoCapture
an einen Lebenszyklus gebunden ist. (Icb478) PreviewView.getScreenFlash
undPreviewView.setScreenFlashOverlayColor
als stabile APIs verfügbar gemacht. (I74fee)
Fehlerkorrekturen
- Das Problem, dass auf dem Vivo 1610 keine Fotos aufgenommen werden konnten, wenn im Dunkeln mit Blitz fotografiert wurde, wurde behoben. (I366f4)
- Das Problem wurde behoben, dass die Taschenlampe auf dem Redmi Note 6 Pro nach der Bildaufnahme unerwartet ausgeschaltet wurde. (I2e0e8, b/377144569)
- Ein Problem auf Pixel-Geräten mit Android 15 wurde behoben, bei dem im Nachtmodus in den Erweiterungen keine Standbilder aufgenommen werden konnten, bis die Kamera auf ein Objekt in der Nähe fokussiert hatte. (I228d4)
- Das Problem bei der Aufnahme von Standbildern wurde behoben, wenn Erweiterungen aktiviert und
VideoCapture
miteinander verbunden sind. (I5c745) - Unterstützung für die Aufnahme von
UltraHDR
-Standbildern für Erweiterungen aktiviert, sofern das Gerät diese Funktion unterstützt (I48300) - Ein Problem mit dem Blitzzeitpunkt bei der Blitzaufnahme mit
CameraEffect
-Targeting auf TCL-Geräten wurde behoben. (I7698c)
Version 1.5.0-alpha03
30. Oktober 2024
androidx.camera:camera-*:1.5.0-alpha03
wird veröffentlicht. Version 1.5.0-alpha03 enthält diese Commits.
API-Änderungen
- APIs für das Ausgabeformat für RAW und RAW + JPEG hinzufügen
ImageCapture
, die Gerätefunktionsprüfung wird inImageCaptureCapabilities#getSupportedOutputFormats
freigegeben. MitOUTPUT_FORMAT_RAW
werden RAW-Bilder im Adobe DNG-Format aufgenommen. MitOUTPUT_FORMAT_RAW_JPEG
werden gleichzeitig RAW- und JPEG-Bilder aufgenommen. Die neueImageCapture#takePicture
API wird für die gleichzeitige Bildaufnahme verwendet. Sie muss zweiOutputFileOptions
bereitstellen, die erste für das RAW-Bild und die zweite für das JPEG-Bild. (Ib0f3d)
Fehlerkorrekturen
- Das Problem mit der Unterbelichtung von Vorschau und Video auf TCL-Geräten, wenn
VideoCapture
aktiviert ist, wurde behoben. (Id7a64) - Das Problem wurde behoben, dass beim Aufrufen von
startFocusMetering
mitPreviewView.getMeteringPointFactory
nicht die richtigen Sensorkoordinaten zurückgegeben werden, wenn ein Effekt aktiviert ist oder vier Anwendungsfälle gebunden sind (Streamfreigabe). (I916c5, b/345993685) - Das Ereignis
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
wird nicht ausgelöst, wenn bei der Videoaufzeichnung nicht genügend Speicherplatz vorhanden ist. (I35779, b/356399842)
Version 1.5.0-alpha02
2. Oktober 2024
androidx.camera:camera-*:1.5.0-alpha02
wird veröffentlicht. Version 1.5.0-alpha02 enthält diese Commits.
Neue Funktionen
- Neue APIs zum Abfragen der vom Gerät unterstützten Kamerafunktionen. Beispielsweise kann geprüft werden, ob HDR und 60 fps gleichzeitig aktiviert werden können. Es enthält zwei Artefakte: „camera-feature-combination-query“ und „camera-feature-combination-query-play-services“.
Dies ist eine kompatible Version der
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
API von camera2 mit zusätzlichen Daten, die von den Google Play-Diensten bereitgestellt werden.
Fehlerkorrekturen
- Problem mit der Zielframerate von
Preview/VideoCapture
auf Geräten der LEGACY-Ebene behoben Die über diesetTargetFrameRate
- oderCamera2Interop
-API festgelegte Zielframerate wurde immer durch den vonAeFpsRangeLegacyQuirk
bereitgestellten Wert überschrieben. Durch diese Fehlerbehebung wird in der CameraX-Bibliothek der über diesetTargetFrameRate
- oderCamera2Interop
-API festgelegte Wert berücksichtigt. (Ie2d32) - Es wurden Funktionen für Blitz/Taschenlampe/3A für die Bildaufnahme mit
CameraEffect
hinzugefügt. Die Bilder mitCameraEffect
sollten jetzt dieselben Verarbeitungen vor und nach der Aufnahme (z.B. Blitzauslöser, 3A-Konvergenz usw.) wie die Bilder ohneCameraEffect
haben. (I5ff30) - Problematische Ausgabegrößen für
ImageAnalysis
auf dem Samsung SM-A057G wurden ausgeschlossen. WennImageAnalysis
eine Auflösung von mindestens 1920 × 1440 Pixeln verwendet, wird in der Vorschau ein schwarzer Bildschirm angezeigt.ExcludedSupportedSizesQuirk
wurde auf das SM-A057G angewendet, um das Problem zu vermeiden. (I63dfe, b/365877975) - Das Problem mit der
Preview/VideoCapture
-Ziel-Framerate wurde behoben, wenn der Stream-Freigabemechanismus intern aktiviert ist, um einen Stream fürPreview
undVideoCapture
freizugeben. (I4fdac) - Die Problemumgehung für das Problem mit falschen JPEG-Bildmetadaten auf Samsung S10e und S10+ wurde aktiviert. Nach der Fehlerbehebung kann CameraX das JPEG-Bild speichern oder es werden beim Aufrufen der
ImageProxy.toBitmap()
-Funktion auf diesen Geräten fehlerfreie Bitmap-Objekte zurückgegeben, wenn das Problem mit den falschen JPEG-Bildmetadaten auftritt. (Iae493, b/356428987) - Erweiterungen für die Rückkamera des Samsung A52s mit der ID 0 wurden deaktiviert, da beim Aufnehmen von HDR-Bildern native Abstürze auftreten können und die Konfiguration von Aufnahmesitzungen für die Modi „BOKEH“ oder „FACE_RETOUCH“ fehlschlagen kann. (I03ec9, b/364152642)
- Das Ereignis
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
wird nicht ausgelöst, wenn bei der Videoaufzeichnung nicht genügend Speicherplatz vorhanden ist. (Ia5b4f, b/356399842) - Behoben: Beim Oppo A5 (CPH1931) schlug der zweite Versuch, eine Videoaufnahme zu starten, fehl. (I181d6)
Version 1.5.0-alpha01
4. September 2024
androidx.camera:camera-*:1.5.0-alpha01
wird veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.
API-Änderungen
- API zum Festlegen von Kompositionseinstellungen für die gleichzeitige Videoaufnahme mit zwei Kameras bereitstellen Zu den Einstellungen gehören der Alphawert für das Überblenden, der Offset in X- und Y-Koordinaten sowie die Skalierung der Breite und Höhe des Fensters für die Kameraanzeige. Offset, Breite und Höhe werden in normalisierten Gerätekoordinaten angegeben. (Ia2b8a)
CameraProvider.getCameraInfo
als formale API verfügbar gemacht. (I901cd)- API
PendingRecording.withAudioEnabled(boolean initialMuted)
zum Steuern des ursprünglichen Stummschaltungsstatus hinzugefügt. (I635c3, b/354829267)
Fehlerkorrekturen
- Der Absturz, der auftrat, wenn
bindToLifecycle
mit einer zerstörtenLifecycleOwner
aufgerufen wurde, wurde behoben. (I6e6d8) - Die Vorschau der Frontkamera ist bei der Verknüpfung mit
VideoCapture
auf dem Motorola Edge 20 Fusion schwarz. (I1fe88) - Die Konfiguration für die Erkennung von Zoom-Gesten in
PreviewView
wurde optimiert, um die flüssige Ausführung zu verbessern. (I04ffc)
Kameraversion 1.4
Version 1.4.1
11. Dezember 2024
androidx.camera:camera-*:1.4.1
wird veröffentlicht. Version 1.4.1 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem auf Pixel-Geräten mit Android 15 wurde behoben, bei dem im Nachtmodus in den Erweiterungen keine Standbilder aufgenommen werden konnten, bis die Kamera auf ein Objekt in der Nähe fokussiert hatte. (I228d4)
- Das Problem mit der Fehlfunktion von
ImageCapture#takePicture
wurde behoben, wenn Erweiterungen aktiviert sind undVideoCapture
miteinander verknüpft ist. (I5c745)
Version 1.4.0
30. Oktober 2024
androidx.camera:camera-*:1.4.0
wird veröffentlicht. Version 1.4.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.3.0
CameraX 1.4.0 bietet viele spannende Updates. Übersicht:
Hauptfunktion: 10-Bit-HDR:
- Sie können ganz einfach beeindruckende HDR-Fotos und ‑Videos aufnehmen.
- Unterstützt HLG und 10-Bit-HEVC-Codierung.
- Sie können sich eine Vorschau von 10-Bit-HDR ansehen und die Gerätefunktionen abfragen.
- Funktioniert mit
UltraHDR
-Bildern und HDR-Videos auf immer mehr Geräten.
Weitere coole Funktionen:
- Kotlin-Erweiterungen: Die Suspend-Funktionen
takePicture
undawaitInstance
wurden hinzugefügt. - Echtzeiteffekte: Sie können Effekte wie Wasserzeichen und Objektmarkierungen anwenden.
- CameraController API: Neue Steuerelemente für die Konfiguration der Videoaufnahme.
- Stabilisierung in der Vorabversion: Gerätefunktionen abfragen und Stabilisierung aktivieren.
- Verbesserungen bei der Videoaufnahme: Bessere Kontrolle über die Qualität und Zugriff auf höhere Auflösungen.
- Integration von CameraX-Erweiterungen: Nahtlose Integration mit
VideoCapture
und neuenImageCapture
-Funktionen. - Shutter Sound API: Sie können ganz einfach die regionalen Anforderungen an den Auslösegeräusch prüfen.
- Displayblitz: Bessere Fotos bei wenig Licht mit der Frontkamera.
- Metadata APIs für Kamera-Erweiterungen: APIs zum Anpassen der Stärke von Erweiterungen und zum Abrufen einer Benachrichtigung über den aktuellen Erweiterungsmodus in
ExtensionMode#AUTO
. Weitere Fehlerkorrekturen finden Sie in unseren Beta- und RC-Ankündigungen.
Version 1.4.0-rc04
16. Oktober 2024
androidx.camera:camera-*:1.4.0-rc04
wird veröffentlicht. Version 1.4.0-rc04 enthält diese Commits.
Fehlerkorrekturen
- Das Problem wurde behoben, dass beim Aufrufen von
startFocusMetering
mitPreviewView.getMeteringPointFactory
nicht die richtigen Sensorkoordinaten zurückgegeben werden, wenn ein Effekt aktiviert ist oder vier Anwendungsfälle gebunden sind (Streamfreigabe). (I916c5, b/345993685)
Version 1.4.0-rc03
2. Oktober 2024
androidx.camera:camera-*:1.4.0-rc03
wird veröffentlicht. Version 1.4.0-rc03 enthält diese Commits.
Fehlerkorrekturen
- Es wurden Funktionen für Blitz/Taschenlampe/3A für die Bildaufnahme mit
CameraEffect
hinzugefügt. Die Bilder mitCameraEffect
sollten jetzt dieselben Verarbeitungen vor und nach der Aufnahme (z.B. Blitzauslöser, 3A-Konvergenz usw.) wie die Bilder ohneCameraEffect
haben. (I5ff30) - Die flüssige Funktionsweise des Heranzoomens per Finger-Zoom in
PreviewView
wurde optimiert (I04ffc) - Ultra HDR ist nicht mehr von der 10-Bit-Ausgabefunktion abhängig, da für die Ultra HDR-Unterstützung keine 10-Bit-Ausgabefunktion mehr erforderlich ist. (I96ff2, I0c3b3)
Version 1.4.0-rc02
18. September 2024
androidx.camera:camera-*:1.4.0-rc02
wird veröffentlicht. Version 1.4.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Der Absturz, der auftrat, wenn
bindToLifecycle
mit einer zerstörtenLifecycleOwner
aufgerufen wurde, wurde behoben. (I6e6d8) - In
ScreenFlashView
wurde eine Sichtbarkeitsanimation fürScreenFlash#apply
hinzugefügt. Außerdem wurden Fehler behoben, die auftraten, wenn die Helligkeitsänderung nach einiger Zeit asynchron abgeschlossen wurde. (I37cdb) - Die Bildwiedergabe beim Zoomen wurde verbessert, indem die Zoomeinstellungen im Framework auf unterstützten Geräten überschrieben wurden.
Version 1.4.0-rc01
7. August 2024
androidx.camera:camera-*:1.4.0-rc01
wird veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.
Neue Funktionen
- Es wurde die experimentelle
CameraInfo.getCameraInfo
hinzugefügt, um bestimmte Kamerainformationen bereitzustellen, ohne dass Anwendungsfälle an die Kamera gebunden werden müssen. (I550d1)
API-Änderungen
- Die APIs
PreviewView.getScreenFlash
undPreviewView.setScreenFlashOverlayColor
wurden für Fälle hinzugefügt, in denenScreenFlashView
nicht explizit hinzugefügt wird. (I43945)
Fehlerkorrekturen
- Probleme mit Belichtung und Farbton wurden behoben, die bei der Aufnahme von Bildern bei schlechten Lichtverhältnissen mit aktiviertem Blitz und dem Anwendungsfall „Videoaufnahme“ auftraten. (Ic9814)
- Behebung des Problems, dass bei einer unterbrochenen
takePicture
-Anfrage mit aktivierten Erweiterungen kein Ergebnis zurückgegeben werden konnte und die nächstetakePicture
-Anfrage möglicherweise nicht mehr funktionierte. (Iae78f) - Ein Problem mit Speicherlecks, das bei aktivierten Erweiterungen auftritt, wurde behoben. (Iab276)
- Behebung eines Fehlers bei CameraX-Erweiterungen auf Geräten wie Google Pixel 7/8 und Samsung Galaxy S24-Serie Das Problem, das auf ein
Camera2OutputConfigImpl
-Conversion-Problem im Release-Modus zurückzuführen ist, trat auf, nachdem AGP auf Version 8.5.1 aktualisiert und die Minimierung aktiviert wurde. (I99598, b/354824993)
Version 1.4.0-beta02
12. Juni 2024
androidx.camera:camera-*:1.4.0-beta02
wird veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.
API-Änderungen
- Ähnlich wie bei
VideoCapture
fügen SiesetMirrorMode
für den Vorschau-Use-Case hinzu. Der Spiegelmodus wird für den Vorschaustream überOutputConfiguration.setMirrorMode
ab API 33 und höher unterstützt. Bei älteren APIs ist er inaktiv. (I821f4)
Fehlerkorrekturen
- Das Problem wurde behoben, dass Apps auf dem Samsung Tab A8 keine Fotos aufnehmen konnten, wenn
ImageCapture
unterPreview
+VideoCapture
+ImageCapture
UseCase
die Auflösung 1920 × 1080 auswählte. (I5a463, b/336925549) - Bei der fixen kontinuierlichen Aufzeichnung wird die Aufzeichnung nach dem Wechseln der Kamera möglicherweise nicht fortgesetzt. (Icb0a1)
Version 1.4.0-beta01
14. Mai 2024
androidx.camera:camera-*:1.4.0-beta01
wird veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.
API-Änderungen
ZoomGestureDetector.ZoomEvent
wurde hinzugefügt, um die Status einer Zoomgeste zu kapseln. (I84cdf)
Fehlerkorrekturen
- Ein Fehler wurde behoben, durch den bei der Aufnahme und dem Fokussieren durch Tippen weiterhin nicht die Werte für die wiederholte FPS-/Stabilisierungsmodusanfrage verwendet wurden. Dies kann dazu führen, dass die Aufnahmesitzung noch einmal erstellt wird und auf einigen Geräten Latenzprobleme oder ein Einfrieren der Vorschau auftreten. (I7dc0b)
- Ein Fehler wurde behoben, durch den auf einigen Geräten keine hohen Auflösungen ausgewählt werden konnten, wenn
CameraEffect
aktiviert war. (z. B. 4.000 × 3.000 auf dem Samsung A32 5G). (Ie3ed3, b/337336152) - Ein Absturz beim Aufnehmen von Bildern mit der Vorschau wurde behoben, wenn
ImageCapture
undVideoCapture(UHD)
auf Pixel 4 XL mit API 29 verknüpft sind. (I5b288) - Unterstützung virtueller Geräte: Der an
ProcessCameraProvider
übergebene Kontext behält die Geräte-ID bei, um die Funktionalität in einer virtuellen Geräteumgebung zu gewährleisten. (I5ba48)
Version 1.4.0-alpha05
17. April 2024
androidx.camera:camera-*:1.4.0-alpha05
wird veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.
Neue Funktionen
ProcessCameraProvider
in Kotlin-Implementierung konvertiert (I46d4f)- Es wurden
ImageCapture.takePicture
-Suspend-Funktionen hinzugefügt, damit sie auf idiomatische Weise in Kotlin aufgerufen werden können. (I920be)
API-Änderungen
- Fügen Sie
ImageCapture
APIs für Ausgabeformate undImageCaptureCapabilities
die MethodegetSupportedOutputFormats
hinzu, um die Gerätefunktionen abzufragen. Der Standardwert für das Ausgabeformat istOUTPUT_FORMAT_JPEG
. Damit werden SDR-Bilder im JPEG-Format aufgenommen. Wenn das Gerät Ultra-HDR unterstützt und das Ausgabeformat aufOUTPUT_FORMAT_JPEG_ULTRA_HDR
festgelegt ist, nimmt CameraX komprimierte Ultra-HDR-Bilder im JPEG/R-Bildformat auf. Das Format ist abwärtskompatibel mit dem SDR-JPEG-Format und unterstützt das HDR-Rendering von Inhalten. Das bedeutet, dass Bilder in älteren Apps oder auf älteren Geräten nahtlos als normale JPEG-Dateien angezeigt werden. In Apps und auf Geräten, die für die vollständige Unterstützung des Formats aktualisiert wurden, werden Bilder als HDR angezeigt. (I5de50) - Fügen Sie
PhysicalCameraInfo
inCameraInfo
hinzu, um Informationen zur physischen Kamera abzufragen, und fügen Sie inCameraSelector
einen Setzer/Getter für die physische Kamera-ID hinzu (Ic5b90). - Ersetzen Sie
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
durchImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
. Der Wert der Konstante bleibt gleich. Damit werden alle Konstanten an einem Ort zusammengefasst. (I890bb) - Mit der neuen
RetryPolicy
API können Entwickler das Wiederholungsverhalten für die CameraX-Initialisierung anpassen. (I36dd2) - Ermöglichen des Erstellens von
ImageCaptureLatencyEstimate
-Objekten zur Unterstützung der Testbarkeit (Iaba99) - Fügen Sie ein
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
hinzu. In diesem Fall gibtMlKitAnalyzer
Koordinaten im Koordinatensystem des Kamerasensors zurück. (I3ec61) - API für Metadaten offengelegter Erweiterungen. Über die neuen
CameraExtensionsInfo
- undCameraExtensionsControl
-Oberflächen können Anwendungen die Einstellungen für die Stärke der Erweiterung überwachen und anpassen. Anwendungen können dieCameraExtensionsInfo
- oderCameraExtensionsControl
-Instanz über die neu hinzugefügten MethodenExtensionsManager#getCameraExtensionsInfo()
oderExtensionsManager#getCameraExtensionsControl()
abrufen. (I28e1a) ProcessCameraProvider.awaitInstance
hinzugefügt, eine in der Schwebe befindliche Version vonProcessCameraProvider.getInstance
(Ib22b9)- Fügen Sie eine
PreviewView#getSensorToViewTransform()
API hinzu. Die Matrix stellt die Transformation von Kamerasensorkoordinaten in die Koordinaten vonPreviewView
dar. Damit können Koordinaten von einerUseCase
in eine andere transformiert werden. Beispiel: Transformieren der Koordinaten der erkannten Objekte inImageAnalysis
in einPreviewView
-Overlay. (I947ab) - Die
camera-viewfinder-core
API allgemeiner gestalten, damit sie voncamera-viewfinder
undcamera-viewfinder-compose
verwendet werden kann (I1e295) - Fügen Sie
ViewfinderSurfaceRequest
die FunktiongetSurface
hinzu. (I781a0) - Verwende
camera-viewfinder-core
incamera-viewfinder
und setzeViewfinderSurfaceRequest
undCameraViewfinder
auf die Liste der veralteten Emojis. (I6198c) - Es wurde
ZoomGestureDetector
hinzugefügt, das Skalierungsgesten interpretiert, die speziell für das Zoomen durch Zusammenziehen und Spreizen konfiguriert sind. (Ifafbf)
Fehlerkorrekturen
- Behoben wurde ein Problem bei der Auflösungsauswahl von
ImageAnalysis
im Zusammenhang mit der Standardeinstellung für die Zielauflösung des Analysetools: Die Zielauflösung wurde fälschlicherweise bei 640 × 480 Pixeln belassen, auch wenn in den Anwendungen eine andere Standardeinstellung für die Analysetool-Auflösung festgelegt wurde. Wenn in Anwendungen dieses Problem auftritt (1.3.0 bis 1.3.2) und ein Upgrade auf die neueren Versionen nicht möglich ist, die die Lösung enthalten, kann das Problem durch direktes Festlegen einerResolutionSelector
mit der gewünschten Auflösung und einer übereinstimmendenAspectRatioStrategy
für dieImageAnalysis
UseCase
umgangen werden. (I81f72, b/330091012) - Ein Problem wurde behoben, bei dem eine
takePicture
-Anfrage in der Warteschlange möglicherweise nicht ausgeführt wurde, wenn die aktuelle Anfrage fehlgeschlagen ist. (Ie0801) - Die Prüfung auf ungültige JPEG-Daten wird auf Vivo X60 und X60 Pro angewendet. Dadurch kann das Problem mit ungewöhnlich großen Bildern auf diesen Geräten behoben werden. (I82247, b/288828159)
- Das Problem mit falschen JPEG-Bildmetadaten auf Samsung A24-Geräten wurde behoben. Nach der Fehlerbehebung kann CameraX das JPEG-Bild speichern oder beim Aufrufen der
ImageProxy.toBitmap()
-Funktion auf Samsung A24-Geräten können korrekte Bitmap-Objekte zurückgegeben werden. (I8d6eb, b/309005680) - Die Prüfung auf ungültige JPEG-Daten muss auf allen Samsung-Geräten angewendet werden, wenn das aufgenommene Bild größer als 10 MB ist. Dadurch kann das Problem mit ungewöhnlich großen Bildern auf Samsung-Geräten behoben werden. (Ic2a65, b/288828159)
- Die Unterstützung von
ImageAnalysis
für CameraX-Erweiterungen wurde entfernt, da die Erweiterungsimplementierungen vieler OEMs nicht gut mitImageAnalysis
funktionieren und zu inkonsistenten Problemen führen können. (I2d926)
Version 1.4.0-alpha04
24. Januar 2024
androidx.camera:camera-*:1.4.0-alpha04
wird veröffentlicht. Version 1.4.0-alpha04 enthält diese Commits.
Neue Funktionen
- Neues Artefakt: „camera-effects“: Eine Bibliothek zum Anwenden von Echtzeiteffekten auf die CameraX-Ausgabe, einschließlich
Preview
,VideoCapture
und/oderImageCapture
. Dieses Artefakt enthält OpenGL-Implementierungen derCameraEffect
API, mit denen die Kameraausgabe effizient manipuliert wird. OverlayEffect
: zum Zeichnen von Overlays mit der Canvas API von Android. So kann die App ein Wasserzeichen einfügen oder erkannte Objekte in den Kameraausgaben hervorheben.DynamicRange
APIs für den Anwendungsfall „Vorschau“: Der dynamische Bereich kann jetzt unabhängig vom Anwendungsfall „Video“ für den Anwendungsfall „Vorschau“ festgelegt werden. HDR-Dynamikbereiche wie HLG10 sind dann nur für die Vorschau verfügbar. InCameraInfo
sind auch neue APIs verfügbar, mit denen Sie abfragen können, welche dynamischen Bereiche die einzelnen Kameras unterstützen.
API-Änderungen
ScreenFlashUiCompleter
wurde inScreenFlashListener
umbenannt undScreenFlashUiCompleter#getExpirationTimeMillis
wurde in denexpirationTimeMillis
-Parameter vonScreenFlash#apply
verschoben. (I13944)- Es wurden neue APIs hinzugefügt, mit denen der dynamische Bereich für den Anwendungsfall „Vorschau“ festgelegt und die von den einzelnen Kameras unterstützten dynamischen Bereiche abgefragt werden können. So können HDR-Dynamikbereiche wie HLG10 nur für den Anwendungsfall „Vorschau“ verwendet werden, ohne dass gleichzeitig eine
VideoCapture
gebunden werden muss. (If25e3) getMirroring()
inisMirroring()
umbenannt (I47063)- In CameraX wurde die Unterstützung für die Schätzung der Latenz bei der Aufnahme von Standbildern in Echtzeit hinzugefügt. Mit Kameraerweiterungen können Anwendungen eine API verwenden, die eine Schätzung dazu liefert, wie lange eine Aufnahme dauern wird. Bei der Schätzung werden die aktuellen Umgebungsbedingungen, der Kamerastatus und die Zeit berücksichtigt, die für die Verarbeitung von Anfragen für die Aufnahme mehrerer Frames sowie für die Codierung der verarbeiteten Buffers erforderlich ist. (I05c3a)
ScreenFlashUiControl
wurde inScreenFlash
,ScreenFlashUiControl#applyScreenFlashUi
inScreenFlash#apply
,ScreenFlashUiControl#clearScreenFlashUi
inScreenFlash#clear
umbenannt und die MethodegetScreenFlashUiApplyTimeoutSeconds
hinzugefügt, anstattSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
direkt freizugeben. (Iccdd0)
Fehlerkorrekturen
- Behoben wurde ein Speicherleck, das dazu führte, dass Aktivitäten oder Fragmente nicht freigegeben wurden, wenn Erweiterungen aktiviert waren (I14215).
- Das Problem wurde behoben, bei dem
getZoomRatio
bei einem zunehmenden Zoomverhältnis fälschlicherweise einen niedrigeren Wert zurückgab. (I4aa0d, b/317543616) - Das
ImageCapture#ScreenFlash#clear
-Ereignis wird sofort aufgerufen, wennImageCapture
nicht verknüpft ist oder die Kamera geschlossen ist. Außerdem wurden einige Fehler behoben, bei denen es nie aufgerufen wurde, weil Aufnahmen in diesen Szenarien nicht ordnungsgemäß abgeschlossen wurden. (If99f9) - Der Absturz, der auftritt, wenn der Lebenszyklus beendet wird, bevor die
takePicture
-Anfrage abgeschlossen ist, wurde behoben (Idf017, b/306202751). - Das Problem, dass die Kameravorschau auf einigen Geräten schwarz wird, wenn Erweiterungen aktiviert sind, wurde behoben (I1ffd0).
- Die falsche Dauer der Videoaufzeichnung auf Geräten mit dem Snapdragon 778G SoC wurde behoben. (If6aa7, b/316057919)
Version 1.4.0-alpha03
13. Dezember 2023
androidx.camera:camera-*:1.4.0-alpha03
wird veröffentlicht. Version 1.4.0-alpha03 enthält diese Commits.
Neue Funktionen
CameraInfo.mustPlayShutterSound
wurde hinzugefügt, um anzugeben, ob ein Auslösegeräusch gemäß den regionalen Einschränkungen wiedergegeben werden muss. (Ifda84)OnImageCapturedCallback.onCaptureStarted
undOnImageSavedCallback.onCaptureStarted
wurden hinzugefügt, um zu benachrichtigen, wenn die Kamera mit der Belichtung eines Frames begonnen hat. Es wird empfohlen, an dieser Stelle den Auslöserton oder die Auslöseranimation abzuspielen. (Ic49b3)- Unterstützung für die Bildschirm-Blitzfunktion in CameraX für die Bildaufnahme mit der Frontkamera hinzugefügt. CameraX übernimmt die frameworkseitige API-Verarbeitung und synchronisiert die Zeit mit den UI-Änderungen der Anwendung, falls erforderlich (z.B. AE-Trigger vor der Aufnahme nach Änderung der Farbe/Helligkeit des App-Bildschirms). Apps müssen ihre UI-Implementierungen nur in der
ScreenFlashUiControl
-Benutzeroberfläche hinzufügen, die für CameraX bereitgestellt wird. (I8ae84) - Unterstützung für die UI-seitige Implementierung der Funktion „Bildschirm-Blitz“ in CameraX hinzugefügt. Apps können eine grundlegende
ImageCapture.ScreenFlashUiControl
-Implementierung vonPreviewView
oder der neu hinzugefügtenScreenFlashView
erhalten, die eine einfarbige Overlay-Ansicht hinzufügt und die Bildschirmhelligkeit bei der Aufnahme von Fotos mit dem Bildschirmblitz maximiert. (I1810e)
API-Änderungen
- Unterstützung neuer Erweiterungsfunktionen(Fortschritt des Postview- und Erfassungsprozesses): Es wurden
ImageCapture#getImageCaptureCapabilities()
APIs für Apps hinzugefügt, mit denen die Funktionen des Postview- und Erfassungsfortschritts-Callbacks abgefragt werden können. In Apps kann die Postview-Funktion mithilfe vonImageCapture.Builder#setPostviewEnabled()
aktiviert werden. Die Größe der Postview-Anzeige kann mitImageCapture.Builder#setPostviewResolutionSelector()
ausgewählt werden. WenntakePicture()
aufgerufen wird, könnenonPostviewBitmapAvailable
undonCaptureProcessProgressed
inOnImageSavedCallback
oderOnImageCapturedCallback
implementiert werden, um die Postview- und Verarbeitungsfortschrittsbenachrichtigung abzurufen, sofern unterstützt. (I5cd88) - APIs zum Berechnen der Koordinatentransformation vom Sensor zum aktuellen Puffer mit einem Flag, das angibt, ob die Oberfläche die Informationen zur Kameraausrichtung enthält. (I59096)
- Stellen Sie die API für die Abfrage von
PreviewCapabitlity
in der VorabversionUseCase
bereit. (Ie5b6c) - APIs wurden hinzugefügt, um mehr Qualitäten für
VideoCapture
zu unterstützen.Recorder.Builder#setVideoCapabilitiesSource(int)
kann mitVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
kombiniert werden, um eineRecorder
-Instanz zu erstellen, die mehr Qualitäten alsVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
unterstützt. Ein häufiger Anwendungsfall ist, wenn die Anwendung nach Möglichkeit UHD-Videos aufnimmt, dieCamcorderProfile
des Geräts aber keine UHD-Einstellungen enthält, obwohl der Codec UHD-Videos aufnehmen kann. (Iedbe2, b/263961771) - Fügen Sie
CameraController
einen Getter/Setter für dasImageAnalysis
-Ausgabeformat hinzu. (I9a96c, b/308240643)
Fehlerkorrekturen
- Kamera
1.3.1
: Die Leistung vonProcessCameraProvider#bindToLifecycle()
wurde verbessert. Die wichtigste Änderung besteht darin, dass die Auswahl der am besten geeigneten Größenkombinationen fürUseCases
optimiert wird. Die optimalen Ergebnisse variieren je nach den spezifischenUseCase
-Kombinationen und der Anzahl der unterstützten Ausgabegrößen für die Zielgeräte. (I454f2) - Die Verwendung von
VideoCapture
zulassen, wenn Erweiterungen aktiviert sind. (I91f32) - Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung A71- und M51-Serie behoben Die aufgenommenen JPEG-Bilder enthalten im komprimierten JFIF-Datensegment redundante Padding-Daten mit Nullen. Dadurch haben die aufgenommenen Bilder eine extrem große Dateigröße. Diese redundanten Padding-Daten mit Nullen werden entfernt, damit die aufgenommenen Bilder eine normale Bilddateigröße haben. (I01afc, b/288828159)
- Deaktivieren Sie die
ImageAnalysis
-Unterstützung auf Pixel, um den Fehler zu vermeiden, bei dem auf Pixel versehentlich nicht leereImageAnalysis
-Unterstützungsgrößen zurückgegeben werden. (I7ec31) - Das Leistungsproblem, bei dem die CPU-Auslastung und der Stromverbrauch stiegen, wenn Erweiterungen aktiviert waren, wurde behoben. (Ibdccb)
- Snapdragon 480 wurde der
CameraUseInconsistentTimebaseQuirk
hinzugefügt. Dadurch wird ein Problem unter Android 12 auf Geräten mit diesem Chipsatz behoben, bei dem die Audioinhalte in Aufnahmen um die Zeit verschoben werden, in der sich das Gerät im Ruhemodus befindet. (I58010)
Version 1.4.0-alpha02
18. Oktober 2023
androidx.camera:camera-*:1.4.0-alpha02
wird veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.
API-Änderungen
- Benennen Sie die API in
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
und das Argument um. (I72370) - APIs hinzugefügt, um die Gerätefunktionen abzufragen und die Video-/Vorschaustabilisierung zu aktivieren. (I87544)
- API zum Anpassen der maximalen Zeitüberschreitung für die Wiederholung des Öffnens der Kamera bereitstellen (I0c642)
ProcessCameraProvider.shutdownAsync
als öffentliche Test-API veröffentlicht, damit der Prozesskameraanbieter in Test-Suites verwendet werden kann, in denen CameraX zwischen den Tests möglicherweise auf unterschiedliche Weise initialisiert werden muss. (I9eca7)- APIs zum Konfigurieren des dynamischen Bereichs, der Framerate und des Spiegelmodus der Videoaufnahme hinzugefügt. (Ifb8f7)
OutputSize
wird eingestellt und durchResolutionSelector
ersetzt.ResolutionSelector
ist eine umfassendere Möglichkeit, Auflösungen auszuwählen, und entspricht der Camera Core API. (I93abd, b/286801438)
Fehlerkorrekturen
- Das Problem mit der schwarzen Vorschau auf dem Samsung Galaxy S23 Ultra 5G wurde behoben, wenn die Erweiterungen „Bokeh“ oder „Gesichtsretusche“ mit
ImageAnalysis
auf der Rückkamera aktiviert sind. (I2e8b1) - Probleme mit der Vorschau und dem gestreckten
VideoCapture
auf dem Moto E5 Play wurden behoben. (73dce2)
Version 1.4.0-alpha01
20. September 2023
androidx.camera:camera-*:1.4.0-alpha01
wird veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.
API-Änderungen
- Neue API zum Zugriff auf Informationen zur Audioamplitude während der Aufnahme hinzugefügt. (Id4925)
Fehlerkorrekturen
- Die Stabilität von Erweiterungen lässt sich verbessern, indem die Initialisierungs- und Deinitialisierungsereignisse in der richtigen Reihenfolge ausgelöst werden. (Ib3b8e)
- Fehler bei der Konfiguration der Aufnahmesitzung behoben, wenn die unterstützte Kombination von Oberflächen überschritten wurde, weil intern eine zusätzliche sich wiederholende Oberfläche hinzugefügt wurde. (Id718c)
- Problem mit großen aufgenommenen JPEG-Bildern auf dem Vivo S16 wurde behoben. Die aufgenommenen JPEG-Bilder enthalten im komprimierten JFIF-Datensegment redundante Padding-Daten mit Nullen. Dadurch haben die aufgenommenen Bilder eine große Dateigröße. Diese redundanten Padding-Daten mit Nullen werden entfernt, damit die aufgenommenen Bilder eine normale Bilddateigröße haben. (I79505, b/299069235)
- Das Problem wurde behoben, dass
ImageAnalysis
nicht mitImageCapture
und der Vorschau verknüpft werden kann, wenn auf einigen Geräten bestimmte Erweiterungsmodi aktiviert sind. Nach der Fehlerbehebung wird der richtige Wert zurückgegeben, wenn Apps dieImageAnalysis
-Verfügbarkeit überExtensionsManager#isImageAnalysisSupported()
abfragen. (I7d538) - Aktualisieren Sie das JavaDoc, damit es dem Verhalten entspricht. Anstatt sofort abgeschlossen zu werden, warten
#setZoomRatio
,#setLinearZoom
und#enableTorch
, bis die Kamera bereit ist. Außerdem wurden Informationen hinzugefügt, wie Sie mit der#takePicture
API das maximale Sichtfeld erhalten. (I23588)
Version 1.3
Version 1.3.4
12. Juni 2024
androidx.camera:camera-*:1.3.4
wird veröffentlicht. Version 1.3.4 enthält diese Commits.
Fehlerkorrekturen
- Das Problem wurde behoben, bei dem
getZoomRatio
bei einem zunehmenden Zoomverhältnis fälschlicherweise einen niedrigeren Wert zurückgab. (I4aa0d, b/317543616) - Bei der Aufnahme von Standbildern und beim Fokussieren durch Tippen wurden die Werte für die wiederholte FPS-Anfrage/den Stabilisierungsmodus nicht verwendet. Dies konnte dazu führen, dass die Aufnahmesitzung neu erstellt wurde und auf einigen Geräten Verzögerungen oder ein Einfrieren der Vorschau auftraten. (I7dc0b)
- Das Problem wurde behoben, dass die Framerate auf einen niedrigeren Wert gesetzt wird, wenn
setTargetFrameRate
mitFRAME_RATE_RANGE_UNSPECIFIED
aufgerufen wird. (I78c61)
Version 1.3.3
17. April 2024
androidx.camera:camera-*:1.3.3
wird veröffentlicht. Version 1.3.3 enthält diese Commits.
Fehlerkorrekturen
- Behoben wurde ein Problem bei der Auflösungsauswahl von
ImageAnalysis
im Zusammenhang mit der Standardeinstellung für die Zielauflösung des Analysetools: Die Zielauflösung wurde fälschlicherweise bei 640 × 480 Pixeln belassen, auch wenn in den Anwendungen eine andere Standardeinstellung für die Analysetool-Auflösung festgelegt wurde. Wenn in Anwendungen dieses Problem auftritt (1.3.0 bis 1.3.2) und ein Upgrade auf die neueren Versionen nicht möglich ist, die die Lösung enthalten, kann das Problem durch direktes Festlegen einerResolutionSelector
mit der bevorzugten Auflösung und einer übereinstimmendenAspectRatioStrategy
für denImageAnalysis
-UseCase umgangen werden. (I81f72, b/330091012)
Version 1.3.2
6. März 2024
androidx.camera:camera-*:1.3.2
wird veröffentlicht. Version 1.3.2 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem mit JPEG-Metadaten auf Samsung A24-Geräten wurde behoben. CameraX speichert Bilder jetzt korrekt und die Funktion
ImageProxy.toBitmap()
gibt die richtigen Bitmap-Objekte zurück. (I8d6eb, b/309005680) - Die Auflösungsoption 9280 × 6944 wurde auf Redmi Note 9 Pro aufgrund von Problemen entfernt. (Ia23da)
Version 1.3.1
13. Dezember 2023
androidx.camera:camera-*:1.3.1
wird veröffentlicht. Version 1.3.1 enthält diese Commits.
Fehlerkorrekturen
Die Leistung von ProcessCameraProvider#bindToLifecycle()
wurde verbessert. Die wichtigste Änderung besteht darin, dass die Auswahl der am besten geeigneten Größenkombinationen für UseCases
optimiert wird. Die optimalen Ergebnisse variieren je nach den spezifischen UseCase
-Kombinationen und der Anzahl der unterstützten Ausgabegrößen für die Zielgeräte. (I454f2)
Hier sind einige Referenzergebnisse für verschiedene Szenarien:
Vier
UseCases
:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: ca. 430 ms bis 60 ms
- Samsung Galaxy S23 Ultra: ca. 540 ms bis 45 ms
- Samsung A53 5G: ca. 115 ms bis 70 ms
Drei
UseCases
:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: ca. 9 ms bis 7 ms
- Samsung Galaxy S23 Ultra: ca. 6 ms bis 5 ms
- Samsung A53 5G: ca. 32 ms bis 12 ms
Snapdragon 480 wurde der
CameraUseInconsistentTimebaseQuirk
hinzugefügt. Dadurch wird ein Problem unter Android 12 auf Geräten mit diesem Chipsatz behoben, bei dem die Audioinhalte in Aufnahmen um die Zeit verschoben werden, in der sich das Gerät im Ruhemodus befindet. (I58010)
Version 1.3.0
18. Oktober 2023
androidx.camera:camera-*:1.3.0
wird veröffentlicht. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- Videofunktionen wie 10-Bit-HDR, Zuschneiden, Spiegelung aktivieren/deaktivieren, Ton stummschalten/aktivieren und Framerate festlegen
- Zwei gleichzeitige Kameras
- Effektbibliothek
- Auswahl der Auflösung
- Ultraweitwinkel- und Teleobjektivkamera
- Kamerawechsel während der Videoaufzeichnung (experimentelle Funktion)
Version 1.3.0-rc02
20. September 2023
androidx.camera:camera-*:1.3.0-rc02
wird veröffentlicht. Version 1.3.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Die Stabilität von Erweiterungen lässt sich verbessern, indem die Initialisierungs- und Deinitialisierungsereignisse in der richtigen Reihenfolge ausgelöst werden. Dadurch wurden einige Probleme mit schwarzen Vorschaubildern beim Wechseln der Erweiterungsmodi oder der Kamera behoben. (Iddaac)
- Das Problem wurde behoben, dass
ImageAnalysis
nicht mitImageCapture
und der Vorschau verknüpft werden kann, wenn auf einigen Geräten bestimmte Erweiterungsmodi aktiviert sind. Nach der Fehlerbehebung wird der richtige Wert zurückgegeben, wenn Apps dieImageAnalysis
-Verfügbarkeit überExtensionsManager#isImageAnalysisSupported()
abfragen. (I7d538) - Das Problem wurde behoben, dass Audio und Video bei aufgezeichneten Videos nicht synchron waren, wenn der Spiegelungsmodus auf dem Xiaomi Poco X3 NFC aktiviert war. (I20b4c)
Version 1.3.0-rc01
23. August 2023
androidx.camera:camera-*:1.3.0-rc01
wird veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.
API-Änderungen
PendingRecording.asPersistentRecording
wurde hinzugefügt, damit eine Aufnahme fortgesetzt werden kann, während dieVideoCapture
, an die der Rekorder angeschlossen ist, neu verbunden wird. (I517c6)
Fehlerkorrekturen
- Ein Absturz wurde behoben, der auftrat, wenn ein Stream sowohl für
VideoCapture
als auch für die Vorabversion freigegeben wurde. Außerdem wurde ein schwarzer Bildschirm auf LEGACY-Geräten behoben, wenn die Streamfreigabe aktiviert ist. - Problem mit großen aufgenommenen JPEG-Bildern auf Samsung S7-Geräten (SM-G930T, SM-G930V) behoben Die aufgenommenen JPEG-Bilder enthalten im JFIF-komprimierten Datensegment redundante Padding-Daten mit Nullen. Dadurch haben die aufgenommenen Bilder eine große Dateigröße. Diese redundanten Padding-Daten mit Nullen werden entfernt, damit die aufgenommenen Bilder eine normale Bilddateigröße haben. (I407b0, b/288828159)
- Das Problem mit großen aufgenommenen JPEG-Bildern auf Samsung-Geräten der S22-Serie (SM-S901B, SM-S901B/DS) und S22+ (SM-S906B) wurde behoben. Die aufgenommenen JPEG-Bilder enthalten im JFIF-komprimierten Datensegment redundante Padding-Daten mit Nullen. Dadurch haben die aufgenommenen Bilder auf dem Gerät S22 SM-S901B/DS eine große Dateigröße von etwa 13 MB. Diese redundanten Padding-Daten mit Nullen werden entfernt, damit die aufgenommenen Bilder eine normale Bilddateigröße haben. (I73be9, b/288828159)
- Problem mit großen aufgenommenen JPEG-Bildern auf Samsung-Geräten der A5-, A52-, A70- und A72-Serie behoben Die aufgenommenen JPEG-Bilder enthalten im JFIF-komprimierten Datensegment redundante Padding-Daten mit Nullen. Die aufgenommenen Bilder haben eine extrem große Dateigröße (z. B. etwa 32 MB oder sogar 96 MB). Diese redundanten Padding-Daten mit Nullen werden entfernt, damit die aufgenommenen Bilder eine normale Bilddateigröße haben. (I97c4d, b/288828159)
- Der Absturz beim Aufnehmen von Fotos mit aktivierten Erweiterungen wurde behoben (I698f5)
Version 1.3.0-beta02
26. Juli 2023
androidx.camera:camera-*:1.3.0-beta02
wird veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Taschenlampe als Blitz für Pixel 4 und 5-Varianten verwenden, um die Aufnahmequalität bei schlechten Lichtverhältnissen zu verbessern (I56ff5, b/280221967)
- Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung A5-Serie (2017) behoben Die aufgenommenen JPEG-Bilder enthalten im komprimierten JFIF-Datensegment redundante Padding-Daten mit Nullen. Die aufgenommenen Bilder haben dann eine Dateigröße von etwa 32 MB. Diese redundanten Padding-Daten mit Nullen werden entfernt, damit die aufgenommenen Bilder eine normale Bilddateigröße haben. (I29837, b/288828159)
- Behoben: Bei Geräten mit Problemen, die in
CaptureFailedRetryQuirk
aufgeführt sind, wurde der Wiederholungsversuch bei einem Aufnahmefehler nicht ordnungsgemäß ausgelöst. (I7b589)
Version 1.3.0-beta01
21. Juni 2023
androidx.camera:camera-*:1.3.0-beta01
wird veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.
API-Änderungen
- Der Funktionsname
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
wurde insetAllowedResolutionMode
umbenannt und die KonstantenResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
inPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
. (If84e8) - Die veralteten APIs
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
undVideoCapture.setTargetRotationDegrees(int)
wurden entfernt. (Id8e77) - Die Klasse
DynamicRange
stellt den Dynamikbereich von Bildern dar. So können Sie HDR-Formate als Ausgabe vonVideoCapture
bisVideoCapture.Builder#setDynamicRange()
auswählen. (Ib0377) - Der
ExtensionsManager
wurde eineisImageAnalysisSupported
API hinzugefügt, mit der Apps feststellen können, ob einImageAnalysis
-Anwendungsfall zusammen mit der Vorschau undImageCapture
gebunden werden kann, wenn Erweiterungen aktiviert sind. (I1bc63) - Die neue
VideoCapabilities
-Klasse, die aus derRecorder
-Klasse abgeleitet wird, kann verwendet werden, um unterstützte dynamische Bereiche und Qualitäten für die Videoaufzeichnung auf dem Gerät abzufragen. Die MethodengetSupportedQualities()
undisQualitySupported()
vonQualitySelector
werden eingestellt. Verwenden Sie stattdessen die MethodengetSupportedQualities()
undisQualitySupported()
vonVideoCapabilities
. (I04014) CameraController#setVideoCaptureTargetQuality()
wurde insetVideoCaptureQualitySelector
umbenannt und nimmt das ArgumentQualitySelector
entgegen, was mehr Flexibilität bei der Einrichtung der Videoqualität bietet.CameraController#getVideoCaptureTargetQuality()
wird entsprechend ingetVideoCaptureQualitySelector
geändert. (I520ed)- Die Anmerkung „Experimentell“ für Videofunktionen wurde entfernt. Die Videofunktionen sind jetzt stabil. (I1a113)
Fehlerkorrekturen
- Verwenden Sie die Taschenlampe als Blitz auf Samsung SM-A320-Modellen, um die Geschwindigkeit und die Qualität der aufgenommenen Bilder bei wenig Licht zu verbessern. (I6a022, b/286190938)
- Unterstützung für das
ImageFormat.JPEG
-Format fürImageProxy.toBitmap()
hinzufügen Wenn das JPEG-Byte-Array nicht decodiert werden kann, wird eineUnsupportedOperationException
geworfen. (I81958, b/282057603)
Version 1.3.0-alpha07
24. Mai 2023
androidx.camera:camera-*:1.3.0-alpha07
wird veröffentlicht. Version 1.3.0-alpha07 enthält diese Commits.
Neue Funktionen
- Mit der neuen
VideoCapture.Builder# setTargetFrameRate(Range)
API können Videoaufnahmen mit anderen Frameraten als der Standardeinstellung des Geräts erstellt werden. Die verfügbaren Frameraten für Aufnahmen können über die neueCameraInfo#getSupportedFrameRates()
API abgefragt werden.
API-Änderungen
- Die Konstanten
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
wurden inALLOWED_RESOLUTIONS_NORMAL
/SLOW
umbenannt und der Name der Builder-FunktionsetHighResolutionEnabledFlag
insetAllowedResolutionMode
. (Iae817) CameraInfo#getSupportedFrameRateRanges()
gibt jetzt eineSet
statt einerList
zurück, um besser zu verdeutlichen, dass die Bereiche unsortiert sind. (I02f43)CameraEffect
einen Fehlerlistener hinzufügen, um nicht wiederherstellbare Fehler zu behandeln (Ice471)- Öffentlichen Konstruktor in
ResolutionInfo
hinzufügen, um die Testbarkeit zu verbessern (If6d1c) - Es wurde die API
UseCase.snapToSurfaceRotation(int)
bereitgestellt, um die Verwendung vonsetTargetRotationDegrees
zu ersetzen und die APIsImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
undVideoCapture.setTargetRotationDegrees(int)
einzustellen. (Ia9010) - Neue API
Preview#getTargetFrameRate
undPreview.Builder#setTargetFrameRate
hinzugefügt, um die Ziel-Framerate für den Vorschau-Anwendungsfall festlegen und abrufen zu können (If4f22) VideoRecordEvent.Finalize
wird jetzt mit dem FehlercodeERROR_RECORDING_GARBAGE_COLLECTED
abgeschlossen, wenn dasRecording
-Objekt aufgrund der Garbage Collection angehalten wird. (Iba974)
Fehlerkorrekturen
NullPointerException
wurde korrigiert, wenn die im Cache gespeicherten Ausgabegrößen inStreamConfigurationMapCompat
null sind. (Idf124, b/282025204)- Das Problem wurde behoben, dass
Preview.setSurfaceProvider(null)
die Vorschau in Erweiterungen nicht pausiert (Ia903e) - Ein Problem wurde behoben, durch das beim Öffnen der Kamera die Taste
ConcurrentModificationException
ausgelöst wurde, wenn die TasteVideoCapture
belegt war. (Ic8ac4)
Version 1.3.0-alpha06
19. April 2023
androidx.camera:camera-*:1.3.0-alpha06
wird veröffentlicht. Version 1.3.0-alpha06 enthält diese Commits.
Neue Funktionen
- Die gleichzeitige Kameranutzung ist eine neue Funktion, die mit Android 11 eingeführt wurde. Sie unterstützt das gleichzeitige Streaming von Kamerageräten. So können beispielsweise sowohl die Front- als auch die Rückkamera eines Geräts gleichzeitig verwendet werden. CameraX unterstützt derzeit nur zwei gleichzeitige Kameras, wobei jeweils höchstens zwei {@link UseCase}s gebunden sind. Die maximale Auflösung beträgt 720p oder 1440p. Weitere Informationen finden Sie unter CameraManager#getConcurrentCameraIds().
- Wir stellen die neue
ResolutionSelector
API vor, die folgende Funktionen umfasst:- Anwendungen können Seitenverhältnis- und Auflösungsstrategien angeben, um die für ihre Anforderungen am besten geeignete Auflösung auszuwählen.
- Alle Parameter für Größe und Seitenverhältnis werden in den Koordinaten des Kamerasensors angegeben.
- Anwendungen können einen benutzerdefinierten Auflösungsfilter implementieren, um die unterstützten Größen in der gewünschten Reihenfolge anzuordnen.
- Anwendungen können auch die Aufnahme mit hoher Auflösung aktivieren, um Bilder mit höherer Auflösung zu erhalten. Beachten Sie jedoch, dass eine hohe Auflösung zu längeren Aufnahmezeiten führen kann.
VideoCapture
-Spiegelungs-APIs wurden hinzugefügt. VonVideoCapture
aufgenommene Videos werden standardmäßig nicht gespiegelt. Die Kameravorschau wird jedoch standardmäßig auf der Frontkamera gespiegelt.VideoCapture
Mit Spiegelungs-APIs können Sie sich bei Verwendung der Frontkamera an der Kameravorschau ausrichten. Es gibt dreiMirrorMode
,OFF
,ON
undON_FRONT_ONLY
. Für die Ausrichtung an der Kameravorschau wird empfohlen,ON_FRONT_ONLY
zu verwenden. Das bedeutet, dass die Spiegelung für die Rückkamera deaktiviert, aber für die Frontkamera aktiviert ist.
API-Änderungen
- Neue
ResolutionSelector
API freigegeben. Apps können Seitenverhältnis- und Auflösungsstrategien mit Fallback-Regeln oder einem benutzerdefinierten Auflösungsfilter angeben, um die gewünschten Ergebnisse zu erzielen. Anwendungen können ein Flag angeben, um die Aufnahme in hoher Auflösung zu aktivieren. Dadurch kann CameraX beim Aufnehmen von Fotos oder Videos höhere Auflösungen auswählen. Beachten Sie jedoch, dass eine hohe Auflösung zu längeren Aufnahmezeiten führen kann. (Ibed95) - Die vom AE-Algorithmus unterstützten FPS-Bereiche können jetzt über
CameraInfo#getSupportedFrameRateRanges()
abgefragt werden. (Iaa67f) - Die Namen aller Framerate-Methoden werden durch „FrameRate“ ersetzt. Javadoc-Fehler in
VideoCapture#getTargetFrameRate()
korrigieren (I83304) - Die alten
setTargetAspectRatio
- undsetTargetResolution
-APIs wurden eingestellt. Verwenden Sie stattdessen die neueResolutionSelector
API. (I542c3) - Öffentliche APIs für die gleichzeitige Verwendung der Dualkamera wurden hinzugefügt, darunter:
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
undConcurrentCameraConfig
,SingleCameraConfig
undConcurrentCamera
(Iab1c1)
ImageProcessor.Response#getOutputImage
muss nicht null sein (Ib9c60)VideoCapture
-Spiegelungs-APIs wurden hinzugefügt, darunterVideoCapture.Builder.setMirrorMode(int)
undVideoCapture.getMirrorMode()
. Die APIs sind nützlich für Anwendungen, bei denen die Videoaufzeichnung dem üblichen Verhalten der Kameravorschau entsprechen muss, d.h. die Rückkameravorschau ist nicht gespiegelt, die Frontkameravorschau jedoch schon. (I713b6, b/194634656)setTargetFrameRate()
API inVideoCapture.Builder
undgetTargetFramerate()
API inVideoCapture
hinzufügen (I109d4)- Erweitern Sie
SurfaceOutput
auf Closable und blenden Sie den öffentlichen Konstruktor von SurfaceOutput.Event
aus. (I60ea8) - Mit der Taste
Recording.mute
können Sie eine Aufnahme, die gerade verarbeitet wird, dynamisch stummschalten oder die Stummschaltung aufheben.RecordingStats
enthältAudioStats.AUDIO_STATE_MUTED
, wenn die Aufzeichnung, die gerade verarbeitet wird, explizit stummgeschaltet ist. (Ie17fc) - Der Parameter
#setEffects()
ist jetzt nicht mehr null. Fügen Sie eine#clearEffects()
API zum Löschen von Effekten hinzu. Die App sollte#clearEffects()
aufrufen, um Effekte zu entfernen. (I4b4d9) - Fügen Sie einen zweiten Konstruktor für
ViewfinderSurfaceRequest.Builder
hinzu, der einen Builder für den Kopierkonstruktor annimmt (I621a7).
Fehlerkorrekturen
- Das Problem wurde behoben, durch das Apps, die die Extensions API aufrufen, beim Schließen der Kamera abstürzen konnten (Ib27e5).
- Ein Problem wurde behoben, durch das
VideoCapture
auf einigen Geräten nicht mit der Frontkamera funktionierte. Beispielsweise auf Samsung Galaxy S23 und Xiaomi 2107113SG. (Ibec7e, b/270656244) - Das Problem wurde behoben, dass das Aufnehmen von Fotos über die Dateien App im öffentlichen Ordner des externen Speichers unter Android 10 oder höher immer fehlgeschlagen ist. Hinweis: Unter Android 10 müssen Sie außerdem im Anwendungs-Tag
requestLegacyExternalStorage
auf „wahr“ setzen, um mit der Datei-App im öffentlichen Ordner des externen Speichers Fotos aufnehmen zu können. (I11b2c) - Ein Absturz von
RejectedExecutionException
inDefaultSurfaceProcessor
wurde behoben. Der Absturz kann auftreten, wennVideoCapture
gebunden und die Aktivität pausiert ist. (Idb46a, b/273713906)
Version 1.3.0-alpha05
22. März 2023
androidx.camera:camera-*:1.3.0-alpha05
wird veröffentlicht. Version 1.3.0-alpha05 enthält diese Commits.
API-Änderungen
- Es wurden
VideoCapture
-Rotations-APIs hinzugefügt, darunterVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
undVideoCapture.getTargetRotation()
. Die APIs sind nützlich für Anwendungen, die die Geräteausrichtung sperren.ImageCapture.setTargetRotationDegrees(int)
undImageAnalysis.setTargetRotationDegrees(int)
werden ebenfalls hinzugefügt. (Id3ffe, b/205242781) VIDEO_CAPTURE
undPREVIEW|VIDEO_CAPTURE
als Effektziel zulassen Effekte, die aufVIDEO_CAPTURE
ausgerichtet sind, werden auf denVideoCapture
-Use-Case angewendet. Effekte, die aufPREVIEW|VIDEO_CAPTURE
ausgerichtet sind, werden auf einen freigegebenen Stream angewendet, bevor sie in die Vorschau und denVideoCapture
-Stream kopiert werden. (Iee6f3)
Fehlerkorrekturen
- Bei Kamera
1.2.2
: Das Problem wurde behoben, durch das CameraX-Erweiterungen auf einigen Geräten wie Pixel nicht richtig funktionieren, wenn ProGuard aktiviert ist (I90aa2) - Es wurde ein
PreviewView
-Fehler behoben, durch den die Vorschau bei der automatischen Bildschirmausrichtung der App bei einer Drehung verzerrt werden konnte. Das passiert nur auf bestimmten Geräten. Das Problem kann auf Google Pixel 4a, Google Pixel 5 und Google Pixel 6a reproduziert werden. (I14340, b/223488673)
Version 1.3.0-alpha04
22. Februar 2023
androidx.camera:camera-*:1.3.0-alpha04
wird veröffentlicht. Version 1.3.0-alpha04 enthält diese Commits.
Neue Funktionen
Eine neue Funktion, mit der zuvor nicht unterstützte Kombinationen von Oberflächen unterstützt werden, indem ein Stream für mehrere Anwendungsfälle freigegeben wird.
- Bisher wurde bei der Bindung von „Preview, VideoCapture, ImageAnalysis“ auf der Kamerahardwareebene FULL und darunter oder von „Preview, VideoCapture, ImageCapture“ auf der Hardwareebene LEGACY von CameraX die Fehlermeldung
IllegalArgumentException
ausgegeben. - Das neue Verhalten besteht darin, dass die Bindungen funktionieren, ohne dass Ausnahmen geworfen werden. Stattdessen verwendet CameraX OpenGL, um einen freigegebenen Stream sowohl in die Vorschau als auch in die Videoaufnahme zu kopieren.
- Aufgrund der Kosten für die Pufferkopie kann es in der App zu einer Erhöhung der Latenz und des Stromverbrauchs kommen.
API-Änderungen
- API zum Konvertieren von
ImageProxy
inBitmap
hinzufügen Die unterstütztenImageProxy
-Formate sindImageFormat.YUV_420_888
undPixelFormat.RGBA_8888
. Wenn das Format ungültig ist, wirdIllegalArgumentException
ausgegeben. (Ic7110) CoroutineCameraViewfinder
hinzufügen, um den Sucher mithilfe von suspendierenden Funktionen in Kotlin zu konfigurieren (I657bc)- Fügen Sie einen neuen öffentlichen Konstruktor für
ViewfinderSurfaceRequest
hinzu. Sie bietet Flexibilität, wenn der NutzerCameraCharacteristics
nicht angeben kann. (Ie6549)
Fehlerkorrekturen
- Der Absturz von Erweiterungen auf einigen Samsung-Geräten, der auftritt, wenn die App zu schnell pausiert oder fortgesetzt wird, wurde behoben (Iaca26)
Version 1.3.0-alpha03
25. Januar 2023
androidx.camera:camera-*:1.3.0-alpha03
wird veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
CameraInfo.getIntrinsicZoomRatio
wurde hinzugefügt, um Informationen zum Blickwinkel im Verhältnis zur Standardkamera anzugeben. (Ib300c)CameraInfo.getLensFacing
wurde hinzugefügt, um Informationen zur Ausrichtung des Objektivs anzugeben.CameraSelector#LENS_FACING_EXTERNAL
wurde als experimentelle Funktion für die Auswahl externer Kameras hinzugefügt. (Icaf3e)- Fügen Sie
#setEffect()
zuCameraController
hinzu, um der Kameraausgabe Effekte hinzuzufügen. (I1d21f) - Fügen Sie
invalidate()
zuSurfaceRequest
hinzu. Der Surface-Anbieter kann benachrichtigen, dass die zuvor bereitgestellte Oberfläche nicht mehr gültig ist. (Idc649) - Fügen Sie eine
ImageProcessor
API hinzu. Über diese Schnittstelle können Nachbearbeitungseffekte in dieImageCapture
-Pipeline eingefügt werden. (I575c6) - Die API
Recorder.Builder.setAspectRatio()
wurde hinzugefügt. Sie kann mitQualitySelector
kombiniert werden, um mehr Videoauflösungen zu unterstützen. (I8a082) - Es wurde
Recorder.Builder#setTargetVideoEncodingBitRate
hinzugefügt, um die ZielvideocodierungBitRate
festzulegen, undRecorder#getTargetVideoEncodingBitRate
, um die Bitraten der Zielvideocodierung abzurufen. (I5984d)
Fehlerkorrekturen
- Behoben: Fehler
ImageCapture
, wenn kein Blitz vorhanden ist und der Blitzmodus aktiviert ist. (I9e8b4, b/263391112) - Behoben wurde ein Problem, bei dem JPEG-Bilder beschädigt wurden, wenn Exif-Standortdaten auf einigen Samsung-Geräten mit Android 12 geschrieben wurden. (Ib7086, b/263747161, b/263289024)
- Wenn die Taschenlampe oder der Zoom vor Abschluss der Kamerainitialisierung festgelegt wird, z.B. durch Aufrufen von
CameraController#enableTorch
, wird die ausstehende Aktion im Cache gespeichert und gesendet, sobald die Initialisierung abgeschlossen ist. (I11e92, b/264157663)
Version 1.3.0-alpha02
7. Dezember 2022
androidx.camera:camera-*:1.3.0-alpha02
wird veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
API-Änderungen
- Eine neue API zum Anwenden von Nachbearbeitungseffekten auf die Vorschauausgabe hinzufügen. (Ic17d5)
OutputOptions.getDurationLimit
wurde inOutputOptions.getDurationLimitMillis
undOutputOptions.setDurationLimit
inOutputOptions.setDurationLimitMillis
umbenannt. (I91f0c)- Fügen Sie die Klasse
AudioConfig
hinzu, um die Einstellungen für die Audiowiedergabe bei der Videoaufnahme zu verwalten. Die Anmerkung@RequiresPermission
wird vonstartRecording
-Funktionen zuAudioConfig
-Funktionen verschoben, um unnötige Berechtigungsanfragen zu vermeiden, wenn Audio nicht erforderlich ist. (I28755) - Entfernen Sie die Klassen „Metadaten“,
OnVideoSavedCallback
,OutputFileOptions
undOutputFileResults
, die nach der Anwendung der neuen Videoaufzeichnungs-API nicht mehr verwendet werden. (I38cd8) - Die neue Videoaufzeichnungs-API anwenden Die Methoden
getVideoCaptureTargetSize
undsetVideoCaptureTargetSize
werden durch die MethodengetVideoCaptureTargetQuality
undsetVideoCaptureTargetQuality
ersetzt, dasetTargetResolution
nicht mehr unterstützt wird. (I2a1d5)
Fehlerkorrekturen
- Veraltete
core.VideoCapture
API entfernen (I531e0) - Das Problem wurde behoben, dass der
onError
-Callback nicht aufgerufen wird, wenn Fotos ohne die Speicherberechtigung aufgenommen werden.(I936db, b/244807669) - Qualität und Zuverlässigkeit von Kamera-Erweiterungen verbessern Auf Motorola-Geräten mit Camera Extensions 1.1.0 und niedriger werden Kameraerweiterungen aufgrund von Problemen mit der Bokeh-Unterstützung, der Bildaufnahme und der nicht fortgesetzten Vorschau deaktiviert. (Id3ce3)
- Ein Absturz, der auf Legacy-Geräten beim Zuschneiden von Videos über
ViewPort
auftrat, wurde behoben. (I16b8a, b/251357665)
Version 1.3.0-alpha01
9. November 2022
androidx.camera:camera-*:1.3.0-alpha01
wird veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
Camera-viewfinder
wurde offiziell veröffentlicht.Camera-viewfinder
bietet ein Basis-Sucher-Widget, mit dem der Kamerafeed für Camera2 angezeigt werden kann. Ein Beispiel finden Sie im Beispielcode.
API-Änderungen
OutputOptions.setDurationLimit
wurde hinzugefügt, um ein Limit für die Videodauer festlegen zu können. Die Aufnahme wird automatisch beendet, wenn die angegebene maximale Dauer überschritten wird. (I902a0)- Fügen Sie den Audiofehlerstatus
AudioStats.AUDIO_STATE_SOURCE_ERROR
für die Videoaufzeichnung hinzu. Wird gesendet, wenn die Einrichtung der Audioquelle fehlschlägt oder ein Fehler auftritt. (I37410)
Fehlerkorrekturen
- Es wurde eine Besonderheit hinzugefügt, die es bei einigen problematischen Geräten ermöglicht, die Aufnahme bei Aufnahmefehlern noch einmal zu versuchen. (Id4795)
- Problem mit schwarzem Bildschirm bei der
PreviewView
SurfaceView
-Implementierung aufViewPager2
behoben. Im Rahmen der Fehlerbehebung wirdPreviewView
seineSurfaceView
wiederverwenden, wenn sich die angeforderte Auflösung nicht ändert. (Ib3f27) - Unterstützung für das Zuschneiden von Videos (WYSIWYG-Funktion) bei Verwendung der
ViewPort
- oderCameraController
-API (Ifbba8, b/201085351) - Behoben: Auf dem Huawei P40 Lite konnte kein Video mit der Frontkamera aufgenommen werden. (I87c57, b/250807400)
Version 1.2
Version 1.2.3
24. Mai 2023
androidx.camera:camera-*:1.2.3
wird veröffentlicht. Version 1.2.3 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das
VideoCapture
auf einigen Geräten nicht mit der Frontkamera funktionierte. Beispielsweise auf Samsung Galaxy S23 und Xiaomi 2107113SG. (Ibec7e, b/270656244)
Version 1.2.2
22. März 2023
androidx.camera:camera-*:1.2.2
wird veröffentlicht. Version 1.2.2 enthält diese Commits.
Fehlerkorrekturen
- Das Problem wurde behoben, durch das 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 veröffentlicht. Version 1.2.1 enthält diese Commits.
Fehlerkorrekturen
- Behebung eines Problems, bei dem JPEG-Bilder beschädigt wurden, wenn Exif-Standortdaten auf einigen Samsung-Geräten mit Android 12 geschrieben wurden. (b/263289024)
Version 1.2.0
7. Dezember 2022
androidx.camera:camera-*:1.2.0
wird veröffentlicht. Version 1.2.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.1.0
- Neue Bibliothek „camera-mlkit-vision“ Sie können CameraX ganz einfach in viele ML Kit-Funktionen einbinden, z. B. Barcode-Scannen, Gesichtserkennung und Texterkennung.
MLKitAnalyzer
wurde als neue API hinzugefügt. - Neue experimentelle API für Zero-Shutter-Lag. Die Aufnahmepipeline wird optimiert, um eine bessere Latenz bei gleichzeitig guter Bildqualität zu erzielen. Wenn der Aufnahmemodus auf
CAPTURE_MODE_ZERO_SHUTTER_LAG
festgelegt ist, ist die Latenz zwischen dem Klicken auf den Auslöser und der Aufnahme im Vergleich zu anderen Aufnahmemodi voraussichtlich minimiert. Auf Geräten, dieZERO_SHUTTER_LAG
nicht unterstützen, wirdCAPTURE_MODE_MINIMIZE_LATENCY
verwendet. android.camera.core.VideoCapture
einstellensetStreamUseCase()
wurde als öffentlicheCamera2Interop
API hinzugefügt.- Es wurde eine Anforderung an das API-Level für
setOutputImageRotationEnabled
hinzugefügt. ImageAnalysis.Analyzer#getTargetResolutionOverride()
wurde inImageAnalysis.Analyzer#getDefaultTargetResolution()
umbenannt.- API zum Festlegen von Standortmetadaten für das gespeicherte Video hinzugefügt
- Das Problem mit der niedrigen Framerate bei der Verwendung von
VideoCapture
und Vorschau-Anwendungsfällen mit dem Seitenverhältnis 16:9 wurde behoben. - Das Problem mit der schwarzen Vorschau wurde behoben, das auftritt, wenn die BOKEH-Erweiterung auf einigen Samsung-Geräten aktiviert ist und der Nutzer die Kameras wechselt.
- Behobenes Problem mit der
Preview/VideoCapture
-Dehnung auf Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) auf Geräten mit API-Ebene 27. - Die Umgehungslösung zum horizontalen Umkehren des AF-Bereichs der Frontkameras auf Samsung-Geräten mit Android T wurde deaktiviert, da das Problem behoben wurde.
Version 1.2.0-rc01
24. Oktober 2022
androidx.camera:camera-*:1.2.0-rc01
wird veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
API-Änderungen
- Fügen Sie die
setStreamUseCase
API fürOutputConfiguration
hinzu. Der Nutzer kann den Stream-Nutzungsfall für die Stream-Sitzung angeben und die interne Logik von CameraX überschreiben, um den Stream-Nutzungsfall auszuwählen und so die Leistung nach Bedarf zu optimieren. (Ib1a95)
Fehlerkorrekturen
- Behobenes Problem mit der
Preview/VideoCapture
-Dehnung bei Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) auf Geräten mit API-Ebene 27. Bei einer Auflösung von 1920 x 1080 werden diePreview/VideoCapture
-Bilder gestreckt. Es wurde eine Problemumgehung hinzugefügt, um die Auflösung 1920 × 1080 für die Vorschau oderVideoCapture
nicht auszuwählen, um das Problem mit dem gestreckten Bild zu vermeiden. (I0e04e) - Behoben wurde ein Problem mit niedriger Framerate bei der Verwendung von
VideoCapture
und Vorschau-Anwendungsfällen mit einem Seitenverhältnis von 16:9 auf einigen Huawei-Geräten. (If8c88, b/223643510) - Fehler beim Öffnen der Kamera behoben, wenn
SurfaceProvider
in der Vorschau nicht festgelegt ist. Im Rahmen der Fehlerbehebung wird die Vorschau ohne festgelegtesSurfaceProvider
jetzt nicht mehr in der Kameraaufnahmesitzung konfiguriert. (I99681)
Version 1.2.0-beta02
21. September 2022
androidx.camera:camera-*:1.2.0-beta02
wird veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.
API-Änderungen
- API-Ebenenanforderung für
setOutputImageRotationEnabled
hinzufügen (I26e3e, b/240993561)
Fehlerkorrekturen
- Die Umgehungslösung zum horizontalen Umkehren der AF-Region der Frontkameras auf Samsung Android T wurde deaktiviert, da das Problem behoben wurde. (I05f69)
- Das Problem mit der schwarzen Vorschau wurde behoben, das auf einigen Samsung-Geräten auftritt, wenn die
BOKEH
-Erweiterung aktiviert ist und der Nutzer die Kameras wechselt. (If6168)
Version 1.2.0-beta01
24. August 2022
androidx.camera:camera-*:1.2.0-beta01
wird veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Neue Bibliothek
camera-mlkit-vision
Sie können CameraX ganz einfach in viele MLKit-Funktionen einbinden, z. B. Barcode-Scannen, Gesichtserkennung und Texterkennung. Hier finden Sie den Beispielcode. - Neue experimentelle Zero-Shutter-Lag API. Die Aufnahmepipeline wird optimiert, um eine geringere Latenz bei gleichzeitig guter Bildqualität zu erzielen. Wenn der Aufnahmemodus auf „CAPTURE_MODE_ZERO_SHUTTER_LAG“ gesetzt ist, ist die Latenz zwischen dem Drücken der Auslösertaste und der Aufnahme im Vergleich zu anderen Aufnahmemodi voraussichtlich minimiert. Auf Geräten, die ZERO_SHUTTER_LAG nicht unterstützen, wird auf CAPTURE_MODE_MINIMIZE_LATENCY zurückgegriffen.
ImageAnalysis.Analyzer
undMLKitAnalyzer
wurden zu offiziellen APIs.- API zum Festlegen von Standortmetadaten für das gespeicherte Video.
- Benennen Sie
ImageAnalysis.Analyzer#getTargetResolutionOverride()
inImageAnalysis.Analyzer#getDefaultTargetResolution()
um.
Fehlerkorrekturen
- Problem bei der Bilderfassung für Alps k61v1_basic_ref behoben Die aufgenommenen JPEG-Bilder von HAL haben falsche EXIF-Metadaten. Die EXIF-Metadaten enthalten das Tag „0xffd9“ oder „0xffda“ nicht, damit
ExifInterface
die Attribute richtig parsen kann. Die Bilder im YUV-Format aufnehmen und dann zu JPEG-Ausgabebildern komprimieren, um dieses Problem zu umgehen. (I45abb)
Version 1.2.0-alpha04
27. Juli 2022
androidx.camera:camera-*:1.2.0-alpha04
wird veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.
API-Änderungen
- Benennen Sie
ImageAnalysis.Analyzer#getTargetResolutionOverride()
inImageAnalysis.Analyzer#getDefaultTargetResolution()
um. Außerdem wurde das Verhalten so geändert, dass der von dieser Methode zurückgegebene Wert durch den Wert vonImageAnalysis#setTargetResolution()
überschrieben werden kann. (If1d36) - API zum Festlegen von Standortmetadaten für das gespeicherte Video. Ein
android.location.Location
-Objekt kann über die neue APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
festgelegt werden. (I313a0, b/204197544)
Fehlerkorrekturen
- Problem beim Aufnehmen von Bildern mit der Auftrennvorschau behoben (Ie70b6, b/235119898)
- Ein Absturz in
Recorder
wurde behoben, der beim Versuch auftrat, eine Aufnahme zu starten, während die Audioquelle nicht verfügbar war. (I9f652)
Version 1.2.0-alpha03
29. Juni 2022
androidx.camera:camera-*:1.2.0-alpha03
wird veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.
API-Änderungen
- Die experimentelle Anmerkung für
ImageAnalysis.Analyzer
undMLKitAnalyzer
wurde entfernt. (I0ff22)
Fehlerkorrekturen
- Es wurde eine Standardzeitüberschreitung von 5.000 ms für den Autofokus hinzugefügt. Wenn die
FocusMeteringAction
nicht abgebrochen wird und der Autofokus innerhalb der Dauer nicht abgeschlossen ist, wird der Autofokus-Teil mitisFocusSuccessful
falsch abgeschlossen. (Ibc2e3) - Problem beim Aufnehmen von Bildern mit der Auflösevorschau behoben (I1d3a2, b/235119898)
- Die erweiterte Implementierung von Extendern wurde aktiviert und die Version der CameraX-Unterstützungserweiterungsoberfläche auf 1.2 aktualisiert (I92256).
Version 1.2.0-alpha02
1. Juni 2022
androidx.camera:camera-*:1.2.0-alpha02
wird veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
Neue Funktionen
- Die CameraX Zero-Shutter Lag API als experimentell verfügbar machen.
API-Änderungen
- Fügen Sie in
ImageCapture
den neuen AufnahmemodusCAPTURE_MODE_ZERO_SHUTTER_LAG
und inCameraInfo
isZslSupported
hinzu, um die Gerätefunktion abzufragen. Im ModusCAPTURE_MODE_ZERO_SHUTTER_LAG
soll die Latenz für die sofortige Erfassung minimiert werden. Sie basiert auf einem Ringbuffer, in dem Zwischenergebnisse der Aufnahme für eine spätere Nachbearbeitung zwischengespeichert werden, wenn der Nutzer die Schaltflächen zum Aufnehmen von Bildern drückt. Wenn {@link VideoCapture} gebunden ist oder der Blitzmodus nicht deaktiviert ist oder die OEM-Erweiterung aktiviert ist, wird dieser Modus automatisch deaktiviert. (I9ae74) ImageAnalysis.getBackgroundExecutor()
-Methode (Icc945) hinzufügen
Fehlerkorrekturen
- Die
ImageCapture
-Methode „takePicture“ schaltet die Taschenlampe auf den gemeldeten Geräten aus. (Ib5eb5, b/228272227) - Ein Fehler wurde behoben, durch den
AssertionError
beim Abrufen des AttributsCONTROL_ZOOM_RATIO_RANGE
nicht verarbeitet wurde.(/Ia248a, b/231701345)
Version 1.2.0-alpha01
18. Mai 2022
androidx.camera:camera-*:1.2.0-alpha01
wird veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
- Neue Bibliothek „camera-mlkit-vision“ wurde eingeführt
Fehlerkorrekturen
- Es wurde behoben, dass
QualitySelector
kein UHD-Video aufzeichnet, wenn eine Fallback-Strategie aktiviert ist. Das Problem tritt auf, wennVideoCapture
mitImageCapture
und „Vorschau“ auf einem Kameragerät der FULL- oder höheren Hardwareebene verknüpft ist. Eine Fallback-Strategie vonQualitySelector
führt dazu, dassVideoCapture
fälschlicherweise eine FHD-Auflösung erhält. Die UHD-Auflösung wird für diese Kombination von Anwendungsfällen unterstützt und sollte verwendet werden. (I0e788, b/230651237) NullPointerException
wurde aufImageCapture.takePicture()
festgelegt. (I92366, b/230454568, b/229766155)- Fehler beim asynchronen Pausieren von
androidx.camera.video.Recorder
(Ia8ce8) behoben
Camera-Camera2, Camera-Core, Camera-Lifecycle und Camera-Video Version 1.1.0
Version 1.1.0
29. Juni 2022
androidx.camera:camera-*:1.1.0
wird veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
- Die Bibliotheken „Landingpage-Ansicht“, „Erweiterung“ und „Videoaufnahme“ als erste RC-Version. Ab Version 1.1.0-beta01 haben alle CameraX-Bibliotheken dieselbe Versionsnummer. So können Entwickler Versionen viel einfacher im Blick behalten und die Komplexität großer Versionskompatibilitätsmatrizen reduzieren.
- Einführung neuer öffentlicher APIs und Funktionen, darunter:
- Fügen Sie die offizielle Kamera-Videobibliothek hinzu, um Anwendungsfälle für die Videoaufnahme zu unterstützen.
- YUV-zu-RGB-Konvertierung und Drehung (
ImageAnalysis.Builder.setOutputImageRotationEnabled
undsetOutputImageFormat
) - Unterstützen Sie den Multifenstermodus, indem Sie CameraX-Anwendungen erlauben, die Kamera fortzusetzen, wenn die Kamera von einer anderen App unterbrochen wird und der Fokus wiederhergestellt ist.
- Durch die Behebung einiger Vorschauprobleme wird sichergestellt, dass CameraX auf faltbaren Geräten gut funktioniert.
- Eine
CameraState
API wurde hinzugefügt, die über CameraInfo bereitgestellt wird. - API
ProcessCameraProvider.getAvailableCameraInfos()
zum direkten Abrufen von Informationen zu den verfügbaren Kameras hinzugefügt - JPEG-Ausgabeformat für
ImageCapture#OnImageCapturedCallback
, wenn Erweiterungen aktiviert sind. - In
CameraInfo
wurde die APIisFocusMeteringSupported
hinzugefügt, mit der Anwendungen prüfen können, ob die angegebeneFocusMeteringAction
von der aktuellen Kamera unterstützt wird. - Die
getResolutionInfo
API wurde freigegeben, um Auflösungsinformationen für die Vorschau,ImageCapture
undImageAnalysis
bereitzustellen. - Es wurde eine neue API
ImageCapture.Builder#setJpegQuality
hinzugefügt, mit der sich die Komprimierungsqualität der JPEG-Ausgabebilder beim Aufnehmen von Fotos ändern lässt. - Der öffentlichen API wurde
CameraSelector#filter
hinzugefügt, um eine Liste vonCameraInfos
anhand einerCameraSelector
zu filtern. Camera2CameraControl.clearCaptureRequestOptions
wurde hinzugefügt, um die vorhandenen Optionen für die Erfassungsanfrage zu löschen.- Es wurde eine experimentelle API für die Verwendung von
CameraController
mit externen Bildverarbeitungsbibliotheken hinzugefügt, z. B.MLKit. - Die experimentelle API
CameraInfo#getCameraSelector()
wurde hinzugefügt, die einen für die Kamera eindeutigenCameraSelector
zurückgibt. - Mehrere experimentelle APIs wurden zu offiziellen öffentlichen APIs aufgewertet.
- Die Anmerkung
@Experimental
wurde bei experimentellen APIs durch@RequiresOptIn
ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle der veralteten androidx.annotation.experimental.UseExperimental. - Die folgenden experimentellen APIs wurden zu offiziellen APIs:
CameraXConfig.Builder#setAvailableCamerasLimiter()
,CameraXConfig.Builder#setMinimumLoggingLevel()
,CameraXconfig.Builder#setSchedulerHandler()
,CameraXConfig#getAvailableCamerasLimiter()
,CameraXConfig#getMinimumLoggingLevel()
,CameraXConfig#getCameraExecutor()
,CameraXConfig#getSchedulerHandler()
, @ExperimentalCameraFilter
APIs- experimentelle APIs zur Belichtungskorrektur.
- Die experimentelle
UseCaseGroup
API für „camera-core“, „camera-lifecycle“ und „camera-video“ wurde eingeführt.ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
undViewPort.Builder#setScaleType
wurden hinzugefügt, um den Darstellungsbereich anzupassen. - Die
ExperimentalUseCaseGroupLifecycle
wurde zu offiziellen öffentlichen APIs aufgewertet. - Änderungen an den vorhandenen APIs
- Zum
MediaStoreOutputOptions.getCollectionUri
Renamed MediaStoreOutputOptions.getCollection
. ActiveRecording
wurde in „Aufzeichnung“ umbenannt, um die Beschreibung prägnanter zu formulieren.QualitySelector
-Creator-API in eine listenbasierte API geändert
Fehlerkorrekturen
- Das Problem mit
YuvToJpegProcessor
EOFException
wurde behoben, wenn der Erweiterungsmodus aktiviert und der ModusImageCapture#CAPTURE_MODE_MAX_QUALITY
festgelegt ist. - Die Festlegung der Codec-Konfiguration ist fehlgeschlagen, da die Videoaufzeichnung beendet wird
- Behoben: Bei der Aufnahme in FHD wurde das Seitenverhältnis der Vorschau und des Videos gedehnt.
- Behoben: Audio und Video waren auf einigen Geräten nach dem Pausieren und Fortsetzen nicht synchron
- Das Problem wurde behoben, bei dem der Blitz bei wenig Licht beim Fokussieren durch Tippen (
startFocusAndMetering
) ausgelöst wurde, wenn der Blitzmodus auf „auto“ oder „always_on“ gesetzt war.
Version 1.1.0-rc02
1. Juni 2022
androidx.camera:camera-*:1.1.0-rc02
wird veröffentlicht. Version 1.1.0-rc02 enthält diese Commits.
Fehlerkorrekturen
NullPointerException
wurde aufImageCapture.takePicture()
festgelegt. (I92366, b/230454568, b/229766155)- Es wurde ein Fehler behoben, durch den
AssertionError
beim Abrufen der EigenschaftCONTROL_ZOOM_RATIO_RANGE
nicht verarbeitet wurde. (Ia248a, b/231701345)
Version 1.1.0-rc01
11. Mai 2022
androidx.camera:camera-*:1.1.0-rc01
wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Neue Funktionen
- Erste RC-Version für „camera-video“, „camera-view“ und „camera-extension“ veröffentlichen
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem der Videocodec nicht freigegeben wurde, wenn
VideoCapture<Recorder>
nicht mehr verknüpft war. Dies führte dazu, dass nachfolgende Verwendungen vonVideoCapture<Recorder>
bei der Aufzeichnung mitMediaCodec.CodecException
fehlschlugen, insbesondere auf Geräten mit API 21–22. (Ie7f68) - Problem beheben, dass aufgenommene Bilder von
CameraExtensionsActivity
inImageCaptureTest
nicht gelöscht werden
Version 1.1.0-beta03
6. April 2022
androidx.camera:camera-*:1.1.0-beta03
wird veröffentlicht. Version 1.1.0-beta03 enthält diese Commits.
API-Änderungen
- Der Konstruktor
CaptureRequestOptions
wurde eingeschränkt. (I261b6) - Es wurde eine experimentelle API für die Verwendung von
CameraController
mit externen Bildverarbeitungsbibliotheken hinzugefügt, z. B.MLKit (I4ea71).
Fehlerkorrekturen
- Das Problem wurde behoben, durch das die Vorschau in
PreviewView
seitlich angezeigt wurde, wenn die Aktivität nicht neu gestartet wurde, nachdem das Gerät im Modus „Mehrere Fenster“ gedreht wurde. (I1ea36, b/223488673) - Behebung eines Problems mit mehreren Fenstern: Wenn der Fokus wieder auf die App wechselt, wird die Kamera nicht fortgesetzt, wenn (1) eine andere App mit hoher Priorität eine andere Kamera öffnet oder (2) es sich um ein Samsung-Gerät mit Android 12 handelt. (I7e9f2)
- Es gibt eine Problemumgehung für Geräte, die bei der Prüfung der Verfügbarkeit des Blitzes abstürzen. Auf diesen Geräten ist die Taschenlampe nicht verfügbar. (If26a3, b/216667482)
- Behebung des
AbstractMethodError
-Problems, das auftrat, wenn Apps Erweiterungen verwenden und ProGuard aktivieren. (I7cbaf, b/222726805) - Bokeh-Erweiterungsmodus auf dem Motorola razr 5G erzwingen, was zu einem schwarzen Vorschaubildschirm führt (I35d49)
- Behoben wurde das Problem, dass Audio und Video nach dem Pausieren und Fortsetzen der Wiedergabe auf einigen Samsung-Geräten mit einer älteren API als 29 nicht synchron waren. (I64622, b/202798609, b/202798572)
- Behoben: Audio/Video war auf Sony G3125 nach dem Pausieren und Fortsetzen nicht synchron. (I2a1a5, b/202799148)
- Ein Absturz wurde behoben, der beim Aufzeichnen durch
InvalidConfigException
verursacht wurde. Diese Lösung verhindert jedoch nur, dass die App abstürzt, behebt aber nicht die Ursache desInvalidConfigException
. Wenn dieRecorder
immer noch nicht konfiguriert werden kann, erhalten Anwendungen beim Starten der Aufzeichnung einen Fehler-Callback. (I89c29, b/213617227)
Externer Beitrag
- :compose:ui:ui-test api (updateApi) aufgrund der Migration von test-coroutines-lib aktualisiert (I3366d)
Version 1.1.0-beta02
23. Februar 2022
androidx.camera:camera-*:1.1.0-beta02
wird veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
API-Änderungen
- Es ist jetzt möglich, die physische Kamera-ID über Camera2Interop anzugeben. (I5aed8)
Fehlerkorrekturen
- Das Problem mit der gestreckten Vorschau auf dem Oppo Find N (I7d004) wurde behoben.
- Ein Problem auf dem Galaxy J7 Prime, bei dem die Vorschau verzerrt war, wurde behoben. (I4c500)
- Verwende eine kompatible Bitrate, um einen Videoencoder zu finden. (d969052)
Version 1.1.0-beta01
26. Januar 2022
androidx.camera:camera-*:1.1.0-beta01
wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
Neue Funktionen
- Ab Version 1.1.0-beta01 haben alle CameraX-Bibliotheken dieselbe Versionsnummer. So können Entwickler Versionen viel einfacher im Blick behalten und die Komplexität einer großen Versionskompatibilitätsmatrix reduzieren.
API-Änderungen
Camera2CameraControl.clearCaptureRequestOptions
zum Löschen der Optionen für die Erfassungsanfrage hinzugefügt (Ifa07d)
Fehlerkorrekturen
- Der Absturz beim Aufzeichnen von Videos auf einigen Geräten mit einer älteren Android-Version als Android O(API 26) wurde behoben. (I88fdf, b/212328261)
- Das Problem mit der falschen AF-Region bei Verwendung von
cameraControl#startFocusAndMetering()
auf der nach vorne gerichteten Kamera von Samsung-Geräten wurde behoben (Ifbf59, b/210548792) - Die Taschenlampe kann bei Pixel 3a und Pixel 3a XL als Blitz verwendet werden, um die Geschwindigkeit und die Bildqualität bei Dunkelheit zu verbessern (Ib12b6, b/211474332)
- Es ist jetzt möglich, dass die Kamera in aktivierten Apps fortgesetzt wird, wenn die Kamera im Multifenstermodus durch eine andere App mit höherer Priorität unterbrochen wird und der Fokus wieder auf die App wechselt. Aufgrund von Framework-Problemen kann es zu einer Verzögerung von 1 bis 10 Sekunden oder mehr zwischen dem Fokuswechsel und dem erneuten Öffnen der Kamera kommen. (I4d092)
Version 1.1.0-alpha12
15. Dezember 2021
androidx.camera:camera-*:1.1.0-alpha12
wird veröffentlicht. Version 1.1.0-alpha12 enthält diese Commits.
API-Änderungen
- Unnötige
@RequiresApi(21)
-Anmerkungen aus den inneren Klassen/Schnittstellen entfernt. (I8e286, b/204917951) - Die Qualitätskonstanten und Fallback-Strategiekonstanten von
QualitySelector
wurden geändert, sodass sie durch Klassenobjekte dargestellt werden. Beispiel:QualitySelector.QUALITY_HD
wird inQuality.HD
geändert undQualitySelector.FALLBACK_STRATEGY_LOWER
in die Instanz, die vonFallbackStrategy.lowerQualityOrHigherThan(Quality)
zurückgegeben wird. Die API, die zum Erstellen vonQualitySelector
verwendet wurde, wurde in eine listenbasierte API geändert. Die neue APIQualitySelector.fromOrderedList(List<Quality>)
bezieht sich auf die Reihenfolge der Liste mit der Eingabequalität anstelle der Reihenfolge, die mitQualitySelector.Procedure
erstellt wurde. Der KursQualitySelector.Procedure
wurde entfernt. (I43343) PendingRecording.withEventListener()
wurde entfernt und der Event-Listener muss jetzt anPendingRecording.start()
übergeben werden. Diese Anforderung für Ereignis-Listener soll die Verarbeitung asynchroner Fehler fördern, die im EreignisVideoRecordEvent.Finalize
gemeldet werden. (I1e71d)ActiveRecording
wurde inRecording
umbenannt, um die Ausdrucksweise zu vereinfachen. (I77ceb)
Fehlerkorrekturen
- Das Problem wurde behoben, dass bei Pixel 3a und Pixel 3a XL bei schlechten Lichtverhältnissen aufgenommene Fotos im Modus
FLASH_AUTO
unterbelichtet sind (I13f19, b/205373142) - Verwenden Sie immer die aktuelle Bildschirmgröße, um die Vorschau zu bestimmen
Resolution
. (I4a694) - Kameras ohne
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
wurden herausgefiltert. Kameras mitREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
bieten die Mindestfunktionen, die jedes Kameragerät unterstützt. Eine Kamera ohneREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
unterstützt möglicherweise spezielle Funktionen, aber keine Standardfarbausgabe.CameraX
unterstützt für diese Kameras nicht die AnwendungsfällePreview
,ImageCapture
,ImageAnalysis
oderVideoCapture
. Daher sollten diese Kameras herausgefiltert werden, um eine falsche Verwendung zu verhindern. (Ib8cda) - Bei
CameraSelector#filter
wird keineIllegalArgumentException
mehr geworfen, wenn die Ergebnismenge leer ist. (I27804) - Es werden jetzt intelligentere Heuristiken verwendet, um Encoder-Einstellungen basierend auf vom OEM angegebenen Profilen auszuwählen. (Iaeef0)
- Nach dem Starten der UHD-Videoaufzeichnung auf Google Pixel 1 sind in der fixierten Vorschau Interlaced-Farblinien zu sehen. (I833c6, b/205340278)
Version 1.1.0-alpha11
17. November 2021
androidx.camera:camera-*:1.1.0-alpha11
wird veröffentlicht. Version 1.1.0-alpha11 enthält diese Commits.
API-Änderungen
- Der öffentlichen API wurde „CameraSelector#filter“ hinzugefügt, um eine Liste von Kamerainformationen anhand einer Kameraauswahl zu filtern. (I105d0)
API „setOutputImageRotationEnabled“ für die Konfiguration „ImageAnalysis“ hinzufügen Der Nutzer kann die Drehung für den YUV/RGB-Bildpuffer aktivieren. Der Drehgrad ist eine relative Drehung, die anhand der Sensordrehung und der Zieldrehung berechnet wird, um das Bild im Vordergrund zu halten.
API „setOutputImageRotationEnabled“ für die Konfiguration „ImageAnalysis“ hinzufügen Der Nutzer kann die Drehung für den YUV/RGB-Bildpuffer aktivieren. Der Drehgrad ist eine relative Drehung, die anhand der Sensordrehung und der Zieldrehung berechnet wird, um das Bild im Vordergrund zu halten.
Fügen Sie die
getSensorToBufferTransformMatrix
API in „ImageInfo“ hinzu. Die zurückgegebene Matrix ist eine Zuordnung von Sensorkoordinaten zu Pufferkoordinaten, also vonCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
zu(0, 0, image.getWidth, image.getHeight)
. Mit der Matrix können die Koordinaten von einem {UseCase} in einen anderen zugeordnet werden. Beispiel: Koordinaten des mit ImageAnalysis erkannten Gesichts der Vorschau zuordnen. (I9ff1e)Die neue API ImageCapture.Builder#setJpegQuality wurde hinzugefügt, um die Komprimierungsqualität der Ausgabe-JPEG-Bilder bei der Aufnahme von Bildern zu ändern. (I8dcf4)
MediaStoreOutputOptions.getCollection wurde in MediaStoreOutputOptions.getCollectionUri umbenannt. (I16639)
Fehlerkorrekturen
- Das Problem wurde behoben, durch das der Blitz bei schlechten Lichtverhältnissen beim Fokussieren durch Tippen (startFocusAndMetering) ausgelöst wurde, wenn der Blitzmodus auf „auto“ oder „always_on“ gesetzt war. (Id4c11)
- HDR+ wurde auf Pixel 2 XL und Pixel 3 XL im Modus MINIMIZE_LATENCY deaktiviert, um die Latenz zu reduzieren. (Ib6270, b/203505523)
Externer Beitrag
Version 1.1.0-alpha10
13. Oktober 2021
androidx.camera:camera-*:1.1.0-alpha10
wird veröffentlicht. Version 1.1.0-alpha10 enthält diese Commits.
Neue Funktionen
androidx.camera:camera-video:1.1.0-alpha10
als erste Alphaversion für Video veröffentlicht. Es gibt mehrere bekannte Probleme, die in den späteren Releases behoben werden.
API-Änderungen
- Die Anmerkung
@RequiresApi(21)
wurde allen CameraX-Klassen hinzugefügt und die minSdkVersion aus AndroidManifest.xml entfernt. So kann camera-core ganz einfach in Anwendungen eingebunden werden, deren minSdkVersion unter 21 liegt, die aber bedingt Codepfade verwenden möchten, die auf API 21 und höher basieren. Bei Anwendungen mit einer minSdkVersion von 21 oder höher sind keine Maßnahmen erforderlich. (Ie7f2e, b/200599470)
Fehlerkorrekturen
- Sie können eine InitializationException auslösen, damit die App den AssertionError beim Erstellen von CameraCharacteristics ordnungsgemäß verarbeiten kann. (Ibec79)
Version 1.1.0-alpha09
29. September 2021
androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
und androidx.camera:camera-lifecycle:1.1.0-alpha09
werden losgelassen. Version 1.1.0-alpha09 enthält diese Commits.
API-Änderungen
- Die Anmerkung „ExperimentalUseCaseGroup“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I01ef5)
Fehlerkorrekturen
- Das Problem, dass im Modus
MAXIMIZE_QUALITY
aufgenommene Fotos unscharf waren, wurde behoben. (I173a9, b/193823892) - Behoben wurde ein Problem bei Samsung Galaxy J5, bei dem die Kamera nach der Aufnahme von Bildern mit aktiviertem/automatischem Blitz in dunkler Umgebung hängen blieb (I3aab9).
- Wenn für die Bildaufnahme ein Zuschneiden erforderlich ist, wird das zugeschnittene Ausgabebild gemäß dem festgelegten Aufnahmemodus mit der angegebenen JPEG-Qualitätsstufe komprimiert. Wenn der Aufnahmemodus
CAPTURE_MODE_MINIMIZE_LATENCY
ist, beträgt die JPEG-Komprimierungsqualität 95. Wenn der AufnahmemodusCAPTURE_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
werden losgelassen. Version 1.1.0-alpha08 enthält diese Commits.
Neue Funktionen
- Fügen Sie die setOutputImageFormat API für die Konfiguration der Bildanalyse hinzu. Der Nutzer kann ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 oder ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888 auswählen. Standardmäßig ist „ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888“ ausgewählt. (I7902d)
API-Änderungen
- Die Anmerkung „ExperimentalUseCaseGroupLifecycle“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I17b85)
Fehlerkorrekturen
- Das feste Vorschaudisplay ist auf dem Huawei P20 Lite zu hell. Dieses Problem tritt nur auf, wenn bestimmte spezielle Vorschauauflösungen zusammen mit einem hohen Zoomwert verwendet werden. (Idefce, b/192129158)
- Ein Problem wurde behoben, bei dem der Blitz auf einigen Geräten nicht funktionierte, wenn der Blitzmodus auf „FLASH_MODE_ON“ gesetzt und kurz darauf Fotos aufgenommen wurden. (Ieb49b)
- Das Problem, dass die Vorschau beim Aufnehmen von Bildern für eine Weile angehalten wurde, wenn VideoCapture, ImageCapture und Preview gebunden waren, wurde behoben. (I56197, b/193864120)
- Ermöglicht es ImageAnalysis, eine Auflösung größer als 1080p auszuwählen. Ein Gerät mit der Einschränkungsstufe „LIMITED“ kann eine Auflösung in DATENSATZ-Größe für „ImageAnalysis“ unterstützen, wenn es mit „Preview“ und „ImageCapture“ verknüpft ist. Der Nachteil ist, dass die ausgewählte Auflösung für die Bildaufnahme auch eine Auflösung in RECORD-Größe sein muss. Damit für „ImageAnalysis“ eine Auflösung in RECORD-Größe ausgewählt werden kann, muss sowohl für „ImageCapture“ als auch für „ImageAnalysis“ eine Zielauflösung in RECORD-Größe festgelegt werden. Dies zeigt, dass die Anwendung den Trade-off klar versteht und für die Bildanalyse eine höhere Auflösung als für die Bildaufnahme mit der MAXIMALEN Auflösung bevorzugt. Definitionen für die Größen „RECORD“ und „MAXIMUM“ sowie weitere Informationen finden Sie unter https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Die Größe der Aufzeichnung bezieht sich auf die maximal unterstützte Aufnahmeauflösung des Kamerageräts, wie von CamcorderProfile festgelegt. Die MAXIMALE Größe bezieht sich auf die maximale Ausgabeauflösung des Kamerageräts für dieses Format oder Ziel aus StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
- Fügen Sie dem aufgenommenen Bild die EXIF-Informationen hinzu. (I01ff0, b/193342619)
- Geben Sie in ImageCapture den URI des gespeicherten Bilds zurück, wenn der Speicherort „Datei“ ist. (Ib5b49, b/149241379)
- Ein Problem wurde behoben, bei dem Bilder mit Blitz auf vielen Geräten zu dunkel waren. (I4e510)
Version 1.1.0-alpha07
21. Juli 2021
androidx.camera:camera-camera2:1.1.0-alpha07
, androidx.camera:camera-core:1.1.0-alpha07
und androidx.camera:camera-lifecycle:1.1.0-alpha07
werden losgelassen. Version 1.1.0-alpha07 enthält diese Commits.
Fehlerkorrekturen
- Behebung eines Problems bei Samsung Galaxy Note 5, bei dem die Kamera nach der Aufnahme von Fotos mit aktiviertem/automatischem Blitz in dunkler Umgebung hängen bleibt (If6871)
- Das Problem mit der EOFException von
YuvToJpegProcessor
wurde behoben, wenn der Erweiterungsmodus aktiviert und der ModusImageCapture#CAPTURE_MODE_MAX_QUALITY
festgelegt ist. (I538bd, b/192017012)
Version 1.1.0-alpha06
30. Juni 2021
androidx.camera:camera-camera2:1.1.0-alpha06
, androidx.camera:camera-core:1.1.0-alpha06
und androidx.camera:camera-lifecycle:1.1.0-alpha06
werden losgelassen. Version 1.1.0-alpha06 enthält diese Commits.
API-Änderungen
- Einführung der experimentellen APIs zur Belichtungskorrektur für camera-core (I08ee8)
- Die API „isFocusMeteringSupported“ wurde in „CameraInfo“ hinzugefügt. Damit können Apps prüfen, ob die angegebene „FocusMeteringAction“ von der aktuellen Kamera unterstützt wird. (Ib45ae, b/188606490)
- Die getResolutionInfo API wurde freigegeben, um Auflösungsinformationen für die Vorschau, die Bildaufnahme und die Bildanalyse bereitzustellen. (I2b613, b/188600718)
- Die folgenden experimentellen APIs wurden zu offiziellen APIs: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
- Die CameraProvider-Schnittstelle wurde freigegeben, um Zugriff auf eine Reihe von Kameras zu ermöglichen. (I1a7b1)
- Die experimentelle UseCaseGroup API für „camera-core“, „camera-lifecycle“ und „camera-video“ wird beworben.
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
undViewPort.Builder#setScaleType
wurden hinzugefügt, um den Darstellungsbereich anzupassen. (I7cee8)
Version 1.1.0-alpha05
2. Juni 2021
androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
und androidx.camera:camera-lifecycle:1.1.0-alpha05
werden losgelassen. Version 1.1.0-alpha05 enthält diese Commits.
API-Änderungen
- Klasse
Camera2CameraFilter
wurde entfernt. Kameraauswahl über CameraFilter vorschlagen und bei Bedarf CameraCharacteristics oder andere Camera2-bezogene Informationen über Camera2CameraInfo abrufen. (Ib887c) ExperimentalCameraFilter
APIs sind jetzt nicht mehr in der experimentellen Phase und werden zu offiziellen APIs. Sie können ohne annotierte Einwilligung verwendet werden. (I4bc94)- Die Kamerastatus-API wurde hinzugefügt und über
CameraInfo#getCameraState()
freigegeben. (Ia86b4) - Die experimentelle API
CameraInfo#getCameraSelector()
wurde hinzugefügt, die eine für die Kamera eindeutige CameraSelector zurückgibt (I77f9f).
Fehlerkorrekturen
- Das Problem wurde behoben, dass die von „setZoomRatio“ und „setLinearZoom“ zurückgegebene ListenableFuture auf einigen Android 11-Geräten nicht abgeschlossen werden konnte (I716d7)
- Kamerawechsel beschleunigen und Fehlerhäufigkeit des Kamerageräts reduzieren (I34c99)
- „ExperimentalUseCaseGroupLifecycle“ durch „ExperimentalUseCaseGroup“ ersetzt (I3b2ef, b/159033688)
Version 1.1.0-alpha04
21. April 2021
androidx.camera:camera-camera2:1.1.0-alpha04
, androidx.camera:camera-core:1.1.0-alpha04
und androidx.camera:camera-lifecycle:1.1.0-alpha04
werden losgelassen. Version 1.1.0-alpha04 enthält diese Commits.
Fehlerkorrekturen
- Ein Speicherleck wurde behoben, das durch mehrere Threads verursacht wurde, die gleichzeitig auf dieselbe Sammlung zugegriffen haben. Aufgrund des Speicherlecks wird die Aktivität oder das Fragment möglicherweise von einer Vorschauinstanz beibehalten. (I7b4b8)
- Die Anmerkung
@Experimental
wurde bei experimentellen APIs durch@RequiresOptIn
ersetzt. Verwenden Sie für den Aufruf experimenteller APIsandroidx.annotation.OptIn
anstelle der eingestelltenandroidx.annotation.experimental.UseExperimental
. (Iff226) - Bei der Fixierung der Bildaufnahme mit aktiviertem/automatischem Blitz werden mit dem Samsung Galaxy S7 ausgebleichte Bilder aufgenommen. (I30001)
- Die CameraState API wurde hinzugefügt und wird über CameraInfo freigegeben. (I75392)
Version 1.1.0-alpha03
24. März 2021
androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
und androidx.camera:camera-lifecycle:1.1.0-alpha03
werden losgelassen. Version 1.1.0-alpha03 enthält diese Commits.
Fehlerkorrekturen
- JPEG-Ausgabeformat für
ImageCapture#OnImageCapturedCallback
, wenn der Erweiterungsmodus aktiviert ist. (I0d7b1) - Behobener Initialisierungsfehler auf UMIDIGI BISON-Geräten (I57d9e, b/180818665)
- Die gestreckte Vorschau auf dem Samsung A3 wurde in PreviewView behoben. (Iacb30, b/180121821)
Version 1.1.0-alpha02
24. Februar 2021
androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
und androidx.camera:camera-lifecycle:1.1.0-alpha02
werden losgelassen. Version 1.1.0-alpha02 enthält diese Commits.
API-Änderungen
- Es wurde eine API
ProcessCameraProvider.getAvailableCameraInfos()
hinzugefügt, um Informationen zu den verfügbaren Kameras direkt abzurufen. Das sind entweder alle Kameras des Geräts oder die mithilfe des inCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
angegebenenCameraSelector
ausgewählten Kameras. (Ieac08)
Fehlerkorrekturen
- CameraX versucht jetzt, beim ersten Versuch eine Kamera zu öffnen. Dies kann dazu führen, dass CameraX die Kamera von anderen Kameraclients stiehlt, wenn die App eine höhere Priorität hat. (Iab069, b/175820568)
- Der Robolectric-Testfehler wurde behoben, der auftritt, wenn „setAvailableCamerasLimiter“ in CameraXConfig verwendet wird. (Ice307)
- Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt abzustürzen, kann es also sein, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene/träge Vorschau. (Ic12da, b/175851631)
- Fehlerbehandlung für ExtensionsErrorListener wurde korrigiert, um Fehler zu melden, wenn nur „Preview“ oder „ImageCapture“ gebunden ist. (I5ae39)
- Die Leistung der Bildaufnahme wurde verbessert, indem die Validierung des Speicherorts des Bildes vor dem Aufnehmen entfernt wurde. Wenn das Speicherziel nach dieser Änderung ungültig ist, dauert es länger, bis die Fehlerantwort zurückgegeben wird, da versucht wird, das Bild nach der Aufnahme des Fotos zu speichern. (I1fd4e, b/177061560)
- Behobene Leistungseinbußen bei ImageCapture mit der Option „File“ (Datei) für OutputFileOptions. (I5164a, b/177061560)
- Die Dokumentation wurde aktualisiert und enthält nun die Empfehlung,
ProcessCameraProvider.configureInstance(...)
nicht aus Bibliothekscode zu verwenden. (Ib8a9f)
Version 1.1.0-alpha01
27. Januar 2021
androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
und androidx.camera:camera-lifecycle:1.1.0-alpha01
werden losgelassen. Version 1.1.0-alpha01 enthält diese Commits.
Fehlerkorrekturen
- Es wurde eine Problemumgehung für sporadisch beschädigte Bilddaten in JPEGs bei der Rückkamera des SM-G930T hinzugefügt. (I52001, b/159831206)
IllegalArgumentException
Problem behoben, das auftrat, wenn alle unterstützten Vorschaugrößen kleiner als 640 × 480 waren und die Displaygröße größer als 640 × 480 war. (I2a63c, b/150506192)- Ressourcen in Bibliotheken, für die keine explizit deklarierten öffentlichen Ressourcen angegeben sind (z. B. über public.xml), sind jetzt standardmäßig privat. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core und Camera-Lifecycle Version 1.0.2
Version 1.0.2
29. September 2021
androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
und androidx.camera:camera-lifecycle:1.0.2
werden losgelassen. Version 1.0.2 enthält diese Commits.
Fehlerkorrekturen
- Das Problem, dass im Modus
MAXIMIZE_QUALITY
aufgenommene Fotos unscharf waren, wurde behoben. (I173a9, b/193823892) - Ein Problem wurde behoben, bei dem auf vielen Geräten aufgenommene Bilder mit Blitz dunkel waren. (I4e510)
Camera-Camera2, Camera-Core und Camera-Lifecycle Version 1.0.1
Version 1.0.1
21. Juli 2021
androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
und androidx.camera:camera-lifecycle:1.0.1
werden losgelassen. Version 1.0.1 enthält diese Commits.
Fehlerkorrekturen
Das Problem wurde behoben, dass die
ListenableFuture
, die insetZoomRatio
undsetLinearZoom
zurückgegeben wird, auf einigen Android 11-Geräten nicht abgeschlossen werden kann (I716d7)Das Problem, dass die Kamera auf einigen Geräten beim Schließen des Kamerastatus hängen bleibt und eine schwarze Vorschau anzeigt, wurde behoben. (I34c99)
Camera-Camera2, Camera-Core und Camera-Lifecycle Version 1.0.0
Version 1.0.0
5. Mai 2021
androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
und androidx.camera:camera-lifecycle:1.0.0
werden losgelassen. Version 1.0.0 enthält diese Commits.
Wichtige Funktionen von 1.0.0
- CameraX unterstützt Vorschau, Bilderfassung und Analyse
- CameraX verwaltet den Lebenszyklus der Kamera über eine nutzerfreundliche API.
- CameraX soll eine Kompatibilitätsschicht bieten, mit der viele Probleme im Android-Kamerasystem behoben werden.
Bekannte Probleme
Version 1.0.0-rc05
21. April 2021
androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
und androidx.camera:camera-lifecycle:1.0.0-rc05
werden losgelassen. Version 1.0.0-rc05 enthält diese Commits.
Fehlerkorrekturen
- Bei der fixen Bildaufnahme mit aktiviertem/automatischem Blitz werden mit dem Samsung Galaxy S7 ausgebleichte Bilder aufgenommen. (I30001)
Version 1.0.0-rc04
24. März 2021
androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
und androidx.camera:camera-lifecycle:1.0.0-rc04
werden losgelassen. Version 1.0.0-rc04 enthält diese Commits.
Fehlerkorrekturen
- Behobener Initialisierungsfehler auf UMIDIGI BISON-Geräten (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
werden losgelassen. Version 1.0.0-rc03 enthält diese Commits.
Fehlerkorrekturen
- Formatfehler im Dokument von
ProcessCameraProvider#getInstance
beheben - Der Robolectric-Testfehler wurde behoben, der bei Verwendung von „setAvailableCamerasLimiter“ in CameraXConfig auftrat.
- Die Leistung der Bildaufnahme wurde verbessert, indem die Validierung des Speicherorts des Bildes vor dem Aufnehmen entfernt wurde. Wenn das Speicherziel nach dieser Änderung ungültig ist, dauert es länger, bis die Fehlerantwort zurückgegeben wird, da versucht wird, das Bild nach der Aufnahme des Fotos zu speichern.
- Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt eines Absturzes kann es also sein, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene/träge Vorschau.
- Es wurde eine Problemumgehung für gelegentlich beschädigte Bilddaten in JPEGs bei der Rückkamera des SM-G930T hinzugefügt. (I52001, b/159831206)
- Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt abzustürzen, kann es also sein, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene/träge Vorschau. (Ic12da, b/175851631)
- Der Robolectric-Testfehler wurde behoben, der auftritt, wenn „setAvailableCamerasLimiter“ in CameraXConfig verwendet wird. (Ice307)
- Die Leistung der Bildaufnahme wurde verbessert, indem die Validierung des Speicherorts des Bildes vor dem Aufnehmen entfernt wurde. Wenn das Speicherziel nach dieser Änderung ungültig ist, dauert es länger, bis die Fehlerantwort zurückgegeben wird, da versucht wird, das Bild nach der Aufnahme des Fotos zu speichern. (I1fd4e, b/177061560)
- Behobene Leistungseinbrüche bei ImageCapture mit der Option „Datei“ für OutputFileOptions. (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
werden losgelassen. Version 1.0.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Das Problem mit der IllegalArgumentException wurde behoben, das auftrat, wenn alle unterstützten Vorschaugrößen kleiner als 640 × 480 waren und die Displaygröße größer als 640 × 480 war. (b/150506192)
Anzahl der Versuche zum Wiederöffnen der Kamera begrenzen Beim Versuch, bestimmte Probleme beim Öffnen der Kamera zu beheben, versucht CameraX nicht mehr, die Kamera auf unbestimmte Zeit wieder zu öffnen. Stattdessen wird nach 10 Sekunden versucht, die Kamera wieder zu öffnen.I435d2
IllegalArgumentException
Problem behoben, das auftrat, wenn alle unterstützten Vorschaugrößen kleiner als 640 × 480 waren und die Displaygröße größer als 640 × 480 war. (I2a63c, b/150506192)
Version 1.0.0-rc01
16. Dezember 2020
androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
und androidx.camera:camera-lifecycle:1.0.0-rc01
werden losgelassen. Version 1.0.0-rc01 enthält diese Commits.
API-Änderungen
- CameraFilter und Camera2Filter wurden so geändert, dass sie CameraInfo berücksichtigen. (I6883d)
- Die experimentelle Klasse „Camera2CameraControl“ wurde hinzugefügt, um die dynamische Interkonnektivität mit Camera2 APIs zu ermöglichen. (I45cf3)
- Camera2CameraInfo#fromCameraInfo in #from umbenannt (Ia2bd6)
- Die experimentelle API „setAvailableCamerasLimiter“ wurde zu CameraXConfig hinzugefügt, damit Apps die Initialisierungslatenz optimieren können, indem nicht verwendete Kameras nicht initialisiert werden. (I6cf88)
- Die experimentelle Methode
CameraXConfig.Builder#setMinimumLoggingLevel()
wurde hinzugefügt, um eine Mindestprotokollierungsebene für CameraX-Protokolle festzulegen. Wenn sie nicht festgelegt ist, wird standardmäßigLog#DEBUG
verwendet. (Ic3245)
Fehlerkorrekturen
- Es wurde eine Problemumgehung für sporadisch beschädigte Bilddaten in JPEGs bei der Rückkamera des SM-G930V hinzugefügt. (I5aca5, b/159831206)
- Das Problem wurde behoben, dass auf Samsung SM-A716-Geräten keine Fotos aufgenommen werden konnten, wenn der Blitz immer eingeschaltet ist und es dunkel ist. (If98b2, b/172036589)
- Das Problem wurde behoben, dass die Vorschau nicht durch Aufrufen von
Preview.setSurfaceProvider(null)
beendet werden konnte. (I3ac18) - Ein Problem mit der Ausrichtung bei der Aufnahme von 4:3-Bildern auf einigen Geräten wurde behoben. (I0e3fb, b/171492111)
Camera2, Core und Lebenszyklusversion 1.0.0-beta12
11. November 2020
androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
und androidx.camera:camera-lifecycle:1.0.0-beta12
werden losgelassen. Version 1.0.0-beta12 enthält diese Commits.
Fehlerkorrekturen
- Der automatische Blitz wurde auf Samsung A3-Geräten deaktiviert, um den Absturz beim Aufnehmen von Fotos mit dem automatischen Blitz-AE-Modus auf Samsung A3-Geräten zu beheben. (Ia5fe3, b/157535165)
- Ein Problem, bei dem die Vorschau auf Nexus 4-Geräten mit Android L (API-Ebenen 21 und 22) gestreckt wurde, wurde behoben. (I4d407, b/158749159)
OnImageCapturedCallback#onCaptureSuccess
Die Basisklasse schließt das Bild nicht mehr. So soll unerwartetes Verhalten für Entwickler verhindert werden. Entwickler sollten nicht auf super.onCaptureSuccess zurückgreifen, um das Bild zu schließen. (Ifbf9c)- Die androidx-Variante der Anmerkung „Experimental“ wurde eingestellt, um für Gleichbehandlung mit Kotlin zu sorgen. Sie wurde durch die Anmerkung „RequiresOptIn“ ersetzt und der Java-Linter wurde aktualisiert, um sowohl die neue Kotlin-Anmerkung als auch die neue androidx-Variante zu unterstützen. (I52495, b/151331381)
Kamera-Camera2 Version 1.0.0-beta11
14. Oktober 2020
androidx.camera:camera-camera2:1.0.0-beta11
wird veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.
Neue Funktionen
- Unterstützt die Android 11-
CONTROL_ZOOM_RATIO
API für den Zoom auf Geräten mit Android 11 oder höher, die eine gültigeCONTROL_ZOOM_RATIO_RANGE
enthalten. (I62cc6)
Fehlerkorrekturen
- Das Problem mit der NumberFormatException wurde behoben, das auftrat, wenn die Kamera-ID keine Ganzzahl war. (Ib2228)
- Die Latenz der CameraX-Initialisierung und von bindToLifecycle wurde verbessert (I61dc5)
- Für das Erstellen von Anwendungsfällen ist keine Initialisierung von CameraX erforderlich. Alle implementierungsspezifischen Konfigurationen werden für den UseCase festgelegt, sobald er mit einer Kamerainstanz verknüpft ist. Für die öffentliche API ist das
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
gibtSurface.ROTATION_0
zurück, wenn es aufgerufen wird, bevor es an eine Kamerainstanz angehängt wird, es sei denn, für den Builder oder UseCase wurde eine targetRotation festgelegt. (I80fcd)
Camera-Core-Version 1.0.0-beta11
14. Oktober 2020
androidx.camera:camera-core:1.0.0-beta11
wird veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.
Neue Funktionen
– Unterstützung der Android 11-CONTROL_ZOOM_RATIO
API für den Zoom auf Geräten mit Android 11 oder höher, die eine gültige CONTROL_ZOOM_RATIO_RANGE
enthalten. (I62cc6)
Fehlerkorrekturen
- Das Problem mit der NumberFormatException wurde behoben, das auftrat, wenn die Kamera-ID keine Ganzzahl war. (Ib2228)
- Für die Erstellung von Anwendungsfällen ist keine Initialisierung von CameraX erforderlich. Alle implementierungsspezifischen Konfigurationen werden für den UseCase festgelegt, sobald er mit einer Kamerainstanz verknüpft ist. Für die öffentliche API ist das
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
gibtSurface.ROTATION_0
zurück, wenn es aufgerufen wird, bevor es an eine Kamerainstanz angehängt wird, es sei denn, für den Builder oder UseCase wurde eine targetRotation festgelegt. (I80fcd)
Camera-Core-Version 1.0.0-beta10
23. September 2020
androidx.camera:camera-core:1.0.0-beta10
wird veröffentlicht. Version 1.0.0-beta10 enthält diese Commits.
Fehlerkorrekturen
- Fehler bei der Validierung des Speicherorts für die Bildaufnahme behoben (I8c565, b/167697553)
Kamera-Camera2 Version 1.0.0-beta10
23. September 2020
androidx.camera:camera-camera2:1.0.0-beta10
wird veröffentlicht. Version 1.0.0-beta10 enthält diese Commits.
Fehlerkorrekturen
- Unterstützung für Camera-Core 1.0.0-beta10
Camera-Camera2 Version 1.0.0-beta09
16. September 2020
androidx.camera:camera-camera2:1.0.0-beta09
wird veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.
API-Änderungen
- Anstatt statische Methoden bereitzustellen, nimmt Camera2CameraInfo beim Erstellen eine CameraInfo-Instanz an, um Camera2-bezogene Informationen abzurufen. (I5b844)
Fehlerkorrekturen
- Das Problem mit dem Seitenverhältnis des Targetings auf Tablets wurde behoben. Wenn das Zielseitenverhältnis auf
AspectRatio.RATIO_16_9
festgelegt ist, sollte eine Größe von 16:9 ausgewählt werden. (Ib7fcf, b/151969438) - Legen Sie eine
InitializationException
fest, damit die App den AssertionError beim Erstellen von CameraCharacteristics ordnungsgemäß verarbeiten kann. (I89c8c, b/160524721) - Es wurden experimentelle Schnittstellen für „ExposureCompensation“ (If96c7) hinzugefügt.
Camera-Core-Version 1.0.0-beta09
16. September 2020
androidx.camera:camera-core:1.0.0-beta09
wird veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.
API-Änderungen
- Der Fehler wurde behoben, bei dem der Darstellungsbereich in „UseCaseGroup“ als nicht null gekennzeichnet war. Entwickler sollten in der Lage sein, einen Darstellungsbereich zu erstellen, ohne einen festzulegen. (Ie3d2e)
- Experimentelle Schnittstellen für
ExposureCompensation
(If96c7) hinzugefügt - Beliebige Ausrichtung des Ziels für die Vorschau zulassen. Die Transformationsinformationen werden berechnet und über einen neuen
TranformationInfoListener
-Callback in Echtzeit an den Nutzer zurückgegeben. (I21470)
Fehlerkorrekturen
- Das Problem, dass der Blitz bei einigen Geräten nicht ausgeschaltet werden konnte, wurde behoben. Dieses Problem trat auf, wenn der Blitzmodus für ein Foto auf
FLASH_MODE_ON
eingestellt und beim Auslösen des Blitzes inFLASH_MODE_OFF
geändert wurde. Das Problem tritt auf, als wäre der Taschenlampenmodus aktiviert. (Ib4451, b/162568128) - PreviewView wird gezwungen, TextureView zu verwenden, wenn der Erweiterungseffekt aktiviert ist und die Implementierung der Anbieterbibliothek einen speziellen Prozess auf der Ausgabefläche ausführen muss. (I0c3cc)
- Das Speicherleck bei Aktivitäten/Fragmenten wurde behoben, wenn ein Aktivitäts-/Fragmentkontext an
ProcessCameraProvider.getInstance(Context)
übergeben wird.
Bekannte Probleme
- Wenn „ViewPort“ festgelegt ist, ist das Zuschneide-Rechteck von „ImageCapture“ auf Geräten, die den Bildpuffer in HAL drehen, möglicherweise falsch. Dieses Problem wird in der nächsten Version behoben.
Camera-Camera2 Version 1.0.0-beta08
19. August 2020
androidx.camera:camera-camera2:1.0.0-beta08
wird veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.
Fehlerkorrekturen
- „bindToLifecycle“ wurde optimiert, damit es schnell im Hauptthread ausgeführt wird. (I1d57e)
- DisplayOrientedMeteringPointFactory nimmt eine CameraInfo-Instanz anstelle einer CameraSelector an, sodass eine direkte Zuordnung zu der Kamera erfolgt, für die die Factory Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, nehmen auch eine Instanz von CameraInfo anstelle von CameraSelector an. (I400c1)
- Behoben wurde ein Problem bei der Gruppierung der Seitenverhältnisgrößen für die automatische Auflösung, bei dem die Größe 16:9 mod16 (864 × 480) ausgewählt wurde, wenn die Zielauflösung 2016 × 1080 ist und eine andere Größe von 1920 × 1080 16:9 unterstützt wird. (I53167, b/159363774)
- Problem mit CameraControl behoben, bei dem die Funktion aufgrund einer Race-Bedingung nicht funktionierte (I2279f, b/152333890, b/160714166)
Camera-Core-Version 1.0.0-beta08
19. August 2020
androidx.camera:camera-core:1.0.0-beta08
wird veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.
API-Änderungen
DisplayOrientedMeteringPointFactory
nimmt eineCameraInfo
-Instanz anstelle einerCameraSelector
an. Es gibt also eine direkte Zuordnung dazu, für welche Kamera die Fabrik Punkte generiert. Alle Klassen, dieDisplayOrientedMeteringPointFactory
verwenden, nehmen auch eineCameraInfo
-Instanz anstelle vonCameraSelector
an. (I400c1)
Fehlerkorrekturen
- Überschreiben Sie bei der Bildaufnahme das Flag „horizontal drehen“ 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-Camera2 Version 1.0.0-beta07
22. Juli 2020
androidx.camera:camera-camera2:1.0.0-beta07
wird veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.
Fehlerkorrekturen
- Das Problem, dass die Vorschau auf Geräten mit Android 5.0 gestreckt wurde, wurde behoben. (I0c03a)
- Einige unterstützte JPEG-Größen wurden ausgeschlossen, die auf einigen Geräten zu WYSIWYG-Problemen führen. (Ib5128)
Camera-Core-Version 1.0.0-beta07
22. Juli 2020
androidx.camera:camera-core:1.0.0-beta07
wird veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.
API-Änderungen
- Fügen Sie den Fit-Stil von
FIT_CENTER
,FIT_START
undFIT_END
zuFIT
hinzu.FIT
bedeutet, dass der zurückgegebene Zuschnitts-Rechteck das maximal mögliche Sensor-Rechteck ist. (Ia73c3) - Das Zuschneide-Rechteck der Vorschau wird vom Darstellungsbereich konfiguriert. Nur der Bereich, der vom Zuschneide-Rechteck abgedeckt ist, sollte für Endnutzer sichtbar sein. (I142a4)
Fehlerkorrekturen
- Das Problem, dass die Vorschau auf Geräten mit Android 5.0 gestreckt wurde, wurde behoben. (I0c03a)
- Das Problem mit der
ConcurrentModificationException
-Ausnahme beim Aufheben der Bindung von Anwendungsfällen wurde behoben. (I371c0)
Camera-Camera2 Version 1.0.0-beta06
24. Juni 2020
androidx.camera:camera-camera2:1.0.0-beta06
wird veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.
API-Änderungen
- Es wurden experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und Kameraeigenschaften hinzugefügt. (I28f61)
Fehlerkorrekturen
- Das Problem wurde behoben, durch das mit startFocusAndMetering auf dem Samsung Galaxy S7 kein Fokus gesetzt werden konnte. (If3be7, b/159039233)
- Die Kamera kann nicht geschlossen werden, nachdem die App beendet wurde. (I7a7b3)
- Behebung des Problems, dass bei wiederholtem Wechseln der Kamera die Vorschau bei Verwendung der SurfaceView-Implementierung von PreviewView unterbrochen wird (I920ce)
CameraControl#startFocusAndMetering
schlägt fehl, wenn keiner der angegebenen Messpunkte gültige Messrechtecke generieren kann. (Id53ce)
Camera-Core-Version 1.0.0-beta06
24. Juni 2020
androidx.camera:camera-core:1.0.0-beta06
wird veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.
API-Änderungen
- Es wurden experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und Kameraeigenschaften hinzugefügt. (I28f61)
Fehlerkorrekturen
- CameraX kann jetzt mit
ProcessCameraProvider#configureInstance()
konfiguriert werden, bevorProcessCameraProvider#getInstance()
aufgerufen wird. So lässt sichCameraXConfig
anpassen, ohneCameraXConfig.Provider
in der Anwendungsklasse der App implementieren zu müssen. (Ia1a8d) CameraControl#startFocusAndMetering
schlägt fehl, wenn keiner der angegebenen Messpunkte gültige Messrechtecke generieren kann. (Id53ce)
Camera-Camera2 Version 1.0.0-beta05
10. Juni 2020
androidx.camera:camera-camera2:1.0.0-beta05
wird veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.
Fehlerkorrekturen
- Behebung des Absturzes beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im Modus „Bitte nicht stören“ befindet. Ein
InitializationException
enthält einenCameraUnavailableException
, der auf dieListenableFuture
des Initialisierungsergebnisses gesetzt wird, anstatt dass die Anwendung abstürzt. (I9909a, b/149413835) - Der Absturz beim Aufrufen von
startFocusAndMetering
auf Geräten, auf denenCONTROL_AF_STATE
null ist, wurde behoben. (Ife55e, b/157084254)
Camera-Core-Version 1.0.0-beta05
10. Juni 2020
androidx.camera:camera-core:1.0.0-beta05
wird veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.
API-Änderungen
- Behebung des Absturzes beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im Modus „Bitte nicht stören“ befindet. Ein
InitializationException
, das einCameraUnavailableException
enthält, wird auf dieListenableFuture
des Initialisierungsergebnisses gesetzt, anstatt dass die Anwendung abstürzt. (I9909a, b/149413835)
Fehlerkorrekturen
- Javadocs von
setTargetResolution
undsetTargetRotation
wurden aktualisiert. (Iae16f)
Camera-Camera2 Version 1.0.0-beta04
27. Mai 2020
androidx.camera:camera-camera2:1.0.0-beta04
wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
Fehlerkorrekturen
- Es wurde Apps ermöglicht, beliebige Parameter für Kamera 2-Aufnahmeanfragen über
Camera2Interop
festzulegen, ohne einen Absturz zu verursachen. Beachten Sie, dass durch das Überschreiben von Parametern Probleme auftreten können. Stabilität und Verhalten sind nicht garantiert, wenn Sie Parameter mit Camera2Interop überschreiben. (Ibe5a1, b/149103700) - Die automatische Initialisierung ist bei der Verwendung einer App auf einem Gerät mit Pseudo-Standort korrigiert. (I3bef3, b/154767663)
- Das Fehlerprotokoll für den getrennten Anwendungsfall wurde in ein Debug-Protokoll für Camera2CameraImpl umgewandelt. (I1a565, b/154422490)
- Ein Problem wurde behoben, durch das aufgenommene Bilder manchmal zu dunkel waren, obwohl der Blitz ausgelöst wurde. (I5d9fa, b/149729613)
- Fehler behoben, durch den der Buffer in
ImageProxy
vonImageCapture
nicht zurückgespult wurde (I0c455, b/153249512) - Die Probleme bei der Bindung von ImageCapture wurden behoben: (1) Es konnten keine Fotos mit MAX_QUALITY aufgenommen werden. (2) Die Bildqualität war schlecht, weil die automatische Belichtung nicht funktionierte. (I17782, b/145326998)
- Verbesserte Zuverlässigkeit beim erneuten Öffnen der Kamera, wenn CameraX durch einen anderen Prozess oder Codepfad getrennt wird, der die Kamera stiehlt (I1fbc3, b/153714651)
Camera-Core Version 1.0.0-beta04
27. Mai 2020
androidx.camera:camera-core:1.0.0-beta04
wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
API-Änderungen
- Es wurde eine experimentelle API namens
CameraXConfig.Builder#setSchedulerHandler()
hinzugefügt, mit der der vom CameraX-Kamerastack intern verwendete Handler festgelegt werden kann. Diese neue API undCameraXConfig.Builder#setCameraExecutor()
sollten eine vollständige Kontrolle über die Threads ermöglichen, die vom CameraX-Kamerastack verwendet werden. (I7bf32, b/121160431)
Fehlerkorrekturen
- Behebt einen Absturz in
ImageAnalysis
, bei dem auf dieImageProxy
zugegriffen wird, nachdem dieImageReaderProxy
geschlossen wurde. Außerdem müssen alle von derAnalyzer
empfangenenImageProxy
geschlossen werden, bevor dieImageReaderProxy
geschlossen wird. (I4b299, b/145956416, b/154155377, b/156357269) - Der Parameter
CameraInfo
wurde ausPreviewView#createSurfaceProvider()
entfernt.PreviewView
ruft ihn jetzt intern aus derSurfaceRequest
ab. (If18f0, b/154652477) - Die automatische Initialisierung ist bei der Verwendung einer App auf einem Gerät mit Pseudo-Standort korrigiert. (I3bef3, b/154767663)
- Ein Problem wurde behoben, durch das aufgenommene Bilder manchmal zu dunkel waren, obwohl der Blitz ausgelöst wurde. (I5d9fa, b/149729613)
- Problem mit
ImageAnalysis
behoben, bei dem mehrere Aufrufe von „setAnalyzer“/„clearAnalyzer“ dazu führten, dass der Analyser keine Bilder zur Analyse erhielt. (I6169f, b/151605317, b/153514544) - Fehler behoben, durch den der Buffer in
ImageProxy
vonImageCapture
nicht zurückgespult wurde (I0c455, b/153249512) - Das Problem wurde behoben, dass die erste Kamera in der Liste der unterstützten Kameras von
CameraManager
nicht immer für die Verwendung ausgewählt wird. (I4c624, b/153418028) - Es wurde ein gelegentlicher Absturz behoben, der durch die Einstellung
Preview.SurfaceProvider
verursacht wurde, durch die die zuvor angeforderte Oberfläche nicht freigegeben wurde.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
(I8e4e7, b/155936225)
Kamera-Camera2 Version 1.0.0-beta03
15. April 2020
androidx.camera:camera-camera2:1.0.0-beta03
wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
Fehlerkorrekturen
- Fehlerkorrekturen zur Unterstützung der Veröffentlichung von
camera-core
Camera-Core Version 1.0.0-beta03
15. April 2020
androidx.camera:camera-core:1.0.0-beta03
wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
Fehlerkorrekturen
- Eine Regression aus Beta 03 wurde behoben, bei der beim Aufruf von
bindToLifecycle()
mit nullUseCase
s eine Ausnahme ausgelöst wurde. Dadurch wurde verhindert, dass eineCamera
ohne Bindung einerUseCase
abgerufen werden konnte.
Camera-Camera2 Version 1.0.0-beta02
1. April 2020
androidx.camera:camera-camera2:1.0.0-beta02
wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Der
ImageInfo.getRotationDegrees()
-Wert aus dem vonImageCapture
generiertenImageProxy
wurde so korrigiert, dass er mit dem EXIF-Wert für die Drehung der Ausrichtung übereinstimmt. (Id4281, b/150802561) - Die explizite Sortierung von CameraX-Abhängigkeiten in
build.gradle
ist nicht mehr erforderlich, um die Standardimplementierung von CameraX/Camera2 zu verwenden. Wenn die Deklaration strenger Abhängigkeiten erforderlich ist, können alle CameraX-Abhängigkeiten jetzt in die Build-Datei aufgenommen werden. (I46e88) - Das
IllegalArgumentException
-Problem auf Geräten mit einer Displaygröße von weniger als 640 × 480 Pixeln wurde behoben. (Ife3f2, b/150506192) bindToLifecycle
wurde so korrigiert, dass der UseCase nur dann geändert wird, wenn die Bindung erfolgreich war. Bisher wurde der UseCase aktualisiert, wennbindToLifecycle
aufgerufen wurde, um Auflösungsberechnungen durchzuführen. Jetzt muss der UseCase nicht mehr aktualisiert werden, um die Berechnungen durchzuführen (I78d9e)
Camera-Core-Version 1.0.0-beta02
1. April 2020
androidx.camera:camera-core:1.0.0-beta02
wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Der
ImageInfo.getRotationDegrees()
-Wert aus dem vonImageCapture
generiertenImageProxy
wurde so korrigiert, dass er mit dem EXIF-Wert für die Drehung der Ausrichtung übereinstimmt. (Id4281, b/150802561) bindToLifecycle
wurde so korrigiert, dass der UseCase nur dann geändert wird, wenn die Bindung erfolgreich war. Bisher wurde der UseCase aktualisiert, wennbindToLifecycle
aufgerufen wurde, um Auflösungsberechnungen durchzuführen. Jetzt muss der UseCase nicht mehr aktualisiert werden, um die Berechnungen durchzuführen (I78d9e)- Ein Problem wurde behoben, durch das die Aufnahmesitzung des
Preview
-Use-Cases nicht aktualisiert wurde, wenn sich die Vorschauoberfläche nach mehrmaligem Aufruf vonPreview.setSurfaceProvider()
geändert hat.
Kamera-Camera2 Version 1.0.0-beta01
26. Februar 2020
androidx.camera:camera-camera2:1.0.0-beta01
wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Fehlerkorrekturen
SurfaceRequest.setSurface(Surface)
wurde inSurfaceRequest.provideSurface(Surface)
undSurfaceRequest.setWillNotComplete()
inSurfaceRequest.willNotProvideSurface()
umbenannt. (I224fe)- Ein Problem wurde behoben, durch das das Seitenverhältnis eines gespeicherten Bildes nicht korrekt war, nachdem der Wert für die Zieldrehung mit
ImageCapture.setTargetRotation()
geändert wurde. (I474ea, b/148763432) - Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert. Dazu wurde das Flag beibehalten, das den Standard-
CameraXConfig
-Anbieter festlegt. (I2d6c1)
Camera-Core-Version 1.0.0-beta01
26. Februar 2020
androidx.camera:camera-core:1.0.0-beta01
wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
API-Änderungen
ListenableFuture
inSurfaceRequest.provideSurface()
durchExecutor
undCallback
ersetzt Dadurch wird die API vereinfacht, da keine Ausnahmen mehr beiprovideSurface()
verarbeitet werden müssen und derprovideSurface()
-Callback nicht mehr abgebrochen werden kann. So werden Abstürze auf älteren Geräten verhindert, die durch eine vorzeitige Freigabe von Oberflächen verursacht werden. DasSurfaceRequest.Result
-Objekt wird jetzt verwendet, um zu erfassen, wie einSurfaceRequest
die bereitgestellteSurface
verwendet. (I7854b)SurfaceRequest.setSurface(Surface)
wurde inSurfaceRequest.provideSurface(Surface)
undSurfaceRequest.setWillNotComplete()
inSurfaceRequest.willNotProvideSurface()
umbenannt. (I224fe)
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das das Seitenverhältnis eines gespeicherten Bildes nicht korrekt war, nachdem der Wert für die Zieldrehung mit
ImageCapture.setTargetRotation()
geändert wurde. (I474ea, b/148763432) - Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert. Dazu wurde das Flag beibehalten, das den Standard-
CameraXConfig
-Anbieter festlegt. (I2d6c1) - Die Dokumentation für APIs für den Blitzmodus wurde um mögliche Werte ergänzt. (I4a3ec)
Camera-Camera2 Version 1.0.0-alpha10
10. Februar 2020
androidx.camera:camera-camera2:1.0.0-alpha10
wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
Fehlerkorrekturen
- Die Stabilität auf
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
-Geräten wurde verbessert, daSurface
s nur während der Verwendung durch Camera2 aufbewahrt werden. (I9dac2) - Das Problem mit der unterbelichteten Vorschau auf LEGACY-Geräten wurde behoben, indem
CONTROL_AE_TARGET_FPS_RANGE
richtig angepasst wurde. (1224638)
Camera-Core Version 1.0.0-alpha10
10. Februar 2020
androidx.camera:camera-core:1.0.0-alpha10
wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
API-Änderungen
ImageCapture
wurde aktualisiert, damit Bilder inUri
undOutputStream
gespeichert werden können. ÜberladenetakePicture
-Methoden wurden zu einer einzigen Methode kombiniert. Die Test-App wurde aktualisiert, sodassUri
als kanonisches Beispiel verwendet wird. (Ia3bec)Preview.PreviewSurfaceProvider
wurde inPreview.SurfaceProvider
umbenannt. FürSurfaceProvider
s müssen Entwickler nicht mehr ihre eigenenListenableFuture
erstellen.Surface
s werden jetzt über ein neuesSurfaceRequest
-Objekt bereitgestellt. Die MethodePreview.getPreviewSurfaceProvider()
wurde entfernt, da sie missbraucht werden kann, wennPreview
mit anderen Klassen wiePreviewView
kombiniert wird. (I20105)getTargetRotation()
undgetTargetName()
wurden zuPreview
hinzugefügt. (Iceee7)getTargetRotation()
,getBackpressureStrategy()
undgetImageQueueDepth()
wurden zuImageAnalysis
hinzugefügt. (I9d6d9)getTargetRotation()
undgetCaptureMode()
inImageCapture()
hinzugefügt (I5bc17)- Die Argumente, die zuvor in
ImageCapture.OnImageSavedCallback.onError()
undImageCapture.OnImageCapturedCallback.onError()
übergeben wurden, wurden durch ein einzelnes ArgumentImageCaptureException
ersetzt, das weiterhin alle zuvor übergebenen Informationen enthält. - Das Dateiargument, das zuvor in
ImageCapture.OnImageSavedCallback.onImageSaved()
übergeben wurde, wurde entfernt. (I750d2) - Die Kurse
Preview
undImageCapture
sind jetzt als endgültig gekennzeichnet. (I2500b) - Die API wurde aktualisiert. Die
getZoomRatio()
-,getMaxZoomRatio()
-,getMinZoomRatio()
- undgetLinearZoom()
-Methoden vonCameraInfo
wurden ingetZoomState()
zusammengeführt, was eineZoomState
-Instanz zurückgibt. (Ib19fe) - Die API-Felder
OPTION_TARGET_CLASS
undOPTION_TARGET_NAME
wurden ausCameraXConfig
entfernt, da sie nur für die interne Bibliotheksnutzung vorgesehen sind. Konstruktor fürCameraXConfig.Builder
entfernt. (I96912) - Die Anforderung, dass die App
Application
erweitern muss, um CameraX zu initialisieren, wurde entfernt. CameraX wird jetzt mit einer Standard-Camera2-Konfiguration initialisiert, solange dascamera-camera2
-Artefakt in derbuild.gradle
der Anwendung enthalten ist. (I58ff5) (b/146923574)
Camera-Camera2 Version 1.0.0-alpha09
22. Januar 2020
androidx.camera:camera-camera2:1.0.0-alpha09
wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
API-Änderungen
Camera2-Interop-Pfad zum Extrahieren einer Camera2-Kamera-ID hinzufügen Sie können die Kamera-ID mit
Camera2CameraInfo.extractCameraId()
ausCameraInfo
extrahieren. Das folgende Codebeispiel zeigt, wie das geht:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
Für die Klasse
Camera2CameraInfo
ist dieExperimentalCamera2Interop
-Markierungsklasse erforderlich.
Camera-Core-Version 1.0.0-alpha09
22. Januar 2020
androidx.camera:camera-core:1.0.0-alpha09
wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
API-Änderungen
- Der
SurfaceOrientedMeteringPointFactory
-ParameteruseCaseForSurface
wurde inuseCaseForAspectRatio
umbenannt und die Referenzdokumentation wurde erweitert. FocusMeteringAction.Builder.from()
-Methoden werden durch die KonstruktorenFocusMeteringAction.Builder()
ersetzt.DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
wurde entfernt. Anwendungen sollten den Konstruktor verwenden, der einenDisplay
-Parameter annimmt und das aktuelle Display übergeben kann.- Verbesserungen der Javadocs für die APIs für Fokus und Belichtung hinsichtlich
MeteringMode
- und 3A-Flags sowie der Verwendung des ParametersDisplay
. - Die Referenzdokumentation für
setZoomRatio
undsetLinearZoom
wurde erweitert.
Fehlerkorrekturen
- Probleme beim Schließen und Öffnen von Kameras, die zu einem Fehler bei der Überprüfung der „Voraussetzung“ geführt haben, wurden behoben.
- Ein
ConcurrentModificationException
wurde behoben, das bei Verwendung der Taschenlampen- und Zoom-APIs auftreten konnte. - Es wurde ein Problem behoben, durch das Auflösungen ausgewählt wurden, die der angeforderten Auflösung nicht so nahe kamen, wenn eine Größe mit mod16-Abmessungen verfügbar war.
- Die
startFocusMetering
- undcancelFocusMetering
-APIs funktionieren jetzt wie beschrieben, mit korrektem Timing und ggf. Rückgabe von Fehlern, wenn diese auftreten. - Ein Problem wurde behoben, bei dem eine bestimmte Zielauflösung mit einem Zuschnittsseitenverhältnis auf einem Gerät angefordert wurde, das solche Größen nicht unterstützt. Jetzt wird bei Verfügbarkeit eine nicht zugeschnittene Größe mit ausreichender Auflösung ausgewählt, um die ursprüngliche Anfrage zu begrenzen.
Camera-Camera2 Version 1.0.0-alpha08
18. Dezember 2019
androidx.camera:camera-camera2:1.0.0-alpha08
wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Bekannte Probleme
- Nicht alle Optionen für Camera2-Aufnahmeanfragen funktionieren bei Verwendung der Camera2-Interoperabilität. Wenn die angeforderte Option nicht unterstützt wird, kann die Sitzung nicht gestartet werden und 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
- Ein Problem wurde behoben, bei dem nach dem Drehen oder Wechseln der Kamera bei API-Level 21 und 22 ein schwarzer Vorschaubildschirm angezeigt wurde.
API-Änderungen
- Experimentell: Es wurde ein camera2-Interop-Pfad zum Extrahieren der Kamera-ID hinzugefügt.
Camera-Core-Version 1.0.0-alpha08
18. Dezember 2019
androidx.camera:camera-core:1.0.0-alpha08
wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Bekannte Probleme
- Bei Apps, die
PreviewView
oderCameraView
verwenden, wird möglicherweise die falsche Seitenverhältnisvorschau angezeigt. Das passiert nach der Pausierung oder Wiederaufnahme auf einigen FULL-Geräten wie Pixel 2.
Fehlerkorrekturen
- Die Dokumentation für
FocusMeteringAction
undCameraControl
wurde aktualisiert. TorchControl
fürenableTorch()
undgetTorchState()
implementiert
API-Änderungen
- IntDefs wurden ausgeblendet und IntDef-Konstanten wurden außerhalb der IntDef-Definition verschoben.
rotationDegrees
wurde von der KlasseOnImageCaptureCallback
in die KlasseImageInfo
verschoben.rotationDegrees
wurde von der KlasseAnalyzer
in die KlasseImageInfo
verschoben.
Camera-Camera2 Version 1.0.0-alpha07
4. Dezember 2019
androidx.camera:camera-camera2:1.0.0-alpha07
wird veröffentlicht. Version 1.0.0-alpha07 von „camera-camera2“ enthält diese Commits
Camera2Config
kann jetzt zum Initialisieren und Konfigurieren einer Camera2-basierten Implementierung für CameraX verwendet werden. Weitere Informationen zur Verwendung bei der Initialisierung finden Sie in den Release-Notes im Abschnitt camera-core.- Die camera2-Interoperabilitätsfunktion ist jetzt als experimentell gekennzeichnet und in ein separates Paket verschoben worden:
androidx.camera.camera2.interop.
Camera-Core-Version 1.0.0-alpha07
4. Dezember 2019
androidx.camera:camera-core:1.0.0-alpha07
wird veröffentlicht. Version 1.0.0-alpha07 von camera-core enthält diese Commits
In dieser Alphaversion gibt es einige wesentliche Änderungen, da wir uns auf die Betaversion vorbereiten. Wir empfehlen Ihnen, die Änderungen zu prüfen und gegebenenfalls Feedback in der CameraX-Google-Gruppe zu geben. Entwicklern, die CameraX in Apps verwenden, die im Play Store verfügbar sind, empfehlen wir, auf die offizielle Betaversion zu warten, bevor sie die Bibliothek in ihren Apps aktualisieren.
API-Änderungen
Wichtig: Die Initialisierung von CameraX hat sich geändert. Anwendungen sollten
CameraXConfig.Provider
implementieren und die vonandroidx.camera.camera2
bereitgestellte Standard-Camera2Config
verwenden. Ein typischer Anwendungsfall:import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
Die Klasse „CameraX“ wurde entfernt. Die zuvor über den CameraX-Klassenaufruf bereitgestellten
bindToLifecycle()
-,unbind()
-,unbindAll()
-,isBound()
- undhasCamera()
-Werte sind jetzt über dieProcessCameraProvider
verfügbar.Eine pro Prozess verfügbare Instanz von
ProcessCameraProvider
wird asynchron über die statische MethodeProcessCameraProvider.getInstance()
abgerufen. Diese Methode gibt ein abhörbares Future zurück, das nach Abschluss dieProcessCameraProvider
bereitstellt. Hier ist es inonCreate()
für eine typische Verwendung zu sehen. Sie könnengetInstance()
später im Lebenszyklus der Aktivität aufrufen, um die Initialisierungslatenz zu einem späteren Zeitpunkt zu verschieben (z. B. wenn durch eine Nutzeraktion eine Kamera-UI geöffnet wird).import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }
Der von
getInstance()
zurückgegebenenListenableFuture
kann ein Listener hinzugefügt werden. So kann der Kameraanbieter von derFuture
abgerufen werden, ohne dass er auf derFuture.get()
blockiert wird.cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
Die Kameraauswahl erfolgt jetzt über eine Kameraauswahl, nicht mehr pro Anwendungsfall.
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
CameraProvider.bindToLifecycle
erhält den Lebenszyklusinhaber, die Kameraauswahl und Anwendungsfälle, die dann an den jeweiligen Lebenszyklusinhaber gebunden und für die ausgewählte Kamera ausgeführt werden.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
Klassen für den Anwendungsfall „Config“ werden entfernt. Erstellen Sie stattdessen Anwendungsfälle direkt und legen Sie die Optionen für jeden Anwendungsfall fest. Beispiel:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
Der Anwendungsfall für die Vorschau wurde aktualisiert, um eine Oberfläche zuzulassen, die von der Anwendung erstellt und verwaltet wird, um die Best Practices für Android einzuhalten. Wir empfehlen dringend, die Ansichtsklasse
PreviewView
zu verwenden, die im Kameraansichtspaket enthalten ist.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
Weitere Informationen zum Anhängen einer von Apps verwalteten Oberfläche finden Sie in der Dokumentation. In diesen Fällen verwaltet die App den Lebenszyklus der Oberfläche.
Wichtig: Die Implementierung der
ImageAnalysis
-Analysemethode mussimage.close()
für empfangene Bilder aufrufen, wenn sie nicht mehr verwendet werden. Andernfalls werden möglicherweise keine neuen Bilder empfangen oder die Kamera stürzt ab, je nach Einstellung des Gegendrucks. Weitere Informationen finden Sie in der Referenzdokumentation.ImageAnalysis ImageReaderMode
wird jetzt in eine Backpressure-Strategieintdef
geändert.ImageProxy.getImage()
ist als experimentell gekennzeichnet. Die Verwendung sollte in Apps beispielsweise über@androidx.camera.core.ExperimentalGetImage
Die Anmerkungsvoraussetzung für
UIThread
fürAnalyzer
wurde entfernt.Die Funktion
ImageAnalysis.clearAnalyzer()
wird zum Entfernen eines Analysetools hinzugefügt.Listener mit mehreren Methoden wurden in „Callback“ umbenannt:
ImageCapture.OnImageCapturedListener
heißt jetztImageCapture.OnImageCapturedCallback
ImageCapture.OnImageSavedListener
heißt jetztImageCapture.OnImageSavedCallback
VideoCapture.OnVideoSavedListener
heißt jetztVideoCapture.OnVideoSavedCallback
Enums wurden in IntDef geändert
Es wurden Zoomsteuerelemente hinzugefügt:
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
CameraInfo.hasFlashUnit()
wird hinzugefügt, um festzustellen, ob eine Blitz-/Taschenlampenhardware vorhanden ist.CameraInfo.isFlashAvailable()
wurde entfernt. Die Taschenlampe überschreibt die Blitzfunktion. Weitere Informationen finden Sie in der Referenzdokumentation.ImageCapture.Metadata
-Felder werden durch Get-/Set-/Is-Zugriffsmethoden ersetzt.startFocusMetering
undcancelFocusMetering
geben jetztListenableFutures
zurück, was den asynchronen Vorgang des Aufrufs darstellt.MeteringPoints
dienen jetzt als Steuerelemente für Messaktionen und werden von Fabriken produziert. Apps sollten die vorhandenen statt benutzerdefinierte Fabriken verwenden.
Behobene Probleme
- Ein Problem wurde behoben, das beim Aufnehmen eines Fotos nach der Wiederaufnahme auftrat, nachdem bei einer vorherigen Pause Fotos aufgenommen wurden, die noch nicht fertig waren.
- Bekanntes Problem:
CameraControl.enableTorch()
funktioniert, aber die zurückgegebeneListenableFuture<Void>
ist immer eine unmittelbarecomplete(success)
-Zukunft, auch wenn kein Blitzgerät vorhanden ist. In zukünftigen Versionen wird das endgültige Verhalten korrigiert: Wenn kein Blitz vorhanden ist, schlägtenableTorch(true)
sofort fehl (es wird keine Anfrage anCaptureSession
gesendet) undTorchState
bleibt deaktiviert. - Bekanntes Problem: Mit
startFocusAndMetering
undcancelFocusAndMetering
wird die Fokusmessung gestartet und abgebrochen, aber es wird sofort einecompleted (success)
zurückgegeben, die nicht dem dokumentierten Verhalten entspricht. DieFocusMeteringResult
vonListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
ist ein gefälschtes Ergebnis, dasisFocusSuccessful()
und immer „false“ ist, was sich vom beabsichtigten, dokumentierten Verhalten unterscheidet. - Bekanntes Problem: Eine Messpunkt-Factory für die Verwendung mit
PreviewView
-Touch-Ereignissen wird derzeit entwickelt. Derzeit können Apps, die benutzerdefinierte verwaltete Oberflächen verbinden, die vorhandenen Messpunkt-Fabriken verwenden. Andernfalls ist fürPreviewView
keine Touch-Fokusfunktion verfügbar.
Camera-Camera2 und Camera-Core Version 1.0.0-alpha06
9. Oktober 2019
androidx.camera:camera-camera2:1.0.0-alpha06
und androidx.camera:camera-core:1.0.0-alpha06
werden freigegeben. Dies sind die Commits in camera-camera2:1.0.0-alpha06
und dies sind die Commits in camera-core:1.0.0-alpha06
.
Neue Funktionen
Änderungen bei der Einstellung des Seitenverhältnisses:
setTargetAspectRatioMode()
wurde hinzugefügt und akzeptiert ein Enum-Argument. Dadurch wird der Seitenverhältnismodus mit den OptionenRATIO_4_3
oderRATIO_16_9
anstelle eines beliebigen Seitenverhältnisses festgelegt. Dies spiegelt besser die Tatsache wider, dass von der Kamera nur bestimmte Seitenverhältnisse und nicht beliebige Verhältnisse bereitgestellt werden.- Derzeit sind nur die Seitenverhältnisse 16:9 und 4:3 verfügbar. Bei 1:1 ist diese Funktion nur auf bestimmten Geräten und dann nur in begrenzten Auflösungen verfügbar. Bei Anwendungen, für die eine 1:1-Benutzeroberfläche oder -verarbeitung entworfen wird, sollten die flexibleren Optionen 16:9 oder 4:3 verwendet werden. Das Display kann dann zugeschnitten oder eine Teilregion verarbeitet werden.
- Diese Seitenverhältnisse sind so ausgerichtet, dass der maximale Sensorbereich genutzt wird.
getTargetAspectRatio()
wurde den APIs zur Anwendungsfallkonfiguration hinzugefügt und gibt das Seitenverhältnis zurück, auf das die Anwendungsfallausgabe ausgerichtet ist.- Die Methode
setTargetAspectRatio(Rational aspectRatio)
wurde für ImageCapture insetTargetAspectRatioCustom(Rational aspectRatio)
geändert. Wenn diese Option festgelegt ist, wird die Ausgabe von ImageCapture entsprechend zugeschnitten.
Executor APIs
- Die folgenden Funktionen akzeptieren einen Parameter für den Executor, mit dem die App steuern kann, auf welchem Executor die Funktion ausgeführt wird.
Preview.setOnPreviewOutputUpdateListener()
API. Wenn der Executor für diese Funktion nicht vorhanden ist, wird sie im Hauptthread ausgeführt.Preview.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
CameraInfo mit den APIs „Ist Blitz verfügbar?“ und „Sensordrehung“ hinzugefügt
Es wurden die Methoden
CameraInfo
undgetCameraInfo
hinzugefügt, mit denen Apps prüfen können, ob ein Objektiv mit Kamerainfos verfügbar ist und ob an dieser Kamera ein Blitz verfügbar ist. Beispiel:try { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }
CameraInfo.getSensorRotationDegrees()
wurde hinzugefügt. Sie gibt die Ausrichtung des Kamerasensors relativ zur natürlichen Ausrichtung des Geräts oder, für den praktischen Gebrauch, relativ zu einer Ausrichtung an, die durch eine Oberflächendrehung beschrieben wird (die eine Ausrichtung relativ zur natürlichen Ausrichtung beschreibt).
API-Änderungen und Fehlerkorrekturen
- Seitenverhältnisse: Für jeden Anwendungsfall sollten Anwendungen nur eine von
setTargetResolution()
odersetTargetAspectRatio()
aufrufen. Wenn Sie beide für denselben Builder aufrufen, wird ein Fehler zurückgegeben.- Im Allgemeinen wird empfohlen,
setTargetAspectRatio()
basierend auf dem UI-Design der Anwendung zu verwenden. Die Auflösung hängt vom Anwendungsfall ab. Die Vorschau hat beispielsweise eine ähnliche Auflösung wie der Bildschirm, während die Bildaufnahme Standbilder in hoher Auflösung liefert. Weitere Informationen finden Sie in der Tabelle mit automatischen Auflösungen. - Verwenden Sie
setTargetResolution()
für speziellere Fälle, z. B. wenn eine Mindestauflösung (zur Vermeidung von Berechnungen) oder eine Maximalauflösung (für Verarbeitungsdetails) erforderlich ist.
- Im Allgemeinen wird empfohlen,
- Executor API: Der
setCallbackHandler()
-Aufruf wurde aus den APIs zur Anwendungsfallkonfiguration entfernt. Stattdessen können Anwendungen den Executor als Parameter in verschiedenen anderen APIs festlegen, die einen Rückruf festlegen. - Null-Anmerkungen für verschiedene Funktionen wurden aktualisiert.
- Ein Problem wurde behoben, durch das beim Öffnen der Kamera
java.lang.IllegalStateException at Camera$StateCallback.onError
ausgegeben wurde. - Behobenes Problem: Es wurden zu kleine Auflösungen (unter 640 × 480) ausgewählt, wenn die App größere oder Standardauflösungen anforderte, was zu einem blockigen oder verschwommenen Vorschaubild führte. Anwendungen, die speziell kleinere Auflösungen benötigen, können diese explizit anfordern.
- Ein Problem wurde behoben, durch das nach dem Zurückkehren von einem Intent, durch den eine andere Kameraanwendung gestartet wurde, ein schwarzer Bildschirm angezeigt wurde (die Kamera konnte nicht gestartet werden).
- Ein Fehler wurde behoben, der beim wiederholten Starten oder Beenden von Apps den folgenden Fehler verursachte:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- Der folgende Fehler beim Deaktivieren von „ImageAnalysis“ wurde behoben:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- Zusätzliche Tests für den Ablauf der Kameratrennung hinzugefügt.
- Verbesserte Robustheit des Testsystems bei aufeinanderfolgenden Kameratests.
Camera-Camera2 und Camera-Core Version 1.0.0-alpha05
5. September 2019
androidx.camera:camera-camera2:1.0.0-alpha05
und androidx.camera:camera-core:1.0.0-alpha05
werden freigegeben. Das sind die Commits in camera-camera2:1.0.0-alpha05 und die Commits in camera-core:1.0.0-alpha05.
API-Änderung: Anwendungsfallfehlervariablen wurden umbenannt:
ImageCapture.UseCaseError
wird inImageCapture.ImageCaptureError
umbenanntVideoCapture.UseCaseError
wird inVideoCapture.VideoCaptureError
umbenannt.
CameraControl
API mit APIs für das Fokussieren durch Tippen hinzugefügtAPI hinzugefügt, um eine
CameraControl
von CameraX für eine Kamera abzurufen, die anhand der Objektivposition ausgewählt wird:CameraX.getCameraControl(LensFacing lensFacing)
MeteringPointFactory
,MeteringPoint
,MeteringMode
undFocusMeteringAction
wurden hinzugefügt, um „Auf-das-Display-tippen, um den Fokus zu setzen“ auszuführen:MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height); MeteringPoint point = factory.createPoint(x, y); FocusMeteringAction action = FocusMeteringAction.Builder.from(point, MeteringMode.AF_ONLY) .addPoint(point2, MeteringMode.AE_ONLY) // could have many .setAutoFocusCallback(new OnAutoFocusListener(){ public void onFocusCompleted(boolean isSuccess) { } }) // auto calling cancelFocusAndMetering in 5 sec. .setAutoCancelDuration(5, TimeUnit.Second) .build();
API für
CameraControl
zum Starten und Abbrechen der Fokusmessung hinzugefügt:getCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
Es wurden APIs für Messpunkt-Fabriken hinzugefügt, die bei der Umwandlung von Tippkoordinaten in Sensorkoordinaten basierend auf Ansichtsklassen helfen:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
Erzwingen Sie den Aufruf der folgenden Methoden im Haupt-UI-Thread und werfen Sie eine
IllegalStateException
, wenn dies nicht der Fall ist. In zukünftigen Versionen ist die Verwendung in anderen Threads möglich und die Serialization wird sichergestellt.CameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
Für verschiedene Konfigurationseinstellungen werden jetzt Nullparameter akzeptiert und entsprechende Getter können Null zurückgeben.
Ein Problem beim Testen auf Emulatoren, die keine AF-/AE-/AWB-Einstellungen unterstützen, wurde behoben.
Ein Absturzfehler beim Drehen während der Bildanalyse wurde behoben.
Ein Fehler wurde behoben, durch den die Vorschau beim Starten schwarz angezeigt wurde (keine Kameradaten), nachdem das Gerät gedreht oder zwischen der Front- und Rückkamera gewechselt wurde.
Tests für mehrere gleichzeitige Anwendungsfälle der Bildanalyse wurden entfernt. Zur Gewährleistung der Kompatibilität sollten Anwendungen nur einen einzigen Anwendungsfall für die Bildanalyse anhängen.
Erste Robolectric-Tests für gefälschte Kameras in der Kameratestsuite hinzugefügt (WIP).
Der Test für Camera2Inititalizer wurde entfernt, da seine Abdeckung unklar/irreführend war.
Camera-Camera2 und Camera-Core Version 1.0.0-alpha04
7. August 2019
androidx.camera:camera-camera2:1.0.0-alpha04
und androidx.camera:camera-core:1.0.0-alpha04
werden freigegeben. Version 1.0.0-alpha04 enthält diese Commits.
Neue Funktionen
Änderungen an der Auswahl von Seitenverhältnis und Auflösung
Das Ziel von CameraX ist es, eine Kamerasitzung erfolgreich zu initialisieren. Das bedeutet, dass CameraX Kompromisse bei Auflösung und Seitenverhältnis eingeht, um als Erstes eine Aufnahmesitzung zu starten. Genaue Anfragen werden daher möglicherweise nicht berücksichtigt. Mögliche Ursachen:
- Geräte, die die angeforderte Auflösung nicht unterstützen
- Kompatibilitätsprobleme, z. B. auf LEGACY-Geräten, bei denen bestimmte Auflösungen verwendet werden müssen, damit die Funktion ordnungsgemäß funktioniert
- Auf einigen Geräten sind bestimmte Formate nur mit bestimmten Seitenverhältnissen verfügbar.
- Eine Präferenz für „nearest mod16“ für die JPEG- oder Videocodierung. Siehe
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
Auch wenn CameraX die Sitzung erstellt und verwaltet, sollten Sie die zurückgegebenen Bildgrößen in der Anwendungsfallausgabe in Ihrem Code immer prüfen und entsprechend anpassen.
Es wurden einige Änderungen an der Festlegung von Auflösungen und Seitenverhältnissen vorgenommen, um die API übersichtlicher zu gestalten:
- Für den Anwendungsfall „Vorschau“ wird jetzt standardmäßig das Seitenverhältnis 4:3 verwendet, wenn kein anderes festgelegt ist.
- Wenn CameraX intern Änderungen an den angeforderten Auflösungen und Seitenverhältnissen basierend auf den Gerätefunktionen berücksichtigt, wird zuerst versucht, dasselbe Seitenverhältnis beizubehalten (wie durch einen der Aufrufe
setTargetAspectRatio
odersetTargetResolution
bestimmt). - Eine „Nearest mod16“-Version der Auflösung wird als dasselbe Seitenverhältnis betrachtet.
Nicht blockierender Modus für ImageAnalysis
- Das Verhalten von
ImageReaderMode.ACQUIRE_LATEST_IMAGE
ist jetzt nicht mehr blockierend. Er liest das neueste Bild in der Warteschlange, verwirft aber kontinuierlich nicht verwendete Bilder, um Blockierungen in der Kamerapipeline zu vermeiden. - Der Analyser kann ein einzelnes Bild unbegrenzt speichern, ohne die Pipeline zu verlangsamen.
- Wenn die Anwendung einen Executor bereitstellt, der dann blockiert, wird der Anwendungsfall „ImageAnalysis“ blockiert.
- Der standardmäßige Executor verhält sich intern als nicht blockierender Executor.
Fehlerkorrekturen
- Probleme mit Zeitüberschreitungen beim Warten auf die 3A-Konvergenz beim Aufnehmen von Bildern auf Geräten ohne Autofokus, automatische Belichtung und automatisches Weißabgleich wurden behoben.
- Ein Problem beim schnellen Aufnehmen von Fotos mit ImageCapture wurde behoben. Fehlerkorrektur:
java.lang.IllegalStateException: maxImages (2) has already been acquired
- Problem behoben, bei dem
setLensFacing
für einen Anwendungsfall nicht aufgerufen wurde, was zujava.lang.IllegalArgumentException: Unable to get camera ID for use case
führte. - Problem behoben, bei dem auf LEGACY-Geräten ein bestimmtes Seitenverhältnis als maximale JPEG-Auflösung erforderlich war
- Problem behoben, wenn die App im Hintergrund ausgeführt wurde, während die Kamera geöffnet wurde
- Problem mit der API < 25 behoben, Fehler
checkAndUpdateEglState: invalid current EGLDisplay
entfernt - Ein Problem wurde behoben, durch das die Verknüpfung der Vorschau nach dem Aktivieren und Starten von Erweiterungen aufgehoben wurde.
- Build-Artefakte für die Kameraansicht und Kameraerweiterungen werden jetzt als Alphaversionen veröffentlicht
Camera-Camera2 und Camera-Core Version 1.0.0-alpha03
2. Juli 2019
androidx.camera:camera-core:1.0.0-alpha03
und androidx.camera:camera-camera2:1.0.0-alpha03
werden freigegeben. Version 1.0.0-alpha03 enthält diese Commits.
API-Änderungen
- Erläuterung für „target“ in setTarget-Konfigurationsaufrufen in Javadoc hinzugefügt
Camera-Core
- Behebung des Absturzes einer nicht konfigurierten Eingabe-/Ausgabeoberfläche beim schnellen Öffnen/Schließen oder Binden/Aufheben der Bindung
- Zu neuen Futures-Implementierungen wechseln
- Fehlerkorrekturen für robustere Tests
- Im Integrationstest wird jetzt die Aufnahmezeit für Fotos angezeigt
- Interne Compat-Klasse für Executors entwickelt
- Bei der App für den Zeittest wird beim Aufnehmen von Bildern gewartet, bis der vorherige Vorgang abgeschlossen ist. Außerdem wurde die Stabilität verbessert.
Erweiterungen
- Versionsprüfungen hinzugefügt
- Zusätzliche Testabdeckung – Callbacks für Erweiterungsereignisse
- Verbesserungen bei intern übereinstimmenden Bildern und Metadaten
- Fehlerkorrekturen beim Moduswechsel in der Test-App
Camera-Camera2 und Camera-Core Version 1.0.0-alpha02
5. Juni 2019
androidx.camera:camera-core:1.0.0-alpha02
und androidx.camera:camera-camera2:1.0.0-alpha02
werden freigegeben. Version 1.0.0-alpha02 enthält diese Commits.
Fehlerkorrekturen
- Problem mit der Division durch Null bei Verwendung des Emulators behoben
- Der Fehler „NullPointerException“/„Surface Abandoned“ wurde behoben, der auf einigen Geräten auftrat, wenn schnell Fotos aufgenommen wurden, während Anwendungsfälle schnell getrennt und wieder verbunden wurden.
- Internes Problem behoben, damit Aktualisierungen von Erfassungsanfragen alle Oberflächen einheitlich betreffen
- Stabilitätsverbesserungen beim Neustart von Anwendungsfällen in neuen App-Instanzen
- Interne Architekturänderungen zur Vorbereitung auf die Unterstützung von Executors in der API
- Weitere Javadoc-Erläuterungen zur CameraX-Klasse und zur Lebenszyklusverwaltung
- Instrumentierte Tests für die Antelope-Leistungstest-App hinzugefügt
- Entfernen der Notwendigkeit für „-keepattributes Signature“ in der Proguard-Konfiguration der App
Camera-Camera2 und Camera-Core 1.0.0-alpha01
7. Mai 2019
androidx.camera:camera-core:1.0.0-alpha01
und androidx.camera:camera-camera2:1.0.0-alpha01
werden veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Kameralebenszyklus-Version 1.0.0-beta11
14. Oktober 2020
androidx.camera:camera-lifecycle:1.0.0-beta11
wird veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.
Fehlerkorrekturen
<UseCase>.getTargetRotation()
gibtSurface.ROTATION_0
zurück, wenn es aufgerufen wird, bevor es an eine Kamerainstanz angehängt wird, es sei denn, für den Builder oder UseCase wurde eine targetRotation festgelegt. (I80fcd)
Kamera-Lebenszyklus-Version 1.0.0-beta10
23. September 2020
androidx.camera:camera-lifecycle:1.0.0-beta10
wird veröffentlicht. Version 1.0.0-beta10 enthält diese Commits.
Fehlerkorrekturen
- Unterstützung für Camera-Core 1.0.0-beta10
Kameralebenszyklus-Version 1.0.0-beta09
16. September 2020
androidx.camera:camera-lifecycle:1.0.0-beta09
wird veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.
Kamera-Lebenszyklus-Version 1.0.0-beta08
19. August 2020
androidx.camera:camera-lifecycle:1.0.0-beta08
wird veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.
Fehlerkorrekturen
- Die Initialisierung sollte nicht mehr abstürzen, wenn ein Kontext verwendet wird, der kein Anwendungsobjekt von
Context.getApplicationContext()
zurückgibt. (I3d3c9, b/160817073)
Kameralebenszyklus-Version 1.0.0-beta07
22. Juli 2020
androidx.camera:camera-lifecycle:1.0.0-beta07
wird veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.
Kamera-Lebenszyklus-Version 1.0.0-beta06
24. Juni 2020
androidx.camera:camera-lifecycle:1.0.0-beta06
wird veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.
API-Änderungen
- CameraX kann jetzt mit ProcessCameraProvider#configureInstance() konfiguriert werden, bevor ProcessCameraProvider#getInstance() aufgerufen wird. Dies ermöglicht die Anpassung der CameraXConfig, ohne dass CameraXConfig.Provider in der Application-Klasse der App implementiert werden muss. (Ia1a8d)
Kamera-Lebenszyklus-Version 1.0.0-beta05
10. Juni 2020
androidx.camera:camera-lifecycle:1.0.0-beta05
wird veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.
Fehlerkorrekturen
- Behebung des Absturzes beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im Modus „Bitte nicht stören“ befindet. Ein
InitializationException
, das einCameraUnavailableException
enthält, wird auf dieListenableFuture
des Initialisierungsergebnisses gesetzt, anstatt dass die Anwendung abstürzt. (I9909a, b/149413835)
Kameralebenszyklus – Version 1.0.0-beta04
27. Mai 2020
androidx.camera:camera-lifecycle:1.0.0-beta04
wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
Kameralebenszyklus – Version 1.0.0-beta03
15. April 2020
androidx.camera:camera-lifecycle:1.0.0-beta03
wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
Fehlerkorrekturen
- Eine Regression aus Beta 03 wurde behoben, bei der beim Aufruf von
bindToLifecycle()
mit nullUseCase
s eine Ausnahme ausgelöst wurde. Dadurch wurde verhindert, dass eineCamera
ohne Bindung einerUseCase
abgerufen werden konnte. - Fehlerkorrekturen zur Unterstützung der Veröffentlichung von
camera-core
Kameralebenszyklus – Version 1.0.0-beta01
26. Februar 2020
androidx.camera:camera-lifecycle:1.0.0-beta01
wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- In der Dokumentation wurde korrigiert, dass beim Abrufen einer
ProcessCameraProvider
während der Initialisierung eine Standardkonfiguration verwendet wird und dass die Erweiterung vonApplication
optional ist. (I5e395)
Kameralebenszyklus-Version 1.0.0-beta02
1. April 2020
androidx.camera:camera-lifecycle:1.0.0-beta02
wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Aktualisiert, um die Fehlerkorrekturen in den Artefakten
camera-camera2:1.0.0-beta02
undcamera-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 veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
API-Änderungen
- Die Annotation
@MainThread
wurde den Methoden „BindToLifecycle“, „unbind“ und „unbindAll“ hinzugefügt. (I990d2)
Kamera-Lebenszyklusversion 1.0.0-alpha03
22. Januar 2020
androidx.camera:camera-lifecycle:1.0.0-alpha03
wird veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
Updates
- Verschiedene Fehlerkorrekturen und Updates zur Unterstützung von Änderungen an Camera Core und Camera2.
Kamera-Lebenszyklus – Version 1.0.0-alpha02
18. Dezember 2019
androidx.camera:camera-lifecycle:1.0.0-alpha02
wird veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Änderungen an Abhängigkeiten
- Aktualisiert auf
androidx.camera:camera-core:1.0.0-alpha08
.
Kamera-Lebenszyklusversion 1.0.0-alpha01
4. Dezember 2019
androidx.camera:camera-lifecycle:1.0.0-alpha01
wird veröffentlicht. Version 1.0.0-alpha01 von camera-lifecycle enthält diese Commits
API-Hinweise
- Das Kameralebenszyklus-Artefakt wird hinzugefügt und bietet die
LifeCycleCameraProvider
-Benutzeroberfläche und eine Implementierung namensProcessCameraProvider
, die viele der Funktionen der vorherigen CameraX-Klasse im Kern bietet und über einegetInstance()
-Methode abgerufen wird. - Apps müssen die Kamera-Lebenszyklusbibliothek enthalten, um CameraX verwenden zu können.
- Informationen zur Initialisierung von CameraX mit einer
ProcessCameraProvider
finden Sie in den Hinweisen im Abschnitt camera-core.
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 freigegeben. Version 1.0.0-alpha32 enthält diese Commits.
API-Änderungen
- Unnötige
@RequiresApi(21)
-Anmerkungen aus den inneren Klassen/Schnittstellen entfernt. (I8e286, b/204917951) - API-Dateien für das Kamera-Erweiterungs-Artefakt aktualisieren (If683a, b/161377155)
Fehlerkorrekturen
- Verhindern, dass die App Erweiterungsmodi beim Binden von
VideoCapture
aktiviert CameraX-Erweiterungen unterstützen nurImageCapture
undPreview
.VideoCapture
wird noch nicht unterstützt. Wenn die AppVideoCapture
bindet und einen Erweiterungsmodus aktiviert, wird eineIllegalArgumentException
ausgelöst. (I0d87b) - Bei
CameraSelector#filter
wird keineIllegalArgumentException
mehr geworfen, wenn die Ergebnismenge leer ist. (I27804) - Die
ExtensionsManager#getInstance
API wurde ingetInstanceAsync
umbenannt, da sieListenableFuture
zurückgibt. Das Suffix „Async“ am Funktionsnamen kann deutlich darauf hinweisen, dass es sich um eine asynchrone Funktion handelt. (I279d2) - Der Auflösungsparameter wird aus der
ExtensionsManager#getEstimatedCaptureLatencyRange
API entfernt, da Nutzer nicht wissen können, welche Größen für denExtensionsManager#getEstimatedCaptureLatencyRange
-Anwendungsfall unterstützt werden, und nicht unterscheiden können, ob sich die zurückgegebenen Latenzinformationen auf die maximale Aufnahmeausgabegröße oder den Eingabeauflösungsparameter beziehen.ImageCapture
(I74bb2) - Verschieben Sie den Parameter
CameraProvider
derExtensionsManager
-Funktionen in diegetInstance()
API. So müssen Nutzer den ParameterCameraProvider
nicht jedes Mal eingeben, wenn sie dieExtensionsManager
-Funktionen aufrufen. (Ic7e48)
Version 1.0.0-alpha31
17. November 2021
androidx.camera:camera-extensions:1.0.0-alpha31
und androidx.camera:camera-view:1.0.0-alpha31
werden freigegeben. Version 1.0.0-alpha31 enthält diese Commits.
API-Änderungen
- Der öffentlichen API wurde „CameraSelector#filter“ hinzugefügt, um eine Liste von Kamerainformationen anhand einer Kameraauswahl zu filtern. (I105d0)
Fehlerkorrekturen
- Ein Absturz beim schnellen Wechseln zwischen dem Erweiterungsmodus und dem Modus „Nur Video“ auf bestimmten Geräten wurde behoben. (Iebbef)
Version 1.0.0-alpha30
13. Oktober 2021
androidx.camera:camera-extensions:1.0.0-alpha30
und androidx.camera:camera-view:1.0.0-alpha30
werden freigegeben. Version 1.0.0-alpha30 enthält diese Commits.
API-Änderungen
- Alle CameraX-Klassen wurden die Annotation @RequiresApi(21) hinzugefügt und die minSdkVersion aus AndroidManifest.xml entfernt. So kann camera-core ganz einfach in Anwendungen eingebunden werden, deren minSdkVersion unter 21 liegt, die aber bedingt Codepfade verwenden möchten, die auf API 21 und höher basieren. Bei Anwendungen mit einer minSdkVersion von 21 oder höher sind keine Maßnahmen erforderlich. (Ie7f2e, b/200599470)
Fehlerkorrekturen
- Das Problem mit dem AbstractMethodError, das bei aktiviertem ProGuard auftritt, wurde behoben. (Iae468, b/201177844)
Version 1.0.0-alpha29
29. September 2021
androidx.camera:camera-extensions:1.0.0-alpha29
und androidx.camera:camera-view:1.0.0-alpha29
werden freigegeben. Version 1.0.0-alpha29 enthält diese Commits.
API-Änderungen
- Die Anmerkung „ExperimentalUseCaseGroup“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I01ef5)
RotationProvider#removeAllListeners()
entfernen Verwenden Sie stattdessenRotationProvider#removeListener(...)
. (Id9d4a)- Die Klasse „RotationReceiver“ wurde aktualisiert: „set/clear Listener“ wurde in „add/remove/removeAll“ geändert, die Variante „setListener“, bei der standardmäßig der Hauptthread verwendet wird, wurde entfernt und Methoden wurden annotiert. (Ib1669)
Fehlerkorrekturen
- „ExtensionMode#BEAUTY“ in „FACE_RETOUCH“ umbenannt, um die Funktion des Erweiterungsmodus korrekt zu beschreiben. (I61f54, b/198515274)
- Das Problem wurde behoben, dass die Kamera unerwartet geschlossen wird, wenn in einer Aktivität mehrere CameraController und PreviewView verwendet werden. (Ibfd18, b/197539358)
Version 1.0.0-alpha28
18. August 2021
androidx.camera:camera-extensions:1.0.0-alpha28
und androidx.camera:camera-view:1.0.0-alpha28
werden freigegeben. Version 1.0.0-alpha28 enthält diese Commits.
API-Änderungen
- Die Anmerkung „ExperimentalUseCaseGroupLifecycle“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I17b85)
- RotationListener wurde neu strukturiert und in RotationProvider umbenannt. Die Funktion wird weiterhin mit einer leicht anderen API angeboten. (Idffc5)
- Benennen Sie TAP_TO_FOCUS_UNSUCCESSFUL in TAP_TO_FOCUS_NOT_FOCUSED und TAP_TO_FOCUS_SUCCESSFUL in TAP_TO_FOCUS_FOCUSED um. OutputSize als endgültig festgelegt (I099fa)
Fehlerkorrekturen
- Die veralteten
<EffectName><UseCase>Extender
-Klassen, ExtensionsErrorListener und die zugehörigen ExtensionsManager APIs wurden entfernt. (I3b8c3)
Version 1.0.0-alpha27
21. Juli 2021
androidx.camera:camera-extensions:1.0.0-alpha27
und androidx.camera:camera-view:1.0.0-alpha27
werden freigegeben. Version 1.0.0-alpha27 enthält diese Commits.
API-Änderungen
- Die Viewport API ist nicht mehr experimentell. Entfernen Sie die experimentelle Anmerkung der API. (I717ea)
CoordinateTransform#getTransform
inCoordinateTransform#transform
umbenannt und JavaDoc aktualisiert (I864ae)
Fehlerkorrekturen
- Das Problem beim Strecken des
PreviewView PERFORMANCE
-Modus bei Verwendung mit der Compose-Benutzeroberfläche wurde behoben. (Ie1137, b/183864890)
Version 1.0.0-alpha26
30. Juni 2021
androidx.camera:camera-extensions:1.0.0-alpha26
und androidx.camera:camera-view:1.0.0-alpha26
werden freigegeben. Version 1.0.0-alpha26 enthält diese Commits.
API-Änderungen
- Fügen Sie eine neue Methode
CameraController#getTapToFocusState()
hinzu, die das aktuelle Ergebnis des Fokussierens durch Tippen zurückgibt. (Iaccb0) - Dem CameraController wurden weitere Kamerafunktionen hinzugefügt: Getter/Setter für Zielseitenverhältnis, Zielauflösung, Aufnahmemodus, CameraControl und benutzerdefinierte Executors. (Iea8f2)
- Fügen Sie die Klasse „RotationReceiver“ hinzu, die Änderungen an der Oberflächendrehung empfängt. So lässt sich die Zielausrichtung festlegen, wenn sich das Gerät im festen Hoch-/Querformat befindet. (Ib278f)
- Neue öffentliche APIs vom Typ „getEstimatedCaptureLatencyRange“ in der Klasse „ExtensionsManager“ wurden freigegeben. (I6a8ec)
- Der ExtensionsErrorListener wurde eingestellt. Derzeit wird diese Schnittstelle nur verwendet, um zu prüfen, ob eine Vorschau oder Bildaufnahme fehlt, wenn Erweiterungsmodi aktiviert werden. CameraX fügt automatisch eine zusätzliche Vorschau oder Bildaufnahme hinzu, damit die Erweiterungsfunktionen ordnungsgemäß funktionieren. Danach werden über diese Benutzeroberfläche keine Fehler mehr gemeldet. (I47d9e)
- Es wurden die neuen öffentlichen APIs „ExtensionsManager.getInstance“, „isExtensionAvailable“ und „getExtensionEnabledCameraSelector“ eingeführt. Außerdem wurden alte
<EffectName><UseCase>Extender
-Klassen und zugehörige APIs eingestellt. (I329e6)
Version 1.0.0-alpha25
2. Juni 2021
androidx.camera:camera-extensions:1.0.0-alpha25
und androidx.camera:camera-view:1.0.0-alpha25
werden freigegeben. Version 1.0.0-alpha25 enthält diese Commits.
API-Änderungen
- Die ExperimentalCameraFilter APIs sind jetzt nicht mehr experimentell und werden zu offiziellen APIs. Sie können ohne annotierte Einwilligung verwendet werden. (I4bc94)
- Fügen Sie ein Dienstprogramm hinzu, das Koordinaten zwischen Anwendungsfällen umwandelt. Anwendungsbeispiel: Die im Anwendungsfall „ImageAnalysis“ erkannten Koordinaten transformieren und das erkannte Objekt in der Vorschau hervorheben. (I63ab1, b/137515129)
CameraView
wurde entfernt.CameraView
wurde durchCameraController
ersetzt. Weitere Informationen zur Migration finden Sie in der Migrationsanleitung: (Id5005)
Fehlerkorrekturen
ExperimentalUseCaseGroupLifecycle
wurde durchExperimentalUseCaseGroup
ersetzt. (I3b2ef, b/159033688)
Version 1.0.0-alpha24
21. April 2021
androidx.camera:camera-extensions:1.0.0-alpha24
und androidx.camera:camera-view:1.0.0-alpha24
werden freigegeben. Version 1.0.0-alpha24 enthält diese Commits.
Fehlerkorrekturen
- Die Anmerkung
@Experimental
wurde bei experimentellen APIs durch@RequiresOptIn
ersetzt. Verwenden Sie für den Aufruf experimenteller APIsandroidx.annotation.OptIn
anstelle der eingestelltenandroidx.annotation.experimental.UseExperimental
. (Iff226) - Problem mit der gestreckten Vorschauansicht auf dem Samsung J5 Prime behoben (Ib10b6)
Kameraerweiterungen und -ansicht – Version 1.0.0-alpha23
24. März 2021
androidx.camera:camera-extensions:1.0.0-alpha23
und androidx.camera:camera-view:1.0.0-alpha23
werden freigegeben. Version 1.0.0-alpha23 enthält diese Commits.
API-Änderungen
- CameraView wird eingestellt. Verwenden Sie stattdessen
LifecycleCameraController
. Weitere Informationen finden Sie in der Migrationsanleitung (Idac2c). - FloatRange-Anmerkung zu setLinearZoom() hinzugefügt (I69971)
Fehlerkorrekturen
- Angepinnte Abhängigkeiten der Kameraansicht auf 1.0.0-Artefakte umgestellt. Die Abhängigkeitsauflösung von Gradle führt nicht mehr dazu, dass camera-core, camera-camera2 und camera-lifecycle automatisch auf die neuesten 1.1.0-Artefakte aktualisiert werden, wenn „camera-view“ verwendet wird. „camera-view“ ist jedoch weiterhin mit diesen Artefakten kompatibel, wenn sie explizit auf die Verwendung von 1.1.0 festgelegt sind. (Ic8fa1, b/181599852)
- Die gestreckte Vorschau auf dem Samsung A3 wurde in PreviewView behoben. (Iacb30, b/180121821)
- Das Problem wurde behoben, dass die Kameraauswahl nicht festgelegt werden konnte, bevor die Kamera initialisiert wurde. (Ic8bd0)
Kameraerweiterungen und -ansicht – Version 1.0.0-alpha22
24. Februar 2021
androidx.camera:camera-extensions:1.0.0-alpha22
und androidx.camera:camera-view:1.0.0-alpha22
werden freigegeben. Version 1.0.0-alpha22 enthält diese Commits.
API-Änderungen
- Fügen Sie CameraController einen Getter für CameraInfo hinzu. (Ib8138, b/178251727)
Fehlerkorrekturen
- Fehlerbehandlung für ExtensionsErrorListener wurde korrigiert, um Fehler zu melden, wenn nur „Preview“ oder „ImageCapture“ gebunden ist. (I5ae39)
Kameraerweiterungen und -ansicht – Version 1.0.0-alpha21
27. Januar 2021
androidx.camera:camera-extensions:1.0.0-alpha21
und androidx.camera:camera-view:1.0.0-alpha21
werden freigegeben. Version 1.0.0-alpha21 enthält diese Commits.
Unterstützung für andere Artefakte der Kamerabibliothek.
Kameraerweiterungen und -ansicht – Version 1.0.0-alpha20
16. Dezember 2020
androidx.camera:camera-extensions:1.0.0-alpha20
und androidx.camera:camera-view:1.0.0-alpha20
werden freigegeben. Version 1.0.0-alpha20 enthält diese Commits.
Unterstützung für andere Artefakte der Kamerabibliothek.
Kameraerweiterungen und Kameraansicht – Version 1.0.0-alpha19
11. November 2020
androidx.camera:camera-extensions:1.0.0-alpha19
und androidx.camera:camera-view:1.0.0-alpha19
werden freigegeben. Version 1.0.0-alpha19 enthält diese Commits.
Fehlerkorrekturen
- Die Anmerkung
@ExperimentalVideo
wurde in der Kameraansicht eingeführt. Diese Anmerkung kennzeichnet APIs, die experimentelle Videofunktionen bereitstellen, die sich ändern können, sobald die Funktionen vollständig entwickelt sind. Bei jeder Methode, die diese APIs verwendet, muss die Anmerkung@UseExperimental
mitExperimentalVideo
alsmarkerClass
verwendet werden. (I6d729)
Camera-Extensions Version 1.0.0-alpha18
14. Oktober 2020
androidx.camera:camera-extensions:1.0.0-alpha18
wird veröffentlicht. Version 1.0.0-alpha18 enthält diese Commits.
Fehlerkorrekturen
- Die Latenz der CameraX-Initialisierung und von bindToLifecycle wurde verbessert (I61dc5)
<UseCase>.getTargetRotation()
gibtSurface.ROTATION_0
zurück, wenn es aufgerufen wird, bevor es an eine Kamerainstanz angehängt wird, es sei denn, für den Builder oder UseCase wurde eine targetRotation festgelegt. (I80fcd)
Kameraansicht – Version 1.0.0-alpha18
14. Oktober 2020
androidx.camera:camera-view:1.0.0-alpha18
wird veröffentlicht. Version 1.0.0-alpha18 enthält diese Commits.
Unterstützung für andere Artefakte der Kamerabibliothek.
Camera-Extensions Version 1.0.0-alpha17
23. September 2020
androidx.camera:camera-extensions:1.0.0-alpha17
wird veröffentlicht. Version 1.0.0-alpha17 enthält diese Commits.
Fehlerkorrekturen
- Release zur Unterstützung von Camera-Core 1.0.0-beta10
Kameraansicht-Version 1.0.0-alpha17
23. September 2020
androidx.camera:camera-view:1.0.0-alpha17
wird veröffentlicht. Version 1.0.0-alpha17 enthält diese Commits.
Fehlerkorrekturen
- Unterstützung für Camera-Core 1.0.0-beta10
Camera-Extensions Version 1.0.0-alpha16
16. September 2020
androidx.camera:camera-extensions:1.0.0-alpha16
wird veröffentlicht. Version 1.0.0-alpha16 enthält diese Commits.
Fehlerkorrekturen
- In
ExtensionsManager
wurde eine Methode hinzugefügt, um einExtensions
-Objekt abzurufen, mit dem Erweiterungen für Kamerainstanzen aktiviert und abgefragt werden (I4fb7e).
Kameraansicht-Version 1.0.0-alpha16
16. September 2020
androidx.camera:camera-view:1.0.0-alpha16
wird veröffentlicht. Version 1.0.0-alpha16 enthält diese Commits.
API-Änderungen
PreviewView#setDeviceRotationForRemoteDisplayMode()
undPreviewView#getDeviceRotationForRemoteDisplayMode()
wurden entfernt. Mit diesen beiden Methoden können Sie die Vorschaudrehung anpassen, wenn die gewünschte Drehung nicht der Displaydrehung entspricht, z.B. bei einem Remote-Display. Wenn Sie die Drehung der Vorschau, die nicht auf dem Display angezeigt wird, jetzt festlegen möchten, legen Sie die gewünschte Drehung mitPreview#setTargetRotation()
und dem neu hinzugefügtenPreviewView#getViewPort(targetRotation)
fest. (Ib62cc)createSurfaceProvider()
wurde ingetSurfaceProvider()
umbenannt. Die Methode gibt immer dieselbe Instanz von Preview.SurfaceProvider zurück. (Iff83c)
Fehlerkorrekturen
- PreviewView wird gezwungen, TextureView zu verwenden, wenn der Erweiterungseffekt aktiviert ist und die Implementierung der Anbieterbibliothek einen speziellen Prozess auf der Ausgabefläche ausführen muss. (I0c3cc)
- Beliebige Ausrichtung des Ziels für die Vorschau zulassen. Die Transformationsinformationen werden berechnet und dem Nutzer in Echtzeit über einen neuen
TranformationInfoListener
-Callback zurückgegeben. (I21470)
Bekannte Probleme
- In der Vorschau wird
OnClickListener#onClick()
nicht aufgerufen, wenn der Endnutzer auf „Vorschau“ klickt. Das Touch-Ereignis wird fälschlicherweise von PreviewView#onTouchEvent() erfasst. Das Problem wird in der nächsten Version behoben. - Der von
PreviewView#getMeteringPointFactory()
abgerufene MeteringPoint kann falsch sein, wenn „ViewPort“ mit „PreviewView“ verwendet wird.
Camera-Extensions Version 1.0.0-alpha15
19. August 2020
androidx.camera:camera-extensions:1.0.0-alpha15
wird veröffentlicht. Version 1.0.0-alpha15 enthält diese Commits.
Fehlerkorrekturen
- Die Methode
ExtensionsManager.init()
nimmt jetzt einen Kontext als Parameter an, anstatt 0 Argumente zu haben. (Ife754) Die Initialisierung sollte nicht mehr abstürzen, wenn ein Kontext verwendet wird, der kein Anwendungsobjekt von
Context.getApplicationContext()
zurückgibt. (I3d3c9, b/160817073)Kameraansicht-Version 1.0.0-alpha15
19. August 2020
androidx.camera:camera-view:1.0.0-alpha15
wird veröffentlicht. Version 1.0.0-alpha15 enthält diese Commits.
Fehlerkorrekturen
DisplayOrientedMeteringPointFactory
nimmt eineCameraInfo
-Instanz anstelle einerCameraSelector
an. Es gibt also eine direkte Zuordnung dazu, für welche Kamera die Fabrik Punkte generiert. Alle Klassen, dieDisplayOrientedMeteringPointFactory
verwenden, nehmen auch eineCameraInfo
-Instanz anstelle vonCameraSelector
an. (I400c1)TextureViewMeteringPointFactory
wurde entfernt.PreviewView
bietet eine öffentliche API (createMeteringPointFactory()
), mit der eine Messpunkt-Fabrik erstellt werden kann, unabhängig davon, obTextureView
oderSurfaceView
verwendet wird. (Ide693)- Die Implementierungsmodi
SURFACE_VIEW
/TEXTURE_VIEW
von PreviewView werden inPERFORMANCE
/COMPATIBLE
umbenannt.PERFORMANCE
ist der alteSURFACE_VIEW
-Modus undCOMPATIBLE
der alteTEXTURE_VIEW
-Modus. (I0edc2) - Überschreiben Sie bei der Bildaufnahme das Flag „horizontal drehen“ in den Metadaten basierend auf der Kamerarichtung. (I28499)
Camera-Extensions Version 1.0.0-alpha14
22. Juli 2020
androidx.camera:camera-extensions:1.0.0-alpha14
wird veröffentlicht. Version 1.0.0-alpha14 enthält diese Commits.
Kameraansicht – Version 1.0.0-alpha14
22. Juli 2020
androidx.camera:camera-view:1.0.0-alpha14
wird veröffentlicht. Version 1.0.0-alpha14 enthält diese Commits.
Camera-Extensions Version 1.0.0-alpha13
24. Juni 2020
androidx.camera:camera-extensions:1.0.0-alpha13
wird veröffentlicht. Version 1.0.0-alpha13 enthält diese Commits.
Fehlerkorrekturen
- Es wurden experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und Kameraeigenschaften hinzugefügt. (I28f61)
Kameraansicht – Version 1.0.0-alpha13
24. Juni 2020
androidx.camera:camera-view:1.0.0-alpha13
wird veröffentlicht. Version 1.0.0-alpha13 enthält diese Commits.
Fehlerkorrekturen
- CameraView stürzt nicht mehr mit einer IllegalArgumentException ab, wenn es an einen LifecycleOwner gebunden wird, dessen Lebenszyklus kurz nach der Bindung in den Status DESTROYED übergeht. Bei Bindungslebenszyklen im Status „DESTROYED“ wird nicht versucht, die Kamera zu öffnen. (I7c2b8)
- Der StreamState der Vorschauansicht ist jetzt über CameraView.getPreviewStreamState() verfügbar (I21a2b)
Kamera-Erweiterungen Version 1.0.0-alpha12
10. Juni 2020
androidx.camera:camera-extensions:1.0.0-alpha12
wird veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.
Fehlerkorrekturen
- Behebung des Absturzes beim Starten der App, wenn CameraX initialisiert wird, während sich das Smartphone im Modus „Bitte nicht stören“ befindet. Ein
InitializationException
, das einCameraUnavailableException
enthält, wird auf dieListenableFuture
des Initialisierungsergebnisses gesetzt, anstatt dass die Anwendung abstürzt. (I9909a, b/149413835)
Kameraansicht – Version 1.0.0-alpha12
10. Juni 2020
androidx.camera:camera-view:1.0.0-alpha12
wird veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.
Fehlerkorrekturen
- Fügen Sie die
PreviewView#getBitmap()
API hinzu, die eine Bitmap-Darstellung der Inhalte zurückgibt, die auf der Vorschaufläche angezeigt werden. (I9b500, b/157659818)
Kameraerweiterungen – Version 1.0.0-alpha11
27. Mai 2020
androidx.camera:camera-extensions:1.0.0-alpha11
wird veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.
Kameraansicht – Version 1.0.0-alpha12
10. Juni 2020
androidx.camera:camera-view:1.0.0-alpha12
wird veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.
Neue Funktionen
API-Änderungen
Fehlerkorrekturen
- Fügen Sie die
PreviewView#getBitmap()
API hinzu, die eine Bitmap-Darstellung der Inhalte zurückgibt, die auf der Vorschaufläche angezeigt werden. (I9b500, b/157659818)
Camera-View, Version 1.0.0-alpha11
27. Mai 2020
androidx.camera:camera-view:1.0.0-alpha11
wird veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.
API-Änderungen
- Hinzufügen der
PreviewView#getPreviewStreamState
API, mit der Apps erkennen können, ob eine Vorschau gestreamt wird oder nicht. Wenn sich die Vorschauansicht im Modus „TEXTURE_VIEW“ befindet, wird durch den Status „STREAMING“ auch sichergestellt, dass das Vorschaubild sichtbar ist. (Ic0906, b/154652477) - Die
PreviewView#setDeviceRotationForRemoteDisplayMode()
API wurde hinzugefügt, um die Gerätedrehung für Transformationsberechnungen bereitzustellen, wenn die Anwendung im Remote-Displaymodus ausgeführt wird. (I59b95, b/153514525)
Fehlerkorrekturen
- Das Problem mit der Verzerrung der Vorschau bei
FULL/LIMITED/LEVEL_3
-Kameras mit Android 7.0 und niedriger wurde behoben. DerImplementationMode#TEXTURE_VIEW
-Modus wird erzwungen, wenn die Android-Version 7.0 oder niedriger ist. (I83e30, b/155085307) - Der Parameter
CameraInfo
wurde ausPreviewView#createSurfaceProvider()
entfernt.PreviewView
ruft ihn jetzt intern aus derSurfaceRequest
ab. (If18f0, b/154652477) - Das Standardseitenverhältnis von VideoCapture in CameraView wurde auf 16:9 festgelegt. (Ie6a7b, b/153237864)
- Behebung von
PreviewView
Problemen mit dem schwarzen Bildschirm, wenn dasPreview
-Fragment herausgewischt und dann in ViewPager2 wieder hereingewischt wird. Außerdem wurde das Problem behoben, wennremoveView(previewview)
und dannaddView(previewView)
eingegeben wurde. (Iab555, b/149877652, b/147354615) - Aktualisieren Sie die
CameraView#takePicture()
API, damit Bilder inUri
undOutputStream
gespeichert werden können. Aktualisieren Sie die Test-App, damitUri
als kanonisches Beispiel verwendet wird. (Ia2459, b/153607583) - Sie können den Skalierungstyp der Vorschauansicht über ein XML-Layout festlegen, indem Sie das Attribut
ScaleType
festlegen. (I08565, b/153015659) CameraView.ScaleType
wurde entfernt. Verwenden Sie stattdessenPreviewView.ScaleType
, um einen Skalierungstyp mit CameraView festzulegen/abzurufen. (Ia8974, b/153014831)- Weisen Sie
PreviewView
standardmäßig eine Hintergrundfarbe zu, falls noch keine vorhanden ist. So wird verhindert, dass Inhalte dahinter sichtbar sind, bevor der Vorschaustream beginnt. (I09fad)
Kameraerweiterungen – Version 1.0.0-alpha10
15. April 2020
androidx.camera:camera-extensions:1.0.0-alpha10
wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
Fehlerkorrekturen
- Fehlerkorrekturen zur Unterstützung der Veröffentlichung von Camera-Core
Kameraansicht – Version 1.0.0-alpha10
15. April 2020
androidx.camera:camera-view:1.0.0-alpha010
wird veröffentlicht. Version 1.0.0-alpha010 enthält diese Commits.
Fehlerkorrekturen
- Ein zuvor bekanntes Problem wurde behoben, bei dem die SurfaceView-Implementierung von
PreviewView
auf bestimmten Geräten nicht richtig funktionierte und die App nach der Wiederaufnahme der Vorschau abstürzte. (I5ed6b)
Camera-Extensions Version 1.0.0-alpha09
1. April 2020
androidx.camera:camera-extensions:1.0.0-alpha09
wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
Fehlerkorrekturen
- Aktualisiert, um die Fehlerkorrekturen in den Artefakten
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
undcamera-lifecycle:1.0.0-beta02
zu unterstützen
Kameraansicht – Version 1.0.0-alpha09
1. April 2020:androidx.camera:camera-view:1.0.0-alpha09
wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
Bekannte Probleme
- Die Verwendung von
ImplementationMode.SURFACE_VIEW
mitPreviewView
funktioniert auf bestimmten Geräten möglicherweise nicht gut. Das liegt daran, dass die für die Vorschau verwendeteSurfaceView
ihre Oberfläche ungültig macht, wenn der Lebenszyklus des Fensters, in dem sie sich befindet, angehalten wird. Wenn es neu gestartet wird, wird die Kamera wieder geöffnet und es wird möglicherweise versucht, die Vorschau fortzusetzen, bevor die Oberfläche derSurfaceView
wieder gültig ist. Verwenden Sie vorerstImplementationMode.TEXTURE_VIEW
.
API-Änderungen
PreviewView.setImplementationMode()
wurde inPreviewView.setPreferredImplementationMode()
umbenannt.PreviewView.getImplementationMode()
wurde inPreviewView.getPreferredImplementationMode()
umbenannt.PreviewView.getSurfaceProvider()
wurde durchPreviewView.createSurfaceProvider(CameraInfo)
ersetzt, das eine nullableCameraInfo
-Instanz annimmt, um die Vorschau zu optimieren, indem nach MöglichkeitImplementationMode.SURFACE_VIEW
verwendet wird. Wenn eine Nullinstanz übergeben wird oder Sie den bevorzugten Implementierungsmodus aufImplementationMode.TEXTURE_VIEW
festlegen, wird internImplementationMode.TEXTURE_VIEW
verwendet.Das folgende Codebeispiel zeigt, wie ein Vorschau-Anwendungsfall früher mit PreviewView verwendet wurde.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
Derzeit können Sie Folgendes schreiben:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
PreviewView.getSurfaceProvider()
wurde die Anmerkung@UiThread
hinzugefügt. Das bedeutet, dass es aus dem Hauptthread aufgerufen werden muss. (I192f3)PreviewView.setScaleType()
wurde hinzugefügt, mit dem sich der Skalierungstyp der Vorschau festlegen lässt. Es kann einer der Werte inPreviewView.ScaleType
sein. Der Standardwert istPreviewView.ScaleType.FILL_CENTER
.PreviewView.getScaleType()
wurde hinzugefügt.Die Unterstützung für die Einstellung des Implementierungsmodus für
PreviewView
in einem XML-Layout mithilfe des AttributsimplementationMode
wurde entfernt.Fügen Sie der PreviewView die
createMeteringPointFactory()
API hinzu, um die Umwandlung von (x, y) inPreviewView
inMeteringPoint
zu unterstützen. (Ib36d7)
Fehlerkorrekturen
- Das Problem, dass in einigen Fällen nach einer Änderung der Größe von
PreviewView
eine falsche Vorschau angezeigt wurde, wurde behoben. (I71101)
Camera-Extensions Version 1.0.0-alpha08
26. Februar 2020
androidx.camera:camera-extensions:1.0.0-alpha08
wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Kameraansicht – Version 1.0.0-alpha08
26. Februar 2020
androidx.camera:camera-view:1.0.0-alpha08
wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Fehlerkorrekturen
ListenableFuture
inSurfaceRequest.provideSurface()
durchExecutor
undCallback
ersetzt Dadurch wird die API vereinfacht, da keine Ausnahmen mehr beiprovideSurface()
verarbeitet werden müssen und derprovideSurface()
-Callback nicht mehr abgebrochen werden kann. So werden Abstürze auf älteren Geräten verhindert, die durch eine vorzeitige Freigabe von Oberflächen verursacht werden. DasSurfaceRequest.Result
-Objekt wird jetzt verwendet, um zu erfassen, wie einSurfaceRequest
die bereitgestellteSurface
verwendet. (I7854b)SurfaceRequest.setSurface(Surface)
wurde inSurfaceRequest.provideSurface(Surface)
undSurfaceRequest.setWillNotComplete()
inSurfaceRequest.willNotProvideSurface()
umbenannt. (I224fe)- Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert. Dazu wurde das Flag beibehalten, das den Standard-
CameraXConfig
-Anbieter festlegt. (I2d6c1)
Kamera-Erweiterungen – Version 1.0.0-alpha07
10. Februar 2020
androidx.camera:camera-extensions:1.0.0-alpha07
wird veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
Fehlerkorrekturen
- Die Argumente, die zuvor in
ImageCapture.OnImageSavedCallback.onError()
undImageCapture.OnImageCapturedCallback.onError()
übergeben wurden, wurden durch ein einzelnes ArgumentImageCaptureException
ersetzt, das weiterhin alle zuvor übergebenen Informationen enthält. - Das Dateiargument, das zuvor in
ImageCapture.OnImageSavedCallback.onImageSaved()
übergeben wurde, wurde entfernt. (I750d2)
Kameraansicht – Version 1.0.0-alpha07
10. Februar 2020
androidx.camera:camera-view:1.0.0-alpha07
wird veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
API-Änderungen
- Bei der
TextureView
-Implementierung vonPreviewView
wird die Größe vonTextureView
jetzt auf die Ausgabegröße des Kamerasensors festgelegt, bevor sie so skaliert wird, dass sie das übergeordnete ElementPreviewView
füllt. Wenn die Kameravorschau einen ganzen Teil der Benutzeroberfläche (z. B. den gesamten Bildschirm) füllen soll, sollten Sie die Größe vonPreviewView
nicht auf einen festen Wert festlegen oder den Inhalt umbrechen lassen (z. B. mit dem Attribut „wrap_content
“). Andernfalls kann es passieren, dass die Kameravorschau nur einen Teil vonPreviewView
füllt (wenn die Ausgabegröße des Kamerasensors kleiner ist). Stattdessen sollten SiePreviewView
so groß wie das übergeordnete Element festlegen (z. B. mit dem Attribut „match_parent
“). (1204869)
Fehlerkorrekturen
ImageCapture
wurde aktualisiert, damit Bilder inUri
undOutputStream
gespeichert werden können. ÜberladenetakePicture
-Methoden wurden zu einer einzigen Methode kombiniert. Die Test-App wurde aktualisiert, sodassUri
als kanonisches Beispiel verwendet wird. (Ia3bec)Preview.PreviewSurfaceProvider
wurde inPreview.SurfaceProvider
umbenannt. FürSurfaceProvider
s müssen Entwickler nicht mehr ihre eigenenListenableFuture
erstellen.Surface
s werden jetzt über ein neuesSurfaceRequest
-Objekt bereitgestellt. Die MethodePreview.getPreviewSurfaceProvider()
wurde entfernt, da sie missbraucht werden kann, wennPreview
mit anderen Klassen wiePreviewView
kombiniert wird. (I20105)- Die Argumente, die zuvor in
ImageCapture.OnImageSavedCallback.onError()
undImageCapture.OnImageCapturedCallback.onError()
übergeben wurden, wurden durch ein einzelnes ArgumentImageCaptureException
ersetzt, das weiterhin alle zuvor übergebenen Informationen enthält. - Das Dateiargument, das zuvor in
ImageCapture.OnImageSavedCallback.onImageSaved()
übergeben wurde, wurde entfernt. (I750d2) - Die API wurde aktualisiert. Die Methoden
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
undgetLinearZoom()
vonCameraInfo
wurden ingetZoomState()
zusammengeführt, die eineZoomState
-Instanz zurückgibt. (Ib19fe)
Kamera-Erweiterungen Version 1.0.0-alpha06
22. Januar 2020
androidx.camera:camera-extensions:1.0.0-alpha06
wird veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
Updates
- Verschiedene Fehlerkorrekturen und Updates zur Unterstützung von Änderungen an Camera Core und Camera2.
Kameraansicht – Version 1.0.0-alpha06
22. Januar 2020
androidx.camera:camera-view:1.0.0-alpha06
wird veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
Updates
- Verschiedene Fehlerkorrekturen und Updates zur Unterstützung von Änderungen an Camera Core und Camera2.
Kamera-Erweiterungen Version 1.0.0-alpha05
18. Dezember 2019
androidx.camera:camera-extensions:1.0.0-alpha05
wird veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Fehlerkorrekturen
- Die API wurde an die internen Camera Core APIs angepasst.
Kameraansicht – Version 1.0.0-alpha05
18. Dezember 2019
androidx.camera:camera-view:1.0.0-alpha05
wird veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Bekannte Probleme
- Das Seitenverhältnis ist bei Verwendung von PreviewView möglicherweise falsch (b/146215202).
Neue Funktionen
- Es wurde eine neue Klasse namens
PreviewView.TextureViewImplementation
implementiert, die den Lebenszyklus der SurfaceTexture mit der Verwendung der TextureView-Oberfläche durch die Kamera synchronisiert.
Camera-Extensions Version 1.0.0-alpha04
4. Dezember 2019
androidx.camera:camera-extensions:1.0.0-alpha04
wird veröffentlicht. Version 1.0.0-alpha04 von camera-extensions enthält diese Commits
API-Änderungen
Für die Prüfung der Verfügbarkeit und Aktivierung einer Erweiterung wird jetzt ein
CameraSelector
als Eingabeparameter verwendet. Dies muss dieselbeCameraSelector
sein, die für die Bindung des Anwendungsfalls verwendet wird.val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA val builder = ImageCapture.Builder() val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder) if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) { bokehImageCaptureExtender.enableExtension(cameraSelector) } val imageCapture = builder.build() mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
Sie müssen Erweiterungen initialisieren, bevor Sie die Erweiterungsbibliothek verwenden können.
val availability = ExtensionsManager.init() Futures.addCallback<ExtensionsManager.ExtensionsAvailability>( availability, object : FutureCallback<ExtensionsManager.ExtensionsAvailability> { override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) { // Ready to make extensions calls } override fun onFailure(throwable: Throwable) { // Extensions could not be initialized } }, Executors.newSingleThreadExecutor() )
Kameraansicht-Version 1.0.0-alpha04
4. Dezember 2019
androidx.camera:camera-view:1.0.0-alpha04
wird veröffentlicht. Version 1.0.0-alpha04 von camera-view enthält diese Commits
API-Änderungen
- Die Klasse
PreviewView
dient dazu, die Ausgabe des Anwendungsfalls „Vorschau“ in einer Anwendung einfach anzuzeigen. PreviewView
kann in das Layout aufgenommen werden:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
bietet einePreviewSurfaceProvider
, mit der sich ein Vorschau-Anwendungsfall ganz einfach verknüpfen lässt.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
„
ZoomLevel
“ ist jetzt „ZoomRatio
“ in der API-BenennungBei einigen Methodenparametern wurde die Nullbarkeit geändert.
Kameraerweiterungen und Kameraansicht – Version 1.0.0-alpha03
9. Oktober 2019
androidx.camera:camera-extensions:1.0.0-alpha03
und androidx.camera:camera-view:1.0.0-alpha03
werden freigegeben. Dies sind die Commits in camera-extensions:1.0.0-alpha03
und dies sind die Commits in camera-view:1.0.0-alpha03
.
Neue Funktionen
- Kontextinitialisierer für Erweiterungen hinzugefügt. Version der Erweiterungen auf 1.1.0 erhöht
Kameraerweiterungen und Kameraansicht – Version 1.0.0-alpha02
5. September 2019
androidx.camera:camera-extensions:1.0.0-alpha02
und androidx.camera:camera-view:1.0.0-alpha02
werden veröffentlicht. Das sind die Commits in „camera-extensions:1.0.0-alpha02“ und die Commits in „camera-view:1.0.0-alpha02“.
- Es wurden Tests hinzugefügt, um zu prüfen, ob
PreviewImageProcessorImpl
Zeitstempel korrekt implementiert hat. - Fehler beim
ExtensionTest
-Test auf Nexus 5 (API-Level 21) beheben und dafür sorgen, dass die Vorschau verfügbar ist.
Kameraerweiterungen und Kameraansicht – Version 1.0.0-alpha01
7. August 2019
androidx.camera:camera-extensions:1.0.0-alpha01
und androidx.camera:camera-view:1.0.0-alpha01
werden veröffentlicht.
Das sind die Commits in „camera-extensions:1.0.0-alpha01“ und das sind die Commits in „camera-view:1.0.0-alpha01“.
- Neue Bibliothek für zukünftige Kameraerweiterungen, um auf unterstützten Geräten auf Effekte zuzugreifen. Diese Bibliothek ist noch in der Entwicklung.
- Neue Klasse „Camera View“ Diese Bibliothek ist noch in der Entwicklung.