CameraX
In dieser Tabelle sind alle Artefakte in der Gruppe androidx.camera
aufgeführt.
Artefakt | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpharelease |
---|---|---|---|---|
camera-camera2 | 1.4.2 | - | 1.5.0-beta02 | - |
camera-core | 1.4.2 | - | 1.5.0-beta02 | - |
camera-compose | - | - | 1.5.0-beta02 | - |
camera-effects | 1.4.2 | - | 1.5.0-beta02 | - |
camera-extensions | 1.4.2 | - | 1.5.0-beta02 | - |
camera-feature-combination-query | - | – | - | 1.5.0-alpha06 |
camera-feature-combination-query-play-services | - | – | - | 1.5.0-alpha06 |
camera-lifecycle | 1.4.2 | - | 1.5.0-beta02 | - |
camera-mlkit-vision | 1.4.2 | - | 1.5.0-beta02 | - |
Kameraansicht | 1.4.2 | - | 1.5.0-beta02 | - |
Kamerasucher | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
camera-video | 1.4.2 | - | 1.5.0-beta02 | - |
Gerätetests
CameraX wird in unserem Labor auf vielen Geräten getestet. Eine Liste der Geräte, die derzeit im Labor getestet werden, finden Sie hier.
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von CameraX hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-beta02" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.5.0-beta02" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.
Camera Viewfinder Compose Version 1.0
Version 1.0.0-alpha02
12. Juni 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
wird veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Version 1.0.0-alpha01
14. Mai 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
wird veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Neue Funktionen
- Neue Bibliothek. Diese Bibliothek enthält eine Compose-native Viewfinder-Composable-Funktion, die mit CameraX und Camera2 verwendet werden kann. Die zusammensetzbare Viewfinder-Funktion unterstützt verschiedene Seitenverhältnisse und die Verarbeitung von Touch-Ereignissen.
Kamerasucher Version 1.4
Version 1.4.0-alpha07
12. Juni 2024
androidx.camera:camera-viewfinder:1.4.0-alpha07
und androidx.camera:camera-viewfinder-core:1.4.0-alpha07
werden veröffentlicht. Version 1.4.0-alpha07 enthält diese Commits.
Version 1.4.0-alpha06
14. Mai 2024
androidx.camera:camera-viewfinder:1.4.0-alpha06
und androidx.camera:camera-viewfinder-core:1.4.0-alpha06
werden veröffentlicht. Version 1.4.0-alpha06 enthält diese Commits.
API-Änderungen
- Die Enums von
Viewfinder
ImplementationMode
werden umbenannt, um die zugrunde liegenden Implementierungen besser widerzuspiegeln. Außerdem werden feste Konstanten fürTransformationInfo.sourceRotation
hinzugefügt. (Ic6149) ZoomGestureDetector.ZoomEvent
wurde hinzugefügt, um die Status einer Zoom-Geste zu kapseln. (I84cdf)
Kameraversion 1.5
Version 1.5.0-beta02
16. Juli 2025
androidx.camera:camera-*:1.5.0-beta02
wird veröffentlicht. Version 1.5.0-beta02 enthält diese Commits.
API-Änderungen
- Es wurden neue APIs hinzugefügt, mit denen Gruppen von hochwertigen Funktionen intuitiver und genauer festgelegt oder abgefragt werden können, da diese Funktionen möglicherweise nicht als Kombination auf allen Geräten unterstützt werden.
SessionConfig
enthält jetzt neue APIs, mit denen eine Gruppe von Funktionen als erforderlich oder bevorzugt gekennzeichnet werden kann. Mit derCameraInfo.isFeatureGroupSupported
API lässt sich ermitteln, ob eine Funktionsgruppe unterstützt wird, bevor eineSessionConfig
gebunden wird. MitSessionConfig
kann auch ein Listener festgelegt werden, um zu erfahren, welche Funktionen schließlich ausgewählt werden, wenn eine Sitzungskonfiguration gebunden ist. (Ie4d60) - Die neuen APIs
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)
undCameraInfo.getSupportedFrameRateRanges(SessionConfig)
ermöglichen es Entwicklern, garantierte unterstützte Framerates abzufragen, die durch ein bestimmtesSessionConfig
eingeschränkt werden, und die Framerate dann aufSessionConfig
anzuwenden. (Ieacf7) - Die neue
SessionConfig
API wurde eingeführt. Sie bietet eine bessere Abstraktion für die Konfiguration von Anwendungsfällen, Sitzungsparametern,CameraEffect
,ViewPort
usw. Wenn Sie einSessionConfig
an einen LifecycleOwner binden, wird die Kamerasitzung geöffnet, mit den angegebenen Anwendungsfällen und Sitzungsparametern konfiguriert und das angegebeneCameraEffect
undViewPort
angewendet. Wenn Sie ein neuesSessionConfig
auf dasselbeLifecycleOwner
aktualisieren, können Sie einfach ein neuesSessionconfig
binden, ohne zuerst „unbind“ oderunbindAll
aufzurufen. (Iedfc3) - Es wurden neue APIs zum Aufnehmen von Videos mit hoher Geschwindigkeit/in Zeitlupe hinzugefügt. Weitere Informationen finden Sie in der
HighSpeedVideoSessionConfig
API. (Ia16f3)
Fehlerkorrekturen
- Es wurde ein Problem behoben, bei dem die
ImageCaptureCapabilities#getSupportedOutputFormats()
-API auf einigen Geräten, die keine RAW-Funktion haben, RAW-Formate als unterstützt gemeldet hat. (Ibcadb) - Das Speicherleck wurde behoben, das auftritt, wenn
PreviewView
verwendet wird,CameraEffect
aktiviert ist oder 4 Bindungsanwendungsfälle(StreamSharing) verwendet werden (I87468). - Es wurde ein Fehler behoben, bei dem die Videoaufzeichnung durch
AssertionError
abgestürzt ist: Ungültiger interner Audiostatus: IDLING. (I38d4b, b/414259796) - Das Problem wurde behoben, dass die Vorschau in
PreviewView
gestreckt oder seitlich angezeigt wurde, wenn die App auf einem externen Display ausgeführt wurde und sich das Gerät im Querformat befand (Ia917a). - Das Problem, dass die Einstellungen für die Vorschau-Stabilisierung nicht richtig angewendet werden, wenn der Kamerastream zwischen Vorschau und VideoCapture geteilt wird, wurde behoben.(I5430e)
CameraXViewfinder
verarbeitet jetzt den Oberflächenersatz im zugrunde liegendenViewfinder
korrekt. Dies umfasst Szenarien wie das Verschieben einesEXTERNAL
-Suchers auf API-Level 28 oder niedriger vom Bildschirm oder wenn einCameraXViewfinder
(mit einem beliebigenImplementationMode
) Teil vonmoveableContentOf()
ist. Wenn die zugrunde liegendeViewfinderSurfaceSession
nicht aktiv gehalten werden kann, wird durch dieCameraXViewfinder
die aktuelle CameraX-SurfaceRequest
ungültig gemacht, sodass CameraX die neueSurface
verwenden kann. (I79432)- Es wurde ein Problem unter Android 10/11 behoben, bei dem das
EXTERNAL
CameraXViewfinder
aufgrund von Transformationsvorgängen (z. B. Skalieren oder Übersetzen), die zu früh angewendet wurden, gestreckt oder falsch dargestellt werden konnte. Das System wartet nun, bis die Oberfläche erstellt wurde, bevor diese Transformationen in der Layoutphase angewendet werden. So wird eine korrekte Ausgabe gewährleistet. (Icc77c) - Die zusammensetzbare Funktion
CameraXViewfinder
funktioniert jetzt korrekt mitPager
von Compose. Durch diese Änderung wird sichergestellt, dass das Composable durch die Implementierung desonReset
-Rückrufs vonAndroidView
erfolgreich zurückgesetzt werden kann. Dabei werden sowohlEMBEDDED
- als auchEXTERNAL
-Implementierungen unterstützt. (I0d9be) - Ein Problem mit dem Lifecycle-Owner wurde behoben, das auftrat, wenn Anwendungsfälle von einem Lifecycle-Owner getrennt wurden, ohne den Kameraanbieter zu schließen.
Version 1.5.0-beta01
7. Mai 2025
androidx.camera:camera-*:1.5.0-beta01
wird veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.
API-Änderungen
- Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich (Idb6b5).
ContentScale
und „Ausrichtung“ können jetzt im Sucher verwendet werden, um die angezeigte Oberfläche in ihrem Container zu skalieren und zu platzieren. Das funktioniert ähnlich wie beiandroidx.compose.foundation.Image
. (Ibcea3)TransformationInfo
hat jetzt Standardwerte für alle Argumente. So können Viewfinder ohneTransformationInfo
erstellt werden. In diesem Fall wird standardmäßig eine Quellrotation von 0, keine Quellspiegelung und kein Zuschneidebereich verwendet. (I2b1b2)LifecycleCameraProvider
wurde hinzugefügt. Dies ist ein Kameraanbieter, der mit verschiedenen Konfigurationen für Funktionen wie den Zugriff auf die Kamera eines virtuellen Geräts durch Konfiguration mit einem benutzerdefinierten Kontext instanziiert werden kann. (Ia2992)
Fehlerkorrekturen
- Ein Problem mit dem Einfrieren der Vorschau bei Verwendung von
ImageAnalysis
mit einem anderen Stream, derTEMPLATE_RECORD
auf dem Samsung-Gerät SM-E556B verwendet, wurde behoben. (Ic0e62, b/409478042) - Das Problem, dass die Vorschau beim Verwenden von
ImageAnalysis
mit einem anderen Stream, derTEMPLATE_RECORD
verwendet, auf dem Samsung-Gerät SM-M556B einfriert, wurde behoben. (Ic1a6a, b/395822788) - Das Problem mit dem Nachtmodus von Erweiterungen
AssertError
auf Pixel-Geräten mit Android 15 bei Zoomvorgängen wurde behoben. (I27a5d, b/401460276) - Das Problem mit falschen Koordinaten für den Begrenzungsrahmen des ML Kit Analyzer bei Verwendung von
CameraController
wurde behoben. (Iae91b, b/409808510)
Version 1.5.0-alpha06
26. Februar 2025
androidx.camera:camera-*:1.5.0-alpha06
wird veröffentlicht. Version 1.5.0-alpha06 enthält diese Commits.
API-Änderungen
CameraInfo.getTorchStrengthLevel
,CameraInfo.getMaxTorchStrengthLevel
undCameraControl.setTorchStrengthLevel
wurden hinzugefügt, um die Helligkeit der Taschenlampe anzupassen (I00878)- Eine neue API
CameraController#setTapToFocusAutoCancelDuration
wurde hinzugefügt, damit Nutzer das Verhalten bei der automatischen Absage fürPreviewView
-Ereignisse (Tippen zum Fokussieren) steuern können. Standardmäßig werden die Fokusereignisse von CameraX nach 5 Sekunden abgebrochen (d. h. der Kamerafokus wird zurückgesetzt). Mit dieser API kann diese Dauer geändert oder die automatische Abbrechen ganz deaktiviert werden. (Icf59a) FLASH_STATE_READY
wurde inNOT_FIRED
umbenannt und die anderenFlashState
-Konstantennamen wurden vereinfacht, um die Lesbarkeit zu verbessern. (I8771d)- Die Low Light Boost API wurde verfügbar gemacht. Geräte mit Android 15 oder höher können die Funktion „Low-Light-Boost“ unterstützen. Mit dieser Funktion kann die Helligkeit der Vorschau-, Video- oder Bildanalysestreams bei schlechten Lichtverhältnissen automatisch angepasst werden. Anwendungen können die neue API für folgende Zwecke verwenden: 1. Verwenden Sie
CameraInfo#isLowLightBoostSupported
, um die Verfügbarkeit der Funktion zu prüfen. 2. Verwenden SieCameraControl#enableLowLightBoostAsync
, um den Modus zu aktivieren, wenn die Geräte ihn unterstützen. 3. Verwenden SieCameraInfo#getLowLightBoostState
, um den Status der Funktion „Bei wenig Licht verstärken“ zu überwachen. (I937ed) - Fügen Sie Kompatibilitätsklassen hinzu, um schnellere Abfragen ohne Camera2 in „camera-feature-combination-query“ zu ermöglichen. (Ie97ee)
- Für
CameraController
-Tap-to-Focus-Ereignisse wird mit der neuen APIgetTapToFocusInfoState()
jetzt auch die entsprechende Tippposition verfügbar gemacht, indem einLiveData
der KlasseTapToFocusInfo
zurückgegeben wird. Die bisherige APILiveData<Integer>
, diegetTapToFocusState()
zurückgibt, wird zugunsten der neuen API eingestellt. (I238d2)
Fehlerkorrekturen
- Das Problem, dass die Vorschau-Stabilisierung nicht angewendet wurde, wenn sie mit Erweiterungen aktiviert war, wurde behoben. (I24ad7)
- Das Fokusstatusereignis
CameraController
wird nicht aufTAP_TO_FOCUS_NOT_STARTED
zurückgesetzt, wenn CameraX ein Fokusereignis automatisch abbricht, was standardmäßig nach 5 Sekunden geschieht. (I31954) - Ein Problem wurde behoben, durch das die Vorschau bei Verwendung von Zero Shutter Lag (ZSL) nach mehreren Aufnahmen aufgrund von nicht freigegebenen Bildressourcen eingefroren ist. (Ic3c2a)
- Es wurden Probleme behoben, bei denen UHD-Videos auf einigen Geräten einen roten Farbstich aufwiesen, wenn die Pipeline
OpenGL
umfasste. (Idcedc)
Version 1.5.0-alpha05
15. Januar 2025
androidx.camera:camera-*:1.5.0-alpha05
wird veröffentlicht. Version 1.5.0-alpha05 enthält diese Commits.
API-Änderungen
- Fügen Sie
VideoCapture.getSelectedQuality()
hinzu, um die ausgewählte Qualität basierend aufQualitySelector
zu ermitteln. (I70508, b/204288986) - Wenn eine Aufnahme mit der
ImageCapture.OnImageCapturedCallback
API aufgerufen wird, kann mit dem ImageInfo im zurückgegebenenImageProxy
jetzt ermittelt werden, ob der Blitz über die neueImageInfo.getFlashState()
API ausgelöst wurde. (Id2c61, b/380527406) - Unterstützung für das
OUTPUT_IMAGE_FORMAT_NV21
-Ausgabeformat fürImageAnalysis
hinzugefügt. (I484ab) - Entfernen Sie die experimentelle Annotation des
featurecombinationquery
-Artefakts (I4427f). - Passen Sie den für
CameraControl
zulässigen Zoombereich anhand von Erweiterungsmerkmalen an, wenn ein Erweiterungsmodus aktiviert ist. (I85af1)
Fehlerkorrekturen
compileSdk
wurde auf 35 aktualisiert, um die API für Android 15 zu verwenden. Apps, die CameraX-Bibliotheken verwenden, müssen auch ihrecompileSdk
-Konfigurationseinstellung aktualisieren. (Ic80cd)- In dieser Bibliothek werden jetzt JSpecify-Nullable-Annotationen verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen:
-Xjspecify-annotations=strict
(dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers). (Idc6c6, b/326456246)
Version 1.5.0-alpha04
11. Dezember 2024
androidx.camera:camera-*:1.5.0-alpha04
wird veröffentlicht. Version 1.5.0-alpha04 enthält diese Commits.
API-Änderungen
ImageCapture.Builder#setOutputFormat
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
- Ein Problem mit fehlgeschlagenen Aufnahmen auf dem Vivo 1610-Gerät beim Fotografieren mit Blitz im Dunkeln wurde behoben. (I366f4)
- Ein Problem wurde behoben, bei dem die Taschenlampe nach der Aufnahme eines Bildes auf dem Redmi Note 6 Pro unerwartet ausgeschaltet wurde. (I2e0e8, b/377144569)
- Ein Problem auf Pixel-Geräten mit Android 15 wurde behoben, bei dem im Nachtmodus in Erweiterungen keine Fotos aufgenommen wurden, bis die Kamera auf ein Objekt in der Nähe fokussiert hatte. (I228d4)
- Das Problem, dass die Aufnahme von Standbildern nicht funktioniert, wenn Erweiterungen aktiviert sind und
VideoCapture
gebunden ist, wurde behoben. (I5c745) - Wenn die Funktion aktiviert ist, wird die Aufnahme von Standbildern für Erweiterungen unterstützt, sofern das Gerät dies unterstützt.
UltraHDR
(I48300) - Ein Problem mit dem Blitz-Timing bei der Blitzaufnahme mit
CameraEffect
für Bildaufnahmen auf TCL-Geräten wurde behoben. (I7698c)
Version 1.5.0-alpha03
30. Oktober 2024
androidx.camera:camera-*:1.5.0-alpha03
wird veröffentlicht. Version 1.5.0-alpha03 enthält diese Commits.
API-Änderungen
- Ausgabeformat-APIs für RAW und RAW + JPEG
ImageCapture
hinzufügen. Die Gerätefunktionsprüfung wird inImageCaptureCapabilities#getSupportedOutputFormats
bereitgestellt. MitOUTPUT_FORMAT_RAW
wird ein RAW-Bild im Adobe-DNG-Format aufgenommen und mitOUTPUT_FORMAT_RAW_JPEG
werden gleichzeitig RAW- und JPEG-Bilder aufgenommen. Die neueImageCapture#takePicture
API wird für die gleichzeitige Aufnahme von Bildern 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 bei aktivierter Funktion
VideoCapture
wurde behoben. (Id7a64) - Das Problem wurde behoben, dass beim Aufrufen von
startFocusMetering
mitPreviewView.getMeteringPointFactory
nicht die richtigen Sensorkoordinaten abgerufen werden, wenn ein Effekt aktiviert ist oder vier Anwendungsfälle gebunden sind (Stream-Sharing). (I916c5, b/345993685) - Das
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
-Ereignis wird jetzt auch dann ausgelöst, wenn ein Video aufgenommen wird und nicht genügend Speicherplatz vorhanden ist. (I35779, b/356399842)
Version 1.5.0-alpha02
2. Oktober 2024
androidx.camera:camera-*:1.5.0-alpha02
wird veröffentlicht. Version 1.5.0-alpha02 enthält diese Commits.
Neue Funktionen
- Neue APIs zum Abfragen von Kamerafunktionen, die vom Gerät unterstützt werden. So kann beispielsweise geprüft werden, ob HDR und 60 FPS gleichzeitig aktiviert werden können. Sie enthält zwei Artefakte: „camera-feature-combination-query“ und „camera-feature-combination-query-play-services“.
Dies ist eine kompatible Version der
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
API von camera2 mit zusätzlichen Daten, die von den Google Play-Diensten bereitgestellt werden.
Fehlerkorrekturen
- Ein Problem mit der Ziel-Frame-Rate von
Preview/VideoCapture
auf Geräten mit LEGACY-Level wurde behoben. Die über diesetTargetFrameRate
- oderCamera2Interop
-API festgelegte Ziel-Frame-Rate wurde immer mit dem vomAeFpsRangeLegacyQuirk
bereitgestellten Wert überschrieben. Mit diesem Fix wird der über die APIsetTargetFrameRate
oderCamera2Interop
festgelegte Wert in der CameraX-Bibliothek berücksichtigt. (Ie2d32) - Für die Aufnahme von Bildern mit
CameraEffect
wurden Funktionen für Blitz/Taschenlampe/3A hinzugefügt. Die mitCameraEffect
aufgenommenen Bilder sollten jetzt die gleichen Vor- und Nachbearbeitungsprozesse (z.B. Blitzauslösung, 3A-Konvergenz usw., falls zutreffend) wie Bilder ohneCameraEffect
durchlaufen. (I5ff30) - Problematische Ausgabegrößen für
ImageAnalysis
auf dem Samsung-Gerät SM-A057G ausgeschlossen. WennImageAnalysis
eine Auflösung von mindestens 1920 × 1440 verwendet, kann es zu Problemen mit der schwarzen Vorschau kommen.ExcludedSupportedSizesQuirk
auf dem Gerät SM-A057G angewendet, um das Problem zu vermeiden. (I63dfe, b/365877975) - Das Problem mit der
Preview/VideoCapture
-Ziel-Framerate wurde behoben, wenn der Streamfreigabemechanismus intern aktiviert ist, um einen Stream fürPreview
undVideoCapture
freizugeben. (I4fdac) - Der Workaround zur Behebung des Problems mit falschen JPEG-Bildmetadaten auf Samsung S10e- und S10+-Geräten wurde aktiviert. Mit dem Fix kann CameraX das JPEG-Bild erfolgreich speichern oder korrekte Bitmap-Objekte zurückgeben, wenn die Funktion
ImageProxy.toBitmap()
auf diesen Geräten aufgerufen wird und das Problem mit den falschen JPEG-Bildmetadaten auftritt. (Iae493, b/356428987) - Deaktivierte Erweiterungen für die Rückkamera des Samsung A52s mit der ID 0, da bei der Aufnahme von HDR-Bildern native Abstürze auftreten können und die Konfiguration von Aufnahmesitzungen für die Modi BOKEH oder FACE_RETOUCH fehlschlagen kann. (I03ec9, b/364152642)
- Das
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
-Ereignis wird jetzt auch dann ausgelöst, wenn ein Video aufgenommen wird und nicht genügend Speicherplatz vorhanden ist. (Ia5b4f, b/356399842) - Ein Problem wurde behoben, durch das der zweite Versuch einer Videoaufzeichnung auf dem Oppo A5 (CPH1931) fehlschlug. (I181d6)
Version 1.5.0-alpha01
4. September 2024
androidx.camera:camera-*:1.5.0-alpha01
wird veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.
Neue Funktionen
- Für den CameraX Viewfinder Compose Adapter wird ein neues Artefakt,
camera-compose
, veröffentlicht, das einen Preview-Stream von einem CameraX-SurfaceRequest
auscamera-core
anzeigt. (I8666e) - Es wurde eine neue zusammensetzbare Funktion,
CameraXViewfinder
, hinzugefügt, die als idiomatische zusammensetzbare Funktion fungiert, die CameraX-SurfaceRequest
s für die zusammensetzbare FunktionViewfinder
anpasst. (I4770f)
API-Änderungen
- API zum Festlegen von Kompositionseinstellungen für die gleichzeitige Videoaufnahme mit zwei Kameras bereitstellen Zu den Einstellungen gehören der Alphawert für das Blending, der Offset in den x- und y-Koordinaten sowie der Maßstab für die Breite und Höhe des Anzeigefensters für den Kamerabildrahmen. Der Versatz, die Breite und die Höhe werden in normalisierten Gerätekoordinaten angegeben. (Ia2b8a)
CameraProvider.getCameraInfo
als offizielle API verfügbar gemacht. (I901cd)- Die API
PendingRecording.withAudioEnabled(boolean initialMuted)
wurde hinzugefügt, um den anfänglichen Stummschaltungsstatus zu steuern. (I635c3, b/354829267)
Fehlerkorrekturen
- Der Absturz, der auftrat, wenn
bindToLifecycle
mit einem zerstörtenLifecycleOwner
aufgerufen wurde, wurde behoben. (I6e6d8) - Das Problem, dass die Vorschau auf dem Display der Frontkamera schwarz war, wenn das Gerät mit
VideoCapture
auf dem Motorola Edge 20 Fusion verbunden war, wurde behoben. (I1fe88) - Die Konfiguration für die Erkennung von Zoom-Gesten in
PreviewView
wurde optimiert, um die Reaktionsfähigkeit zu verbessern. (I04ffc)
Kameraversion 1.4
Version 1.4.2
26. März 2025
androidx.camera:camera-*:1.4.2
wird veröffentlicht. Version 1.4.2 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem mit dem Einfrieren der Vorschau bei Verwendung von
ImageAnalysis
mit einem anderen Stream, derTEMPLATE_RECORD
auf dem Samsung Galaxy M55 verwendet, wurde behoben. (Ic1a6a, b/395822788)
Version 1.4.1
11. Dezember 2024
androidx.camera:camera-*:1.4.1
wird veröffentlicht. Version 1.4.1 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem auf Pixel-Geräten mit Android 15 wurde behoben, bei dem im Nachtmodus in Erweiterungen keine Fotos aufgenommen wurden, bis die Kamera auf ein Objekt in der Nähe fokussiert hatte. (I228d4)
- Das Problem mit der Fehlfunktion von
ImageCapture#takePicture
wurde behoben, wenn Erweiterungen aktiviert undVideoCapture
gebunden ist. (I5c745)
Version 1.4.0
30. Oktober 2024
androidx.camera:camera-*:1.4.0
wird veröffentlicht. Version 1.4.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.3.0
CameraX 1.4.0 bietet viele spannende Updates. Übersicht:
Hauptfunktion: 10‑Bit-HDR-Video:
- Mit der Kamera lassen sich ganz einfach beeindruckende HDR-Fotos und ‑Videos aufnehmen.
- Unterstützt HLG- und 10‑Bit-HEVC-Codierung.
- 10‑Bit-HDR-Vorschau und Abfrage der Gerätefunktionen
- Funktioniert mit
UltraHDR
-Bildern und HDR-Videos auf einer wachsenden Anzahl von Geräten.
Weitere coole Funktionen:
- Kotlin-Erweiterungen: Die suspend-Funktionen
takePicture
undawaitInstance
wurden hinzugefügt. - Echtzeiteffekte: Sie können Effekte wie Wasserzeichen und Objekthervorhebung anwenden.
- CameraController API: Neue Steuerelemente für die Videokonfiguration.
- Vorschau-Stabilisierung: Gerätefunktion abfragen und Stabilisierung aktivieren.
- Verbesserungen bei der Videoaufnahme: Sie haben mehr Kontrolle über die Qualität und können auf höhere Auflösungen zugreifen.
- Integration von CameraX-Erweiterungen: Nahtlose Integration mit
VideoCapture
und neuenImageCapture
-Funktionen. - Shutter Sound API: Regionale Anforderungen für den Auslöseton lassen sich ganz einfach prüfen.
- Displayblitz: Verbesserte Fotos bei wenig Licht mit der Frontkamera.
- Camera Extensions Metadata APIs: Unterstützende APIs zum Anpassen der Stärke von Erweiterungen und zum Abrufen von Benachrichtigungen über den aktuellen Erweiterungsmodus in
ExtensionMode#AUTO
. Weitere Fehlerkorrekturen finden Sie in unseren Beta- und RC-Ankündigungen.
Version 1.4.0-rc04
16. Oktober 2024
androidx.camera:camera-*:1.4.0-rc04
wird veröffentlicht. Version 1.4.0-rc04 enthält diese Commits.
Fehlerkorrekturen
- Das Problem wurde behoben, dass beim Aufrufen von
startFocusMetering
mitPreviewView.getMeteringPointFactory
nicht die richtigen Sensorkoordinaten abgerufen werden, wenn ein Effekt aktiviert ist oder vier Anwendungsfälle gebunden sind (Stream-Sharing). (I916c5, b/345993685)
Version 1.4.0-rc03
2. Oktober 2024
androidx.camera:camera-*:1.4.0-rc03
wird veröffentlicht. Version 1.4.0-rc03 enthält diese Commits.
Fehlerkorrekturen
- Für die Aufnahme von Bildern mit
CameraEffect
wurden Funktionen für Blitz/Taschenlampe/3A hinzugefügt. Die mitCameraEffect
aufgenommenen Bilder sollten jetzt die gleichen Vor- und Nachbearbeitungsprozesse (z.B. Blitzauslösung, 3A-Konvergenz usw., falls zutreffend) wie Bilder ohneCameraEffect
durchlaufen. (I5ff30) - Die Pinch-to-Zoom-Funktion in
PreviewView
(I04ffc) wurde optimiert. - Ultra HDR wird nicht mehr an die 10‑Bit-Ausgabe gekoppelt, da Geräte nicht mehr über eine 10‑Bit-Ausgabe verfügen müssen, um Ultra HDR zu unterstützen. (I96ff2, I0c3b3)
Version 1.4.0-rc02
18. September 2024
androidx.camera:camera-*:1.4.0-rc02
wird veröffentlicht. Version 1.4.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Der Absturz, der auftrat, wenn
bindToLifecycle
mit einem zerstörtenLifecycleOwner
aufgerufen wurde, wurde behoben. (I6e6d8) - Es wurde eine Sichtbarkeitsanimation in
ScreenFlashView
fürScreenFlash#apply
hinzugefügt. Außerdem wurden Fehler behoben, die dadurch entstanden sind, dass die Helligkeitsänderung nach einiger Zeit asynchron abgeschlossen wurde. (I37cdb) - Die Zoomfunktion wurde verbessert, indem auf unterstützten Geräten die Zoomeinstellungen im Framework überschrieben werden.
Version 1.4.0-rc01
7. August 2024
androidx.camera:camera-*:1.4.0-rc01
wird veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.
Neue Funktionen
- Die experimentelle
CameraInfo.getCameraInfo
wurde hinzugefügt, um spezifische Kamerainformationen bereitzustellen, ohne Anwendungsfälle an die Kamera binden zu müssen. (I550d1)
API-Änderungen
- Die APIs
PreviewView.getScreenFlash
undPreviewView.setScreenFlashOverlayColor
wurden für Fälle hinzugefügt, in denenScreenFlashView
nicht explizit hinzugefügt wird. (I43945)
Fehlerkorrekturen
- Probleme mit Belichtung und Farbstich behoben, wenn Bilder bei schwachem Licht mit aktiviertem Blitz aufgenommen wurden und der VideoCapture-Anwendungsfall gebunden war. (Ic9814)
- Das Problem wurde behoben, dass beim Unterbrechen einer
takePicture
-Anfrage mit aktivierten Erweiterungen möglicherweise kein Ergebnis zurückgegeben wurde und die nächstetakePicture
-Anfrage möglicherweise nicht mehr funktionierte. (Iae78f) - Ein Speicherleckproblem, das auftrat, wenn Erweiterungen aktiviert waren, wurde behoben. (Iab276)
- Es wurde ein Fehler behoben, der dazu führte, dass CameraX-Erweiterungen auf Geräten wie dem Pixel 7/8 und der Samsung Galaxy S24-Serie nicht richtig funktionierten. Das Problem, das auf ein
Camera2OutputConfigImpl
-Konvertierungsproblem im Release-Modus zurückzuführen ist, trat nach dem Upgrade von AGP auf Version 8.5.1 und der Aktivierung der Minimierung auf. (I99598, b/354824993)
Version 1.4.0-beta02
12. Juni 2024
androidx.camera:camera-*:1.4.0-beta02
wird veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.
API-Änderungen
- Fügen Sie wie bei
VideoCapture
setMirrorMode
für den Anwendungsfall „Vorschau“ hinzu. Der Spiegelmodus wird für den Vorschaustream überOutputConfiguration.setMirrorMode
ab API 33 unterstützt. Bei älteren APIs ist er inaktiv. (I821f4)
Fehlerkorrekturen
- Das Problem wurde behoben, dass Apps auf dem Samsung Tab A8 keine Fotos aufnehmen konnten, wenn
ImageCapture
die KombinationPreview
+VideoCapture
+ImageCapture
UseCase
mit der Auflösung 1920 × 1080 auswählte. (I5a463, b/336925549) - Es wurde ein Fehler behoben, durch den die kontinuierliche Aufzeichnung nach dem Wechsel der Kamera möglicherweise nicht fortgesetzt wurde. (Icb0a1)
Version 1.4.0-beta01
14. Mai 2024
androidx.camera:camera-*:1.4.0-beta01
wird veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.
API-Änderungen
ZoomGestureDetector.ZoomEvent
wurde hinzugefügt, um die Status einer Zoom-Geste zu kapseln. (I84cdf)
Fehlerkorrekturen
- Ein Fehler wurde behoben, durch den bei der Aufnahme und beim Tippen zum Fokussieren nicht die Werte für die Wiederholungsanfrage für FPS/Stabilisierungsmodus verwendet wurden. Dadurch wurde die Aufnahmesitzung möglicherweise neu erstellt, was auf einigen Geräten zu Latenzproblemen oder einem Einfrieren der Vorschau führte. (I7dc0b)
- Ein Fehler wurde behoben, bei dem auf einigen Geräten keine hohen Auflösungen ausgewählt werden konnten, wenn
CameraEffect
aktiviert war. z. B. 4.000 × 3.000 auf dem Samsung A32 5G. (Ie3ed3, b/337336152) - Ein Absturz beim Aufnehmen von Fotos mit der Vorschau wurde behoben, wenn
ImageCapture
undVideoCapture(UHD)
auf dem Pixel 4XL mit API29 gebunden sind. (I5b288) - Unterstützung virtueller Geräte: Der in
ProcessCameraProvider
übergebene Kontext behält die Geräte-ID bei, um die Funktionalität in einer Umgebung mit virtuellen Geräten zu gewährleisten. (I5ba48)
Version 1.4.0-alpha05
17. April 2024
androidx.camera:camera-*:1.4.0-alpha05
wird veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.
Neue Funktionen
ProcessCameraProvider
wurde in eine Kotlin-Implementierung konvertiert. (I46d4f)- Es wurden
ImageCapture.takePicture
-Suspend-Funktionen hinzugefügt, damit sie auf Kotlin-idiomatische Weise aufgerufen werden können. (I920be)
API-Änderungen
- Fügen Sie
ImageCapture
APIs für das Ausgabeformat hinzu und fügen SiegetSupportedOutputFormats
-Methode zuImageCaptureCapabilities
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 Ultra HDR-komprimierte Bilder im JPEG/R-Bildformat auf. Das Format ist abwärtskompatibel mit dem SDR‑JPEG‑Format und unterstützt das HDR‑Rendering von Inhalten. Das bedeutet, dass Bilder in älteren Apps oder auf älteren Geräten nahtlos als normales JPEG angezeigt werden. In Apps und auf Geräten, die aktualisiert wurden, um das Format vollständig zu unterstützen, werden Bilder als HDR angezeigt. (I5de50) - Fügen Sie
PhysicalCameraInfo
inCameraInfo
hinzu, um Informationen zur physischen Kamera abzufragen, und fügen Sie Setter/Getter für die ID der physischen Kamera inCameraSelector
hinzu (Ic5b90). - Ersetzen Sie
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
durchImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
. Der Wert der Konstanten bleibt gleich. Damit werden alle Konstanten an einem Ort zusammengefasst. (I890bb) - Mit der neuen
RetryPolicy
API können Entwickler das Wiederholungsverhalten für die CameraX-Initialisierung anpassen. (I36dd2) - Erstellung von
ImageCaptureLatencyEstimate
-Objekten aktivieren, um die Testbarkeit zu verbessern (Iaba99) - Fügen Sie eine
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
hinzu. Wenn diese Option verwendet wird, gibtMlKitAnalyzer
Koordinaten im Koordinatensystem des Kamerasensors zurück. (I3ec61) - Die API für Metadaten von Erweiterungen wurde offengelegt. Mit den neuen
CameraExtensionsInfo
- undCameraExtensionsControl
-Schnittstellen können Anwendungen die Einstellungen für die Erweiterungsstärke überwachen und anpassen. Anwendungen können dieCameraExtensionsInfo
- oderCameraExtensionsControl
-Instanz über die neu hinzugefügten MethodenExtensionsManager#getCameraExtensionsInfo()
oderExtensionsManager#getCameraExtensionsControl()
abrufen. (I28e1a) ProcessCameraProvider.awaitInstance
wurde hinzugefügt. Dies ist eine suspendierende Version vonProcessCameraProvider.getInstance
(Ib22b9).- Fügen Sie eine
PreviewView#getSensorToViewTransform()
API hinzu. Die Matrix stellt die Transformation von Koordinaten des Kamerasensors in die Koordinaten vonPreviewView
dar. Damit lassen sich Koordinaten von einemUseCase
in ein anderes transformieren. Beispiel: Die Koordinaten der erkannten Objekte inImageAnalysis
werden in dasPreviewView
-Overlay transformiert. (I947ab) - Die
camera-viewfinder-core
API ist jetzt allgemeiner und kann voncamera-viewfinder
undcamera-viewfinder-compose
verwendet werden. (I1e295) - Fügen Sie die Funktion
getSurface
zuViewfinderSurfaceRequest
hinzu. (I781a0) - Verwende
camera-viewfinder-core
incamera-viewfinder
und stelle die Unterstützung fürViewfinderSurfaceRequest
undCameraViewfinder
ein. (I6198c) ZoomGestureDetector
wurde hinzugefügt, um Skalierungsgesten zu interpretieren, die speziell für das Zoomen durch Auf- und Zuziehen konfiguriert sind. (Ifafbf)
Fehlerkorrekturen
- Ein Problem bei der Auswahl der Auflösung für
ImageAnalysis
wurde behoben, das mit der Standardeinstellung für die Zielauflösung des Analysetools zusammenhing: Die Zielauflösung wurde fälschlicherweise auf 640 × 480 beibehalten, auch wenn in den Anwendungen eine andere Standardeinstellung für die Auflösung des Analysetools festgelegt war. Wenn dieses Problem in Anwendungen auftritt (1.3.0 – 1.3.2) und kein Upgrade auf die neueren Versionen mit der Lösung möglich ist, kann das Problem umgangen werden, indem direkt einResolutionSelector
mit der bevorzugten Auflösung und ein passendesAspectRatioStrategy
für dasImageAnalysis
UseCase
festgelegt wird. (I81f72, b/330091012) - Ein Problem wurde behoben, bei dem die Ausführung einer in die Warteschlange gestellten
takePicture
-Anfrage fehlschlagen konnte, wenn die aktuelle Anfrage fehlgeschlagen ist. (Ie0801) - Die Prüfung auf ungültige JPEG-Daten wird auf Vivo X60- und X60 Pro-Geräte angewendet. Dadurch kann das Problem mit ungewöhnlich großen Bildern auf diesen Geräten behoben werden. (I82247, b/288828159)
- Das Problem mit falschen JPEG-Bildmetadaten auf Samsung A24-Geräten wurde behoben. Mit dem Fix kann CameraX das JPEG-Bild erfolgreich speichern oder korrekte Bitmap-Objekte zurückgeben, wenn die
ImageProxy.toBitmap()
-Funktion auf Samsung A24-Geräten aufgerufen wird. (I8d6eb, b/309005680) - Die Prüfung auf ungültige JPEG-Daten wird auf alle Samsung-Geräte angewendet, wenn das aufgenommene Bild größer als 10 MB ist. Dadurch kann das Problem mit ungewöhnlich großen Bildern auf Samsung-Geräten behoben werden. (Ic2a65, b/288828159)
- Die Unterstützung für
ImageAnalysis
wurde in CameraX Extensions entfernt, da die Implementierungen von Extensions vieler OEMs nicht gut 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 der die Kameraausgabe effizient bearbeitet wird. OverlayEffect
: zum Zeichnen von Overlays mit der Canvas API von Android. Dadurch kann die App ein Wasserzeichen anwenden oder erkannte Objekte in Kameraausgaben hervorheben.DynamicRange
APIs für den Vorschau-Anwendungsfall: Der dynamische Bereich kann jetzt unabhängig vom Video-Anwendungsfall für den Vorschau-Anwendungsfall festgelegt werden. Dadurch sind HDR-Dynamikbereiche wie HLG10 nur für die Vorschau möglich. InCameraInfo
sind auch neue APIs verfügbar, mit denen abgefragt werden kann, welche dynamischen Bereiche von den einzelnen Kameras unterstützt werden.
API-Änderungen
ScreenFlashUiCompleter
wurde inScreenFlashListener
umbenannt undScreenFlashUiCompleter#getExpirationTimeMillis
wurde in denexpirationTimeMillis
-Parameter vonScreenFlash#apply
verschoben. (I13944)- Es wurden neue APIs hinzugefügt, mit denen der Dynamikbereich für den Anwendungsfall „Vorschau“ festgelegt und die von den einzelnen Kameras unterstützten Dynamikbereiche abgefragt werden können. So können HDR-Dynamikbereiche wie HLG10 allein für den Anwendungsfall „Vorschau“ verwendet werden. Es ist nicht mehr erforderlich, gleichzeitig ein
VideoCapture
zu binden. (If25e3) getMirroring()
wurde inisMirroring()
umbenannt (I47063)- Unterstützung für die Schätzung der Latenz bei der Aufnahme von Standbildern in Echtzeit in CameraX hinzugefügt. Mit Kameraerweiterungen können Anwendungen eine API verwenden, die eine Schätzung der Dauer einer Aufnahme liefert. Bei der Schätzung werden die aktuellen Umgebungsbedingungen und der Kamerastatus berücksichtigt. Außerdem wird die Zeit für die Verarbeitung von Anfragen zur Aufnahme mehrerer Bilder sowie die zusätzliche Zeit für die Codierung verarbeiteter Puffer, falls erforderlich, berücksichtigt. (I05c3a)
ScreenFlashUiControl
wurde inScreenFlash
,ScreenFlashUiControl#applyScreenFlashUi
inScreenFlash#apply
undScreenFlashUiControl#clearScreenFlashUi
inScreenFlash#clear
umbenannt. Außerdem wurde die MethodegetScreenFlashUiApplyTimeoutSeconds
hinzugefügt, anstattSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
direkt verfügbar zu machen. (Iccdd0)
Fehlerkorrekturen
- Es wurde ein Speicherleck behoben, das dazu führte, dass Aktivitäten oder Fragmente nicht freigegeben wurden, wenn Erweiterungen aktiviert waren (I14215).
- Das Problem wurde behoben, bei dem
getZoomRatio
fälschlicherweise einen niedrigeren Wert zurückgegeben hat, wenn ein steigendes Zoomverhältnis angewendet wurde. (I4aa0d, b/317543616) - Das
ImageCapture#ScreenFlash#clear
-Ereignis wird sofort aufgerufen, wennImageCapture
nicht gebunden ist oder die Kamera geschlossen wird. Außerdem werden einige Fehler behoben, bei denen es aufgrund von Aufnahmen in diesen Szenarien nie aufgerufen wird. (If99f9) - Der Absturz, der auftritt, wenn der Lebenszyklus beendet wird, bevor die
takePicture
-Anfrage abgeschlossen ist, wurde behoben (Idf017, b/306202751). - Das Problem, dass die Kameravorschau schwarz wurde, wenn Erweiterungen auf einigen Geräten aktiviert waren (I1ffd0), wurde behoben.
- Die Dauer der Videoaufzeichnung auf Geräten mit dem Snapdragon 778G SoC wurde korrigiert. (If6aa7, b/316057919)
Version 1.4.0-alpha03
13. Dezember 2023
androidx.camera:camera-*:1.4.0-alpha03
wird veröffentlicht. Version 1.4.0-alpha03 enthält diese Commits.
Neue Funktionen
CameraInfo.mustPlayShutterSound
wurde hinzugefügt, um Informationen dazu zu liefern, ob gemäß regionalen Einschränkungen ein Auslösergeräusch abgespielt werden muss. (Ifda84)OnImageCapturedCallback.onCaptureStarted
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öser-Sound oder die Auslöser-Animation abzuspielen. (Ic49b3)- Unterstützung für die Funktion „Bildschirmblitz“ in CameraX für die Aufnahme von Bildern mit der Frontkamera hinzugefügt. CameraX übernimmt die API-Verarbeitung auf Framework-Seite und synchronisiert das Timing nach Bedarf mit UI-Änderungen der Anwendung (z.B. AE-Vorabaufnahme-Trigger nach Änderung der Bildschirmfarbe/Helligkeit der App). Apps müssen ihre UI-seitigen Implementierungen nur in der
ScreenFlashUiControl
-Schnittstelle hinzufügen, die für CameraX bereitgestellt wird. (I8ae84) - Unterstützung für die UI-seitige Implementierung der Funktion „Aufleuchten des Bildschirms bei Benachrichtigungen“ in CameraX hinzugefügt. Apps können eine einfache
ImageCapture.ScreenFlashUiControl
-Implementierung überPreviewView
oder das neu hinzugefügteScreenFlashView
erhalten. Dadurch wird eine einfarbige Overlay-Ansicht hinzugefügt und die Bildschirmhelligkeit bei der Aufnahme von Fotos mit Bildschirmblitz maximiert. (I1810e)
API-Änderungen
- Unterstützung neuer Extensions-Funktionen(Postview und Fortschritt des Aufnahmeprozesses): Es wurden
ImageCapture#getImageCaptureCapabilities()
-APIs für Apps hinzugefügt, mit denen die Funktionen des Postview- und des Fortschritts-Callbacks für den Aufnahmeprozess abgefragt werden können. Apps können die Post-View-Funktion mitImageCapture.Builder#setPostviewEnabled()
aktivieren. Die Größe der Postview kann mitImageCapture.Builder#setPostviewResolutionSelector()
ausgewählt werden. Beim Aufrufen vontakePicture()
könnenonPostviewBitmapAvailable
undonCaptureProcessProgressed
inOnImageSavedCallback
oderOnImageCapturedCallback
implementiert werden, um die Benachrichtigung über den Fortschritt nach der Ansicht zu erhalten, sofern dies unterstützt wird. (I5cd88) - APIs zum Berechnen der Koordinatentransformation vom Sensor zum aktuellen Puffer mit einem Flag, das angibt, ob die Oberfläche die Informationen zur Kameraausrichtung enthält. (I59096)
- Die API zum Abfragen von
PreviewCapabitlity
in der VorschauversionUseCase
verfügbar machen. (Ie5b6c) - Es wurden APIs hinzugefügt, die mehr Qualitäten für
VideoCapture
unterstützen.Recorder.Builder#setVideoCapabilitiesSource(int)
kann mitVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
verwendet 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 aufnehmen möchte, dieCamcorderProfile
des Geräts jedoch keine UHD-Einstellungen enthält, obwohl der Codec UHD-Videoaufnahmen unterstützt. (Iedbe2, b/263961771) - Fügen Sie
CameraController
den Getter/Setter für dasImageAnalysis
-Ausgabeformat hinzu. (I9a96c, b/308240643)
Fehlerkorrekturen
- Kamera
1.3.1
: Die Leistung vonProcessCameraProvider#bindToLifecycle()
wurde verbessert. Die wichtigste Änderung besteht darin, den Prozess zur Ermittlung der am besten geeigneten Größenkombinationen fürUseCases
zu optimieren. 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) - Ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung-Serien A71 und M51 wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder eine extrem große Dateigröße. Die redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Dateigrößen haben. (I01afc, b/288828159)
- Deaktivieren Sie die
ImageAnalysis
-Unterstützung auf Pixel-Geräten, um den Fehler zu vermeiden, der auf Pixel-Geräten fälschlicherweise die nicht leeren unterstützten Größen fürImageAnalysis
zurückgibt. (I7ec31) - Ein Leistungsproblem wurde behoben, bei dem die CPU-Auslastung und der Stromverbrauch bei aktivierten Erweiterungen gestiegen sind. (Ibdccb)
- Snapdragon 480 wurde der
CameraUseInconsistentTimebaseQuirk
hinzugefügt. Damit wird ein Problem auf Android 12 für Geräte mit diesem Chipsatz behoben, bei dem der Ton in Aufnahmen um die Zeit versetzt ist, die das Gerät im Ruhezustand war. (I58010)
Version 1.4.0-alpha02
18. Oktober 2023
androidx.camera:camera-*:1.4.0-alpha02
wird veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.
API-Änderungen
- Benennen Sie die API in
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
und das Argument um. (I72370) - Es wurden APIs zum Abfragen der Gerätefunktionen und zum Aktivieren der Video-/Vorschaustabilisierung hinzugefügt. (I87544)
- API zum Anpassen des maximalen Zeitlimits für Wiederholungsversuche beim Öffnen der Kamera bereitstellen. (I0c642)
ProcessCameraProvider.shutdownAsync
wurde als öffentliche Test-API veröffentlicht, damit der Prozesskameraanbieter in Testsuiten verwendet werden kann, bei denen CameraX zwischen den Tests möglicherweise auf unterschiedliche Weise initialisiert werden muss. (I9eca7)- Es wurden APIs zum Konfigurieren des Dynamikbereichs, der Framerate und des Spiegelmodus für die Videoaufnahme hinzugefügt. (Ifb8f7)
OutputSize
wird eingestellt und durchResolutionSelector
ersetzt.ResolutionSelector
ist eine umfassendere Methode zum Auswählen von Auflösungen und stimmt mit der Camera Core API überein. (I93abd, b/286801438)
Fehlerkorrekturen
- Das Problem mit der schwarzen Vorschau auf dem Samsung Galaxy S23 Ultra 5G wurde behoben, wenn die Erweiterungen „Bokeh“ oder „Gesichtsretusche“ mit
ImageAnalysis
auf der Rückkamera aktiviert sind. (I2e8b1) - Probleme mit der Vorschau und mit
VideoCapture
auf dem Moto E5 Play wurden behoben. (73dce2)
Version 1.4.0-alpha01
20. September 2023
androidx.camera:camera-*:1.4.0-alpha01
wird veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.
API-Änderungen
- Neue API zum Abrufen von Informationen zur Audioamplitude während der Aufnahme hinzugefügt. (Id4925)
Fehlerkorrekturen
- Die Stabilität von Erweiterungen wird verbessert, indem dafür gesorgt wird, dass die Initialisierungs- und Deinitialisierungsereignisse in der richtigen Reihenfolge ausgelöst werden. (Ib3b8e)
- Der Fehler bei der Konfiguration der Aufnahmesitzung wurde behoben, der durch das Überschreiten der unterstützten Oberflächenkombination aufgrund des internen Hinzufügens einer zusätzlichen sich wiederholenden Oberfläche verursacht wurde. (Id718c)
- Ein Problem mit großen aufgenommenen JPEG-Bildern auf dem Vivo S16 wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder eine große Dateigröße. Die redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Dateigrößen haben. (I79505, b/299069235)
- Das Problem, dass
ImageAnalysis
nicht zusammen mitImageCapture
und der Vorschau gebunden werden kann, wenn auf einigen Geräten bestimmte Erweiterungsmodi aktiviert sind, wurde behoben. Durch die Korrektur wird der richtige Wert zurückgegeben, wenn Apps die Verfügbarkeit vonImageAnalysis
überExtensionsManager#isImageAnalysisSupported()
abfragen. (I7d538) - JavaDoc an das Verhalten anpassen. Anstatt sofort abgeschlossen zu werden, warten
#setZoomRatio
,#setLinearZoom
und#enableTorch
, bis die Kamera bereit ist. Außerdem wurden Informationen dazu hinzugefügt, wie das maximale Sichtfeld mit der#takePicture
API erreicht werden kann. (I23588)
Version 1.3
Version 1.3.4
12. Juni 2024
androidx.camera:camera-*:1.3.4
wird veröffentlicht. Version 1.3.4 enthält diese Commits.
Fehlerkorrekturen
- Das Problem wurde behoben, bei dem
getZoomRatio
fälschlicherweise einen niedrigeren Wert zurückgegeben hat, wenn ein steigendes Zoomverhältnis angewendet wurde. (I4aa0d, b/317543616) - Es wurde ein Fehler behoben, bei dem bei der Aufnahme von Standbildern und beim Tippen zum Fokussieren nicht die Werte für die Wiederholungsanfrage-FPS und den Stabilisierungsmodus verwendet wurden. Dadurch wurde die Aufnahmesitzung möglicherweise neu erstellt, was auf einigen Geräten zu Latenzproblemen oder einem Einfrieren der Vorschau führen konnte. (I7dc0b)
- Das Problem, dass die Bildrate auf einen niedrigeren Wert gesetzt wird, wenn
setTargetFrameRate
mitFRAME_RATE_RANGE_UNSPECIFIED
aufgerufen wird, wurde behoben. (I78c61)
Version 1.3.3
17. April 2024
androidx.camera:camera-*:1.3.3
wird veröffentlicht. Version 1.3.3 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem bei der Auswahl der Auflösung für
ImageAnalysis
wurde behoben, das mit der Standardeinstellung für die Zielauflösung des Analysetools zusammenhing: Die Zielauflösung wurde fälschlicherweise auf 640 × 480 beibehalten, auch wenn in den Anwendungen eine andere Standardeinstellung für die Auflösung des Analysetools festgelegt war. Wenn dieses Problem (1.3.0 – 1.3.2) bei Anwendungen auftritt und kein Upgrade auf die neueren Versionen mit der Lösung möglich ist, kann es umgangen werden, indem direkt einResolutionSelector
mit der bevorzugten Auflösung und ein passendesAspectRatioStrategy
für denImageAnalysis
-UseCase festgelegt wird. (I81f72, b/330091012)
Version 1.3.2
6. März 2024
androidx.camera:camera-*:1.3.2
wird veröffentlicht. Version 1.3.2 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem mit JPEG-Metadaten auf Samsung A24-Geräten wurde behoben. Mit CameraX werden Bilder jetzt korrekt gespeichert und die Funktion
ImageProxy.toBitmap()
gibt korrekte Bitmap-Objekte zurück. (I8d6eb, b/309005680) - Die Auflösung von 9280 × 6944 wurde auf Redmi Note 9 Pro-Geräten aufgrund von Problemen entfernt. (Ia23da)
Version 1.3.1
13. Dezember 2023
androidx.camera:camera-*:1.3.1
wird veröffentlicht. Version 1.3.1 enthält diese Commits.
Fehlerkorrekturen
Die Leistung von ProcessCameraProvider#bindToLifecycle()
wurde verbessert. Die wichtigste Änderung besteht darin, den Prozess zur Ermittlung der am besten geeigneten Größenkombinationen für UseCases
zu optimieren. Die optimalen Ergebnisse variieren je nach den spezifischen UseCase
-Kombinationen und der Anzahl der unterstützten Ausgabegrößen für die Zielgeräte. (I454f2)
Hier sind einige Referenzergebnisse für verschiedene Szenarien:
Vier
UseCases
:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: ca. 430 ms bis 60 ms
- Samsung Galaxy S23 Ultra: ca. 540 ms bis 45 ms
- Samsung A53 5G: ca. 115 ms bis 70 ms
Drei
UseCases
:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: ca. 9 ms bis 7 ms
- Samsung Galaxy S23 Ultra: ca. 6 ms bis 5 ms
- Samsung A53 5G: ca. 32 ms bis 12 ms
Snapdragon 480 wurde der
CameraUseInconsistentTimebaseQuirk
hinzugefügt. Damit wird ein Problem auf Android 12 für Geräte mit diesem Chipsatz behoben, bei dem der Ton in Aufnahmen um die Zeit versetzt ist, die das Gerät im Ruhezustand war. (I58010)
Version 1.3.0
18. Oktober 2023
androidx.camera:camera-*:1.3.0
wird veröffentlicht. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- Videofunktionen wie 10‑Bit-HDR, Zuschneiden, Spiegeln/Nicht spiegeln, Stummschalten/Stummschaltung aufheben und Framerate festlegen.
- Dual Concurrent Camera
- Effektbibliothek
- Auswahl der Auflösung
- Auswahl von Ultraweitwinkel- und Telekamera
- 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 wird verbessert, indem dafür gesorgt wird, dass die Initialisierungs- und Deinitialisierungsereignisse in der richtigen Reihenfolge ausgelöst werden. Dadurch wurden einige Probleme mit schwarzen Vorschauen beim Wechseln von Erweiterungsmodi oder Kameras behoben. (Iddaac)
- Das Problem, dass
ImageAnalysis
nicht zusammen mitImageCapture
und der Vorschau gebunden werden kann, wenn auf einigen Geräten bestimmte Erweiterungsmodi aktiviert sind, wurde behoben. Durch die Korrektur wird der richtige Wert zurückgegeben, wenn Apps die Verfügbarkeit vonImageAnalysis
überExtensionsManager#isImageAnalysisSupported()
abfragen. (I7d538) - Das Problem, dass Audio und Video des aufgezeichneten Videos nicht synchron waren, wenn der Spiegelungsmodus auf dem Xiaomi Poco X3 NFC aktiviert war, wurde behoben. (I20b4c)
Version 1.3.0-rc01
23. August 2023
androidx.camera:camera-*:1.3.0-rc01
wird veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.
API-Änderungen
PendingRecording.asPersistentRecording
wurde hinzugefügt, damit eine Aufnahme kontinuierlich aufgezeichnet werden kann, während dasVideoCapture
, an das der Recorder angehängt ist, neu gebunden wird. (I517c6)
Fehlerkorrekturen
- Ein Absturz wurde behoben, der auftrat, wenn ein Stream sowohl mit
VideoCapture
als auch mit der Vorschau geteilt wurde. Außerdem wurde ein Problem mit einem schwarzen Bildschirm auf LEGACY-Geräten behoben, wenn die Streamfreigabe aktiviert ist. - Ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung S7-Serie (SM-G930T, SM-G930V) wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder eine große Dateigröße. Die redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Dateigrößen haben. (I407b0, b/288828159)
- Ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung S22-Serie (SM-S901B, SM-S901B/DS) und S22+-Serie (SM-S906B) wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder auf dem S22 SM-S901B/DS eine große Dateigröße von etwa 13 MB. Die redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Dateigrößen haben. (I73be9, b/288828159)
- Ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung-Serien A5, A52, A70 und A72 wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder eine extreme Dateigröße (z. B. etwa 32 MB oder sogar 96 MB). Diese redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Bilddateigrößen haben. (I97c4d, b/288828159)
- Ein nativer Absturz beim Aufnehmen von Fotos mit aktivierten Erweiterungen wurde behoben (I698f5).
Version 1.3.0-beta02
26. Juli 2023
androidx.camera:camera-*:1.3.0-beta02
wird veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Taschenlampe als Blitz für Pixel 4- und Pixel 5-Varianten verwenden, um die Aufnahmequalität bei schlechten Lichtverhältnissen zu verbessern (I56ff5, b/280221967)
- Ein Problem mit großen aufgenommenen JPEG-Bildern auf Geräten der Samsung A5-Serie (2017) wurde behoben. Die aufgenommenen JPEG-Bilder enthalten redundante 0-Padding-Daten im JFIF-komprimierten Datensegment. Dadurch haben die aufgenommenen Bilder eine Dateigröße von etwa 32 MB. Diese redundanten Nullen werden entfernt, damit die aufgenommenen Bilder normale Bilddateigrößen haben. (I29837, b/288828159)
- Das Problem wurde behoben, dass bei Aufnahmefehlern auf den in
CaptureFailedRetryQuirk
genannten problematischen Geräten der Wiederholungsversuch nicht richtig ausgelöst wurde. (I7b589)
Version 1.3.0-beta01
21. Juni 2023
androidx.camera:camera-*:1.3.0-beta01
wird veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.
API-Änderungen
- Der Funktionsname
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
wurde insetAllowedResolutionMode
und die KonstantenResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
inPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
umbenannt. (If84e8) - Die verworfenen APIs
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
undVideoCapture.setTargetRotationDegrees(int)
wurden entfernt. (Id8e77) - Die Klasse
DynamicRange
stellt den Dynamikumfang von Bildern dar. Damit können Sie HDR-Formate als Ausgabe vonVideoCapture
bisVideoCapture.Builder#setDynamicRange()
auswählen. (Ib0377) - Der
ExtensionsManager
wurde eineisImageAnalysisSupported
API hinzugefügt, mit der Apps ermitteln können, ob einImageAnalysis
-Anwendungsfall zusammen mit Preview undImageCapture
gebunden werden kann, wenn Erweiterungen aktiviert sind. (I1bc63) - Mit der neuen
VideoCapabilities
-Klasse, die ausRecorder
abgerufen wird, können unterstützte dynamische Bereiche und Qualitäten für die Videoaufzeichnung auf dem Gerät abgefragt werden. Die MethodengetSupportedQualities()
undisQualitySupported()
vonQualitySelector
werden verworfen. Verwenden Sie stattdessen die MethodengetSupportedQualities()
undisQualitySupported()
vonVideoCapabilities
. (I04014) CameraController#setVideoCaptureTargetQuality()
wurde insetVideoCaptureQualitySelector
umbenannt und akzeptiert das ArgumentQualitySelector
, was mehr Flexibilität bei der Einrichtung der Videoqualität bietet.CameraController#getVideoCaptureTargetQuality()
wird entsprechend ingetVideoCaptureQualitySelector
geändert. (I520ed)- Die experimentelle Anmerkung für Videofunktionen wurde entfernt. Die Videofunktionen sind jetzt stabil. (I1a113)
Fehlerkorrekturen
- Verwenden Sie die Taschenlampe als Blitz auf Samsung SM-A320-Modellen, um die Geschwindigkeit und die Qualität der aufgenommenen Bilder bei schlechten Lichtverhältnissen zu verbessern. (I6a022, b/286190938)
- Unterstützung für das
ImageFormat.JPEG
-Format fürImageProxy.toBitmap()
hinzufügen Wenn das JPEG-Byte-Array nicht decodiert werden kann, wird einUnsupportedOperationException
ausgegeben. (I81958, b/282057603)
Version 1.3.0-alpha07
24. Mai 2023
androidx.camera:camera-*:1.3.0-alpha07
wird veröffentlicht. Version 1.3.0-alpha07 enthält diese Commits.
Neue Funktionen
- Mit der neuen
VideoCapture.Builder# setTargetFrameRate(Range)
API können Videoaufnahmen mit anderen Bildraten als der Standardbildrate des Geräts aufgenommen werden. Die verfügbaren Bildraten für Aufnahmen können über die 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
wurde insetAllowedResolutionMode
geändert. (Iae817) CameraInfo#getSupportedFrameRateRanges()
gibt jetzt eineSet
anstelle einerList
zurück, um besser darzustellen, dass die Bereiche ungeordnet sind. (I02f43)- Fügen Sie
CameraEffect
einen Fehler-Listener hinzu, um nicht behebbares Fehler (Ice471) zu verarbeiten. - Öffentlichen Konstruktor in
ResolutionInfo
für bessere Testbarkeit hinzufügen (If6d1c) - Es wurde eine API
UseCase.snapToSurfaceRotation(int)
bereitgestellt, um die Verwendung vonsetTargetRotationDegrees
zu ersetzen und die APIsImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
undVideoCapture.setTargetRotationDegrees(int)
einzustellen. (Ia9010) - Neue APIs
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 beendet wird. (Iba974)
Fehlerkorrekturen
- Der Fehler
NullPointerException
wurde behoben, wenn die zwischengespeicherten Ausgabegrößen inStreamConfigurationMapCompat
null sind. (Idf124, b/282025204) - Das Problem, dass die Vorschau in Erweiterungen nicht pausiert wird, wenn
Preview.setSurfaceProvider(null)
gedrückt wird, wurde behoben (Ia903e). - Ein Problem wurde behoben, bei dem beim Öffnen der Kamera
ConcurrentModificationException
ausgelöst wurde, wennVideoCapture
gebunden war. (Ic8ac4)
Version 1.3.0-alpha06
19. April 2023
androidx.camera:camera-*:1.3.0-alpha06
wird veröffentlicht. Version 1.3.0-alpha06 enthält diese Commits.
Neue Funktionen
- „Concurrent camera“ ist eine neue Funktion, die mit Android 11 eingeführt wurde. Sie unterstützt das gleichzeitige Streamen von Kamerageräten. So können beispielsweise sowohl die Vorder- als auch die Rückkamera eines Geräts gleichzeitig verwendet werden. CameraX unterstützt derzeit nur zwei gleichzeitige Kameras, sodass zwei Kameras gleichzeitig verwendet werden können. Für jede Kamera können maximal zwei {@link UseCase}s gebunden werden. Die maximale Auflösung beträgt 720p oder 1440p. Weitere Informationen finden Sie unter CameraManager#getConcurrentCameraIds().
- Wir stellen die neue
ResolutionSelector
API vor, die die folgenden Funktionen umfasst:- Anwendungen können Strategien für das Seitenverhältnis und die Auflösung angeben, um die beste Auflösung für ihre Anforderungen auszuwählen.
- Alle Parameter für Größe und Seitenverhältnis werden in den Koordinaten des Kamerasensors angegeben.
- Anwendungen können einen benutzerdefinierten Auflösungsfilter implementieren, um die unterstützten Größen in der gewünschten Reihenfolge anzuordnen.
- Anwendungen können auch die Aufnahme mit hoher Auflösung aktivieren, um Bilder mit höherer Auflösung zu erhalten. Beachten Sie jedoch, dass die Aufnahmezeit bei einer hohen Auflösung länger sein kann.
VideoCapture
-Spiegelungs-APIs wurden hinzugefügt. VonVideoCapture
aufgenommene Videos werden standardmäßig nicht gespiegelt. Die Kamera-Vorschau wird jedoch standardmäßig von der Frontkamera gespiegelt.VideoCapture
-Spiegelungs-APIs ermöglichen die Ausrichtung auf die Kameravorschau bei Verwendung der Frontkamera. Es gibt dreiMirrorMode
,OFF
,ON
undON_FRONT_ONLY
. Um die Kamera-Vorschau auszurichten, wird empfohlen,ON_FRONT_ONLY
zu verwenden. Das bedeutet, dass die Spiegelung für die Rückkamera nicht, für die Frontkamera aber aktiviert ist.
API-Änderungen
- Neue
ResolutionSelector
API verfügbar gemacht. Anwendungen können Strategien für das Seitenverhältnis und die Auflösung mit Fallback-Regeln oder einem benutzerdefinierten Auflösungsfilter angeben, um die gewünschten Ergebnisse zu erzielen. Anwendungen können ein Flag angeben, um die Aufnahme in hoher Auflösung zu aktivieren. Dadurch kann CameraX höhere Auflösungen für Fotos oder Videos auswählen. Beachten Sie jedoch, dass die Aufnahmezeit bei einer hohen Auflösung länger sein kann. (Ibed95) - Die vom AE-Algorithmus unterstützten FPS-Bereiche können jetzt über
CameraInfo#getSupportedFrameRateRanges()
abgefragt werden. (Iaa67f) - Die Namen aller Methoden für die Bildrate werden in „FrameRate“ zusammengefasst. Korrigiere den Javadoc-Fehler in
VideoCapture#getTargetFrameRate()
(I83304) - Die alten APIs
setTargetAspectRatio
undsetTargetResolution
wurden eingestellt. Verwenden Sie stattdessen die neueResolutionSelector
API. (I542c3) - Öffentliche APIs für die gleichzeitige Verwendung von zwei Kameras hinzugefügt, darunter
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
undConcurrentCameraConfig
,SingleCameraConfig
undConcurrentCamera
(Iab1c1)
- Make
ImageProcessor.Response#getOutputImage
NonNull (Ib9c60) - Es wurden
VideoCapture
-Spiegelungs-APIs 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. Das heißt, die Vorschau der Rückkamera wird nicht gespiegelt, die Vorschau der Frontkamera jedoch schon. (I713b6, b/194634656) setTargetFrameRate()
API inVideoCapture.Builder
undgetTargetFramerate()
API inVideoCapture
hinzugefügt (I109d4)SurfaceOutput
wird von Closable abgeleitet und der öffentliche Konstruktor von SurfaceOutput.Event
wird ausgeblendet. (I60ea8)Recording.mute
wurde hinzugefügt, um eine in Bearbeitung befindliche Aufnahme dynamisch stummzuschalten oder die Stummschaltung aufzuheben.RecordingStats
enthältAudioStats.AUDIO_STATE_MUTED
, wenn die Aufzeichnung während der Verarbeitung explizit stummgeschaltet wird. (Ie17fc)- Der Parameter
#setEffects()
darf nicht null sein. Fügen Sie eine#clearEffects()
-API zum Entfernen von Effekten hinzu. Die App sollte#clearEffects()
aufrufen, um Effekte zu entfernen. (I4b4d9) - Fügen Sie einen zweiten Konstruktor für
ViewfinderSurfaceRequest.Builder
hinzu, um einen Builder für den Kopierkonstruktor zu verwenden (I621a7).
Fehlerkorrekturen
- Das Problem wurde behoben, dass Apps, die die Extensions API aufrufen, beim Schließen der Kamera abstürzen konnten (Ib27e5).
- Ein Problem wurde behoben, durch das
VideoCapture
auf einigen Geräten nicht mit der Frontkamera funktionierte. Zum Beispiel auf dem Samsung Galaxy S23 und dem Xiaomi 2107113SG. (Ibec7e, b/270656244) - Das Problem wurde behoben, dass das Aufnehmen von Bildern mit „Datei“ im öffentlichen Ordner des externen Speichers unter Android 10 oder höher immer fehlschlug. Unter Android 10 muss für das Aufnehmen von Bildern mit „File“ im öffentlichen Ordner des externen Speichers auch
requestLegacyExternalStorage
im Anwendungstag auf „true“ gesetzt werden. (I11b2c) - Ein
RejectedExecutionException
-Absturz inDefaultSurfaceProcessor
wurde behoben. Der Absturz kann auftreten, wennVideoCapture
gebunden ist und die Aktivität pausiert wird. (Idb46a, b/273713906)
Version 1.3.0-alpha05
22. März 2023
androidx.camera:camera-*:1.3.0-alpha05
wird veröffentlicht. Version 1.3.0-alpha05 enthält diese Commits.
API-Änderungen
- Es wurden APIs für die
VideoCapture
-Rotation hinzugefügt, 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 Ziel für Effekte zulassen Effekte, die aufVIDEO_CAPTURE
ausgerichtet sind, werden auf denVideoCapture
-Anwendungsfall angewendet. Effekte, die aufPREVIEW|VIDEO_CAPTURE
ausgerichtet sind, werden auf einen freigegebenen Stream angewendet, bevor sie in den Vorschau- undVideoCapture
-Stream kopiert werden. (Iee6f3)
Fehlerkorrekturen
- Kamera
1.2.2
: Das Problem, durch das CameraX-Erweiterungen auf einigen Geräten wie Pixel nicht richtig funktionierten, wenn ProGuard aktiviert war, wurde behoben (I90aa2). - Es wurde ein
PreviewView
-Fehler behoben, durch den die Vorschau bei einer Drehung verzerrt werden konnte, wenn die App die Bildschirmausrichtung selbst verarbeitet. Dies geschieht nur auf bestimmten Geräten. Der Fehler kann auf dem Pixel 4a, Pixel 5 und Pixel 6a reproduziert werden. (I14340, b/223488673)
Version 1.3.0-alpha04
22. Februar 2023
androidx.camera:camera-*:1.3.0-alpha04
wird veröffentlicht. Version 1.3.0-alpha04 enthält diese Commits.
Neue Funktionen
Eine neue Funktion, mit der bisher nicht unterstützte Surface-Kombinationen unterstützt werden, indem ein Stream für mehrere UseCases freigegeben wird.
- Bisher hat CameraX
IllegalArgumentException
ausgegeben, wenn „Preview, VideoCapture, ImageAnalysis“ auf der Kamera-Hardwareebene FULL und darunter oder „Preview, VideoCapture, ImageCapture“ auf der Hardwareebene LEGACY gebunden wurde. - Das neue Verhalten besteht darin, dass die Bindungen ohne Ausnahmen funktionieren. Stattdessen verwendet CameraX OpenGL, um einen freigegebenen Stream in Preview und VideoCapture zu kopieren.
- Da die Pufferkopie Kosten verursacht, kann es in der App zu einer erhöhten Latenz und einem erhöhten Stromverbrauch kommen.
API-Änderungen
- API zum Konvertieren von
ImageProxy
inBitmap
hinzufügen. Die unterstütztenImageProxy
-Formate sindImageFormat.YUV_420_888
undPixelFormat.RGBA_8888
. Wenn das Format ungültig ist, wirdIllegalArgumentException
ausgegeben. (Ic7110) - Fügen Sie
CoroutineCameraViewfinder
hinzu, um die Konfiguration des Suchers mithilfe von suspend-Funktionen in Kotlin zu unterstützen. (I657bc) - Fügen Sie einen neuen öffentlichen Konstruktor für
ViewfinderSurfaceRequest
hinzu. So haben Sie mehr Flexibilität, wenn der NutzerCameraCharacteristics
nicht angeben kann. (Ie6549)
Fehlerkorrekturen
- Der Absturz von Erweiterungen, der auf einigen Samsung-Geräten auftritt, wenn die App zu schnell pausiert und fortgesetzt wird (Iaca26), wurde behoben.
Version 1.3.0-alpha03
25. Januar 2023
androidx.camera:camera-*:1.3.0-alpha03
wird veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
CameraInfo.getIntrinsicZoomRatio
wurde hinzugefügt, um Informationen zum Sichtfeld relativ zur Standardkamera bereitzustellen. (Ib300c)CameraInfo.getLensFacing
wurde hinzugefügt, um Informationen zur Ausrichtung der Linse bereitzustellen.CameraSelector#LENS_FACING_EXTERNAL
wurde als experimentelle Funktion zum Auswählen externer Kameras hinzugefügt. (Icaf3e)- Fügen Sie
#setEffect()
zuCameraController
hinzu, um der Kameraausgabe Effekte hinzuzufügen. (I1d21f) - Fügen Sie die Methode
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. Mit dieser 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) Recorder.Builder#setTargetVideoEncodingBitRate
wurde hinzugefügt, um die ZielvideocodierungBitRate
festzulegen, undRecorder#getTargetVideoEncodingBitRate
, um die Bitrate der Zielvideocodierung abzurufen. (I5984d)
Fehlerkorrekturen
- Das Problem, dass
ImageCapture
fehlgeschlagen ist, wenn kein Blitzgerät vorhanden ist und der Blitzmodus aktiviert ist, wurde behoben. (I9e8b4, b/263391112) - Ein Problem mit beschädigten JPEG-Bildern wurde behoben, das beim Schreiben von Exif-Standortdaten auf einigen Samsung-Geräten mit Android 12 auftrat. (Ib7086, b/263747161, b/263289024)
- Wenn Sie die Taschenlampe/den Zoom vor Abschluss der Kamerainitialisierung einstellen, z.B. durch Aufrufen von
CameraController#enableTorch
, wird die ausstehende Aktion im Cache gespeichert und gesendet, sobald die Initialisierung abgeschlossen ist. (I11e92, b/264157663)
Version 1.3.0-alpha02
7. Dezember 2022
androidx.camera:camera-*:1.3.0-alpha02
wird veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
API-Änderungen
- Eine neue API zum Anwenden von Nachbearbeitungseffekten auf die Vorschauausgabe. (Ic17d5)
OutputOptions.getDurationLimit
wurde inOutputOptions.getDurationLimitMillis
undOutputOptions.setDurationLimit
inOutputOptions.setDurationLimitMillis
umbenannt. (I91f0c)- Die Klasse
AudioConfig
wurde hinzugefügt, um die audiobezogenen Einstellungen bei der Videoaufzeichnung zu verarbeiten. Die Annotation@RequiresPermission
wird vonstartRecording
-Funktionen zuAudioConfig
verschoben, um unnötige Berechtigungsanfragen in Fällen zu vermeiden, in denen Audio nicht erforderlich ist. (I28755) - Entfernen Sie die Klassen „Metadata“,
OnVideoSavedCallback
,OutputFileOptions
undOutputFileResults
, die nach der Anwendung der neuen Video Capture API nicht mehr verwendet werden. (I38cd8) - Wenden Sie die neue API für die Videoaufnahme an. Die Methoden
getVideoCaptureTargetSize
undsetVideoCaptureTargetSize
werden durch die MethodengetVideoCaptureTargetQuality
undsetVideoCaptureTargetQuality
ersetzt, dasetTargetResolution
nicht mehr unterstützt wird. (I2a1d5)
Fehlerkorrekturen
- Entfernen Sie die eingestellte
core.VideoCapture
API. (I531e0) - Das Problem, dass der
onError
-Callback nicht aufgerufen wird, wenn Fotos ohne die Speicherberechtigung aufgenommen werden, wurde behoben.(I936db, b/244807669) - Qualität und Zuverlässigkeit von Kameraerweiterungen verbessern Kameraerweiterungen sind auf Motorola-Geräten mit Kameraerweiterungen v1.1.0 und älter deaktiviert, da es Probleme mit der Bokeh-Unterstützung, der Bildaufnahme und der Vorschau gibt, die nicht fortgesetzt wird. (Id3ce3)
- Ein nativer Absturz wurde behoben, der auftrat, wenn das Zuschneiden von Videos über
ViewPort
auf Legacy-Geräten aktiviert war. (I16b8a, b/251357665)
Version 1.3.0-alpha01
9. November 2022
androidx.camera:camera-*:1.3.0-alpha01
wird veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
Camera-viewfinder
wurde offiziell veröffentlicht.Camera-viewfinder
bietet ein einfaches Sucher-Widget, mit dem der Kamera-Feed für Camera2 angezeigt werden kann. Ein Beispiel finden Sie im Beispielcode.
API-Änderungen
OutputOptions.setDurationLimit
wurde hinzugefügt, um das Festlegen eines Limits für die Videolänge zu ermöglichen. Die Aufnahme wird automatisch abgeschlossen, wenn das angegebene Zeitlimit überschritten wird. (I902a0)- Fehlerstatus für Audio bei Videoaufzeichnung hinzufügen
AudioStats.AUDIO_STATE_SOURCE_ERROR
Wird gesendet, wenn die Einrichtung der Audioquelle fehlschlägt oder ein Fehler auftritt. (I37410)
Fehlerkorrekturen
- Es wurde ein Quirk hinzugefügt, damit einige problematische Geräte die Aufnahme einmal wiederholen können, wenn Fehler auftreten. (Id4795)
- Problem mit schwarzem Bildschirm bei der Implementierung von
PreviewView
SurfaceView
aufViewPager2
behoben. Im Rahmen der Korrektur wirdPreviewView
dasSurfaceView
wiederverwenden, wenn die angeforderte Auflösung nicht geändert wird. (Ib3f27) - Unterstützung des Zuschneidens von Videos (WYSIWYG-Funktion) bei Verwendung der
ViewPort
- oderCameraController
-API. (Ifbba8, b/201085351) - Behoben: Videos, die mit der Frontkamera aufgenommen wurden, werden auf dem Huawei P40 Lite nicht aufgezeichnet. (I87c57, b/250807400)
Version 1.2
Version 1.2.3
24. Mai 2023
androidx.camera:camera-*:1.2.3
wird veröffentlicht. Version 1.2.3 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das
VideoCapture
auf einigen Geräten nicht mit der Frontkamera funktionierte. Zum Beispiel auf dem Samsung Galaxy S23 und dem Xiaomi 2107113SG. (Ibec7e, b/270656244)
Version 1.2.2
22. März 2023
androidx.camera:camera-*:1.2.2
wird veröffentlicht. Version 1.2.2 enthält diese Commits.
Fehlerkorrekturen
- Das Problem, durch das CameraX-Erweiterungen auf einigen Geräten wie Pixel nicht richtig funktionierten, wenn ProGuard aktiviert war (I90aa2), wurde behoben.
Version 1.2.1
25. Januar 2023
androidx.camera:camera-*:1.2.1
wird veröffentlicht. Version 1.2.1 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem mit beschädigten JPEG-Bildern wurde behoben, das beim Schreiben von Exif-Standortdaten auf einigen Samsung-Geräten mit Android 12 auftrat. (b/263289024)
Version 1.2.0
7. Dezember 2022
androidx.camera:camera-*:1.2.0
wird veröffentlicht. Version 1.2.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.1.0
- Neue Bibliothek „camera-mlkit-vision“ CameraX lässt sich problemlos in viele MLKit-Funktionen einbinden, darunter Barcode-Scanning, Gesichtserkennung und Texterkennung.
MLKitAnalyzer
wurde als neue APIs hinzugefügt. - Neue experimentelle API für die Funktion „Keine Auslöseverzögerung“. Optimiert die Aufnahmepipeline für eine bessere Latenz bei gleichbleibend guter Bildqualität. Wenn der Aufnahmemodus auf
CAPTURE_MODE_ZERO_SHUTTER_LAG
eingestellt ist, wird die Latenz zwischen dem Klicken auf den Auslöser und der Aufnahme des Bildes im Vergleich zu anderen Aufnahmemodi minimiert. Auf Geräten, dieZERO_SHUTTER_LAG
nicht unterstützen, wird aufCAPTURE_MODE_MINIMIZE_LATENCY
zurückgegriffen. android.camera.core.VideoCapture
einstellensetStreamUseCase()
wurde als öffentlicheCamera2Interop
API hinzugefügt.- Anforderung an das API-Level für
setOutputImageRotationEnabled
hinzugefügt. ImageAnalysis.Analyzer#getTargetResolutionOverride()
wurde inImageAnalysis.Analyzer#getDefaultTargetResolution()
umbenannt.- Es wurde eine API zum Festlegen von Standortmetadaten für das gespeicherte Video hinzugefügt.
- Die niedrige Framerate bei der Verwendung von
VideoCapture
und Vorschau-Anwendungsfällen mit einem Seitenverhältnis von 16:9 wurde behoben. - Das Problem mit der schwarzen Vorschau, das auftritt, wenn die BOKEH-Erweiterung auf einigen Samsung-Geräten aktiviert ist und der Nutzer die Kameras wechselt, wurde behoben.
- Das Problem mit dem gestreckten
Preview/VideoCapture
auf Geräten mit API-Level 27 wurde auf dem Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) behoben. - Der Workaround zum horizontalen Spiegeln des AF-Bereichs von Frontkameras auf Samsung-Geräten mit Android T wurde deaktiviert, da das Problem behoben wurde.
Version 1.2.0-rc01
24. Oktober 2022
androidx.camera:camera-*:1.2.0-rc01
wird veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
API-Änderungen
- Die
setStreamUseCase
API fürOutputConfiguration
hinzufügen. Der Nutzer kann den Stream-Anwendungsfall für die Streamsitzung angeben und so die interne Logik von CameraX zum Auswählen des Stream-Anwendungsfalls überschreiben, um den Stream entsprechend seinen Anforderungen zu optimieren. (Ib1a95)
Fehlerkorrekturen
- Das Problem mit dem gestreckten
Preview/VideoCapture
auf Geräten mit API-Level 27 wurde auf dem Samsung J7 Prime (SM-G610M) und J7 (SM-J710MN) behoben. Bei einer Auflösung von 1920 × 1080 werden 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) - Die niedrige Framerate bei der Verwendung von
VideoCapture
und Vorschau-Anwendungsfällen mit einem Seitenverhältnis von 16:9 auf einigen Huawei-Geräten wurde behoben. (If8c88, b/223643510) - Das Problem, dass die Kamera nicht geöffnet werden konnte, wenn
SurfaceProvider
für die Vorschau nicht festgelegt war, wurde behoben. Im Rahmen der Fehlerbehebung wird die Vorschau ohne festgelegtesSurfaceProvider
nicht mehr in der Kameraaufnahmesitzung konfiguriert. (I99681)
Version 1.2.0-beta02
21. September 2022
androidx.camera:camera-*:1.2.0-beta02
wird veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.
API-Änderungen
- Anforderung an das API-Level für
setOutputImageRotationEnabled
hinzufügen (I26e3e, b/240993561)
Fehlerkorrekturen
- Der Workaround zum horizontalen Spiegeln des AF-Bereichs von Frontkameras auf Samsung-Geräten mit Android T wurde deaktiviert, da das Problem behoben wurde. (I05f69)
- Das Problem mit der schwarzen Vorschau, das auftritt, wenn die
BOKEH
-Erweiterung auf einigen Samsung-Geräten aktiviert ist und der Nutzer die Kameras wechselt, wurde behoben. (If6168)
Version 1.2.0-beta01
24. August 2022
androidx.camera:camera-*:1.2.0-beta01
wird veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Neue Bibliothek
camera-mlkit-vision
. CameraX lässt sich ganz einfach in viele MLKit-Funktionen einbinden, darunter Barcode-Scanning, Gesichtserkennung und Texterkennung. Hier finden Sie den Beispielcode. - Neue experimentelle Zero-Shutter Lag API Optimiert die Aufnahmepipeline für eine bessere Latenz bei gleichbleibend guter Bildqualität. Wenn der Aufnahmemodus auf CAPTURE_MODE_ZERO_SHUTTER_LAG festgelegt ist, sollte die Latenz zwischen dem Klicken auf den Auslöser und der Aufnahme des Bilds im Vergleich zu anderen Aufnahmemodi minimiert werden. Auf Geräten, die ZERO_SHUTTER_LAG nicht unterstützen, wird auf CAPTURE_MODE_MINIMIZE_LATENCY zurückgegriffen.
ImageAnalysis.Analyzer
undMLKitAnalyzer
sind jetzt offizielle APIs.- Die API zum Festlegen von Standortmetadaten für das gespeicherte Video wurde offengelegt.
- Benennen Sie
ImageAnalysis.Analyzer#getTargetResolutionOverride()
inImageAnalysis.Analyzer#getDefaultTargetResolution()
um.
Fehlerkorrekturen
- Ein Problem beim Erfassen von Bildern mit der Alps k61v1_basic_ref-Kamera wurde behoben. Die aufgenommenen JPEG-Bilder aus HAL haben falsche Exif-Metadaten. Die Exif-Metadaten enthalten nicht das Tag „0xffd9“ oder „0xffda“, damit
ExifInterface
die Attribute richtig parsen kann. Die Bilder werden im YUV-Format aufgenommen und dann in JPEG-Ausgabebilder komprimiert, um dieses Problem zu umgehen. (I45abb)
Version 1.2.0-alpha04
27. Juli 2022
androidx.camera:camera-*:1.2.0-alpha04
wird veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.
API-Änderungen
- Benennen Sie
ImageAnalysis.Analyzer#getTargetResolutionOverride()
inImageAnalysis.Analyzer#getDefaultTargetResolution()
um. Das Verhalten wurde auch so geändert, dass der von dieser Methode zurückgegebene Wert durch den Wert vonImageAnalysis#setTargetResolution()
überschrieben werden kann. (If1d36) - Die API zum Festlegen von Standortmetadaten für das gespeicherte Video wurde offengelegt. Ein
android.location.Location
-Objekt kann über die neue APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
festgelegt werden. (I313a0, b/204197544)
Fehlerkorrekturen
- Problem behoben, bei dem Fotos mit der Funktion „Vorschau entbinden“ nicht aufgenommen werden konnten (Ie70b6, b/235119898)
- Ein Absturz in
Recorder
beim Versuch, eine Aufnahme zu starten, wenn die Audioquelle nicht verfügbar ist, wurde behoben. (I9f652)
Version 1.2.0-alpha03
29. Juni 2022
androidx.camera:camera-*:1.2.0-alpha03
wird veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.
API-Änderungen
- Die experimentelle Annotation für
ImageAnalysis.Analyzer
undMLKitAnalyzer
wurde entfernt. (I0ff22)
Fehlerkorrekturen
- Das Standard-Zeitlimit für den Autofokus wurde auf 5.000 ms festgelegt. Der Autofokus wird mit
isFocusSuccessful
false abgeschlossen, wennFocusMeteringAction
nicht abgebrochen wird und der Autofokus innerhalb des Zeitlimits nicht konvergiert. (Ibc2e3) - Problem behoben, bei dem Fotos mit der Funktion „Vorschau entbinden“ nicht aufgenommen werden konnten (I1d3a2, b/235119898)
- Erweiterte Extender-Implementierung aktiviert und die Version der CameraX-Support-Extensions-Schnittstelle auf 1.2 aktualisiert (I92256)
Version 1.2.0-alpha02
1. Juni 2022
androidx.camera:camera-*:1.2.0-alpha02
wird veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
Neue Funktionen
- Die CameraX Zero-Shutter Lag API wird als experimentell verfügbar gemacht.
API-Änderungen
- Der neue Aufnahmemodus
CAPTURE_MODE_ZERO_SHUTTER_LAG
wurde inImageCapture
hinzugefügt undisZslSupported
inCameraInfo
, um die Gerätefunktion abzufragen. ImCAPTURE_MODE_ZERO_SHUTTER_LAG
-Modus wird die Latenz für die sofortige Aufnahme minimiert. Sie basiert auf einem Ringpuffer, in dem Zwischenergebnisse der Aufnahme für die spätere Verarbeitung zwischengespeichert werden, wenn der Nutzer auf die Schaltflächen drückt, um Fotos aufzunehmen. Wenn {@link VideoCapture} gebunden ist oder der Blitzmodus nicht OFF ist oder die OEM-Erweiterung ON ist, wird dieser Modus automatisch deaktiviert. (I9ae74) - Methode
ImageAnalysis.getBackgroundExecutor()
hinzufügen (Icc945)
Fehlerkorrekturen
- Der Fehler, dass die Taschenlampe bei Verwendung der Methode
ImageCapture
takePicture auf den betroffenen Geräten ausgeschaltet wird, wurde behoben. (Ib5eb5, b/228272227) - Ein Fehler wurde behoben, bei dem
AssertionError
beim Abrufen des MerkmalsCONTROL_ZOOM_RATIO_RANGE
nicht verarbeitet wurde.(/Ia248a, b/231701345)
Version 1.2.0-alpha01
18. Mai 2022
androidx.camera:camera-*:1.2.0-alpha01
wird veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
- Neue Bibliothek „camera-mlkit-vision“ wird eingeführt
Fehlerkorrekturen
- Problem behoben:
QualitySelector
zeichnet kein UHD-Video auf, wenn eine Fallback-Strategie aktiviert ist. Das Problem tritt auf, wennVideoCapture
anImageCapture
und die Vorschau auf einem Kameragerät mit FULL- oder höherem Hardwarelevel gebunden 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 aus Anwendungsfällen unterstützt und sollte verwendet werden. (I0e788, b/230651237) - Behoben am
ImageCapture.takePicture()
:NullPointerException
. (I92366, b/230454568, b/229766155) - Asynchrones Pausieren von
androidx.camera.video.Recorder
(Ia8ce8) korrigieren
Camera-Camera2, Camera-Core, Camera-Lifecycle und Camera-Video Version 1.1.0
Version 1.1.0
29. Juni 2022
androidx.camera:camera-*:1.1.0
wird veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
- Die Bibliotheken „Landed View“, „Extension“ und „Video Capture“ sind jetzt als erste RC-Version verfügbar. Ab Version 1.1.0-beta01 haben alle CameraX-Bibliotheken dieselbe Versionsnummer. So können Entwickler Versionen viel einfacher nachverfolgen und die Komplexität großer Versionskompatibilitätsmatrizen wird reduziert.
- Es wurden neue öffentliche APIs und Funktionen eingeführt, darunter:
- Fügen Sie die offizielle Kamera-Videobibliothek hinzu, um Anwendungsfälle für die Videoaufnahme zu unterstützen.
- YUV-zu-RGB-Konvertierung und Drehung (
ImageAnalysis.Builder.setOutputImageRotationEnabled
undsetOutputImageFormat
) - Unterstützung des Mehrfenstermodus durch die Möglichkeit, dass CameraX-Anwendungen die Kamera fortsetzen, wenn die Kamera durch eine andere App unterbrochen wird und der Fokus zurückkehrt.
- CameraX funktioniert jetzt auch auf faltbaren Geräten gut, da einige Probleme mit der Vorschau behoben wurden.
- Es wurde eine
CameraState
API hinzugefügt, die über CameraInfo verfügbar gemacht wird. - Es wurde eine API
ProcessCameraProvider.getAvailableCameraInfos()
hinzugefügt, mit der Informationen zu den verfügbaren Kameras direkt abgerufen werden können. - Ausgabe im JPEG-Format für
ImageCapture#OnImageCapturedCallback
, wenn Erweiterungen aktiviert sind. - Die API
isFocusMeteringSupported
wurde inCameraInfo
hinzugefügt. Damit können Anwendungen prüfen, ob die angegebeneFocusMeteringAction
von der aktuellen Kamera unterstützt wird. - Die
getResolutionInfo
API wurde bereitgestellt, um die Auflösungsinformationen für die Vorschau,ImageCapture
undImageAnalysis
bereitzustellen. - Es wurde eine neue API
ImageCapture.Builder#setJpegQuality
hinzugefügt, mit der die Komprimierungsqualität des ausgegebenen JPEG-Bilds beim Aufnehmen von Fotos geändert werden kann. CameraSelector#filter
wurde der öffentlichen API hinzugefügt, um eine Liste vonCameraInfos
nach einemCameraSelector
zu filtern.- Die Option
Camera2CameraControl.clearCaptureRequestOptions
zum Löschen der vorhandenen Optionen für die Erfassungsanfrage wurde hinzugefügt. - Es wurde eine experimentelle API für die Verwendung von
CameraController
mit externen Bildverarbeitungsbibliotheken wie MLKit hinzugefügt. - Die experimentelle API
CameraInfo#getCameraSelector()
wurde hinzugefügt. Sie gibt eineCameraSelector
zurück, die für die jeweilige Kamera eindeutig ist. - Mehrere experimentelle APIs wurden zu offiziellen öffentlichen APIs hochgestuft.
- Die Anmerkung
@Experimental
wurde durch@RequiresOptIn
für experimentelle APIs ersetzt. Verwenden Sie zum Aufrufen experimenteller APIs androidx.annotation.OptIn anstelle des eingestellten androidx.annotation.experimental.UseExperimental. - Die folgenden experimentellen APIs wurden zu offiziellen APIs hochgestuft:
CameraXConfig.Builder#setAvailableCamerasLimiter()
,CameraXConfig.Builder#setMinimumLoggingLevel()
,CameraXconfig.Builder#setSchedulerHandler()
,CameraXConfig#getAvailableCamerasLimiter()
,CameraXConfig#getMinimumLoggingLevel()
,CameraXConfig#getCameraExecutor()
,CameraXConfig#getSchedulerHandler()
, @ExperimentalCameraFilter
-APIs- experimentelle APIs zur Belichtungskorrektur.
- Die experimentelle
UseCaseGroup
API für camera-core, camera-lifecycle und camera-video wurde beworben.ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
undViewPort.Builder#setScaleType
zum Anpassen des Viewports hinzugefügt. - Die
ExperimentalUseCaseGroupLifecycle
wurden zu offiziellen öffentlichen APIs befördert. - Änderungen an den vorhandenen APIs
- Zum
MediaStoreOutputOptions.getCollectionUri
Renamed MediaStoreOutputOptions.getCollection
. ActiveRecording
wurde in „Aufzeichnung“ umbenannt, um die Länge zu reduzieren.QualitySelector
Creator API in eine listenbasierte API geändert
Fehlerkorrekturen
- Das Problem mit
YuvToJpegProcessor
EOFException
wurde behoben, wenn der Erweiterungsmodus aktiviert und derImageCapture#CAPTURE_MODE_MAX_QUALITY
-Modus festgelegt ist. - Die Konfiguration des festen Codecs ist fehlgeschlagen, weil die Videoaufzeichnung beendet wird.
- Das Problem, dass das Seitenverhältnis von Vorschau und Video beim Aufzeichnen in FHD gestreckt wurde, wurde behoben.
- Behoben: Audio und Video sind nach dem Pausieren und Fortsetzen auf einigen Geräten nicht synchron
- Das Problem wurde behoben, bei dem der Blitz beim Tippen zum Fokussieren (
startFocusAndMetering
) ausgelöst wurde, wenn der Blitzmodus in einer Umgebung mit wenig Licht auf „Automatisch“ oder „Immer an“ eingestellt war.
Version 1.1.0-rc02
1. Juni 2022
androidx.camera:camera-*:1.1.0-rc02
wird veröffentlicht. Version 1.1.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Behoben am
ImageCapture.takePicture()
:NullPointerException
. (I92366, b/230454568, b/229766155) - Ein Fehler wurde behoben, bei dem
AssertionError
beim Abrufen des MerkmalsCONTROL_ZOOM_RATIO_RANGE
nicht verarbeitet wurde. (Ia248a, b/231701345)
Version 1.1.0-rc01
11. Mai 2022
androidx.camera:camera-*:1.1.0-rc01
wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Neue Funktionen
- Erste RC-Version für „camera-video“, „camera-view“ und „camera-extension“ veröffentlicht
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem der Videocodec nicht freigegeben wurde, wenn
VideoCapture<Recorder>
entbunden wurde. Dies führte dazu, dass die nachfolgende Verwendung vonVideoCapture<Recorder>
bei der Aufnahme mitMediaCodec.CodecException
fehlschlug, insbesondere auf Geräten mit API 21–22. (Ie7f68) - Aufgenommene Bilder von
CameraExtensionsActivity
werden inImageCaptureTest
nicht gelöscht
Version 1.1.0-beta03
6. April 2022
androidx.camera:camera-*:1.1.0-beta03
wird veröffentlicht. Version 1.1.0-beta03 enthält diese Commits.
API-Änderungen
- Der Konstruktor
CaptureRequestOptions
wurde eingeschränkt. (I261b6) - Es wurde eine experimentelle API für die Verwendung von
CameraController
mit externen Bildverarbeitungsbibliotheken hinzugefügt, z. B.MLKit (I4ea71).
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das die Vorschau in
PreviewView
seitlich angezeigt wurde, wenn die Aktivität nach dem Drehen von Geräten im Mehrfenstermodus nicht neu gestartet wurde. (I1ea36, b/223488673) - Ein Problem mit dem Mehrfenstermodus wurde behoben, bei dem die Kamera nicht fortgesetzt wurde, wenn der Fokus wieder auf die App wechselte, wenn (1) eine andere App mit hoher Priorität eine andere Kamera öffnete und (2) das Gerät ein Samsung-Gerät mit Android 12 war. (I7e9f2)
- Es wurde eine Problemumgehung für Geräte hinzugefügt, die abstürzen, wenn die Verfügbarkeit von Flash geprüft wird. Auf diesen Geräten ist keine Taschenlampe verfügbar. (If26a3, b/216667482)
- Das Problem
AbstractMethodError
wurde behoben, das auftrat, wenn Apps Erweiterungen verwenden und ProGuard aktiviert ist. (I7cbaf, b/222726805) - Erzwingen Sie die Deaktivierung des Bokeh-Erweiterungsmodus auf dem Motorola Razr 5G, um das Problem mit dem schwarzen Vorschaubildschirm zu reproduzieren. (I35d49)
- Das Problem, dass Audio und Video auf einigen Samsung-Geräten vor API 29 nach dem Pausieren und Fortsetzen nicht synchron waren, wurde behoben. (I64622, b/202798609, b/202798572)
- Das Problem, dass Audio und Video nach dem Pausieren und Fortsetzen auf dem Sony G3125 nicht synchron waren, wurde behoben. (I2a1a5, b/202799148)
- Ein Fehler wurde behoben, der zum Absturz des Recorders führte, wenn er auf ein
InvalidConfigException
stieß. Dieser Fix verhindert jedoch nur, dass die App abstürzt, behebt aber nicht die Ursache desInvalidConfigException
. Wenn dieRecorder
immer noch nicht konfiguriert werden kann, erhalten Anwendungen beim Starten der Aufzeichnung einen Fehler-Callback. (I89c29, b/213617227)
Externe Beiträge
- Die API :compose:ui:ui-test wurde aufgrund der Migration der Test-Coroutines-Bibliothek (I3366d) aktualisiert (updateApi).
Version 1.1.0-beta02
23. Februar 2022
androidx.camera:camera-*:1.1.0-beta02
wird veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
API-Änderungen
- Es wurde die Möglichkeit hinzugefügt, die physische Kamera-ID über Camera2Interop anzugeben. (I5aed8)
Fehlerkorrekturen
- Das Problem mit der gestreckten Vorschau auf dem Oppo Find N (I7d004) wurde behoben.
- Es wurde ein Problem mit dem Galaxy J7 Prime behoben, bei dem die Vorschau verzerrt war. (I4c500)
- Verwende eine kompatible Bitrate, um einen Video-Encoder zu finden. (d969052)
Version 1.1.0-beta01
26. Januar 2022
androidx.camera:camera-*:1.1.0-beta01
wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
Neue Funktionen
- Ab Version 1.1.0-beta01 haben alle CameraX-Bibliotheken dieselbe Versionsnummer. So können Entwickler Versionen viel einfacher nachverfolgen und die Komplexität großer Versionskompatibilitätsmatrizen wird reduziert.
API-Änderungen
Camera2CameraControl.clearCaptureRequestOptions
wurde hinzugefügt, um die vorhandenen Optionen für die Aufnahmeanfrage zu löschen. (Ifa07d)
Fehlerkorrekturen
- Der Absturz beim Aufzeichnen von Videos auf einigen Geräten vor Android O(API 26) wurde behoben. (I88fdf, b/212328261)
- Das Problem mit der falschen AF-Region bei Verwendung von
cameraControl#startFocusAndMetering()
auf der nach vorn gerichteten Kamera von Samsung-Geräten wurde behoben (Ifbf59, b/210548792). - Die Taschenlampe als Blitz auf dem Pixel 3a/Pixel 3a XL verwenden, um die Geschwindigkeit und die Qualität der aufgenommenen Bilder in dunkler Umgebung zu verbessern (Ib12b6, b/211474332)
- Aktivierte Anwendungen können die Kamera fortsetzen, wenn die Kamera im Mehrfenstermodus durch eine andere Anwendung mit höherer Priorität unterbrochen wird und der Fokus wieder auf die Anwendung wechselt. Bitte beachten Sie, dass es aufgrund eines Framework-Problems zu einer gewissen Latenz(1 bis 10 Sekunden oder mehr) zwischen Fokusänderungen und dem erneuten Öffnen der Kamera kommen kann. (I4d092)
Version 1.1.0-alpha12
15. Dezember 2021
androidx.camera:camera-*:1.1.0-alpha12
wird veröffentlicht. Version 1.1.0-alpha12 enthält diese Commits.
API-Änderungen
- Unnötige
@RequiresApi(21)
-Annotationen aus den inneren Klassen/Schnittstellen wurden entfernt. (I8e286, b/204917951) - Die Qualitätskonstanten und Fallback-Strategiekonstanten von
QualitySelector
werden jetzt durch Klassenobjekte dargestellt. Beispiel:QualitySelector.QUALITY_HD
wird inQuality.HD
geändert undQualitySelector.FALLBACK_STRATEGY_LOWER
in die Instanz, die vonFallbackStrategy.lowerQualityOrHigherThan(Quality)
zurückgegeben wird. Die API zum Erstellen vonQualitySelector
wurde in eine listenbasierte API geändert. Die neue APIQualitySelector.fromOrderedList(List<Quality>)
bezieht sich auf die Reihenfolge der Eingabequalitätsliste und nicht auf die Reihenfolge, die vonQualitySelector.Procedure
erstellt wurde. Der Kurs „QualitySelector.Procedure
“ wurde entfernt. (I43343) PendingRecording.withEventListener()
wurde entfernt und der Event-Listener muss jetzt anPendingRecording.start()
übergeben werden. Diese Anforderung für Event-Listener soll dazu anregen, asynchrone Fehler zu behandeln, die imVideoRecordEvent.Finalize
-Ereignis gemeldet werden. (I1e71d)ActiveRecording
wurde inRecording
umbenannt, um die Ausführlichkeit zu reduzieren. (I77ceb)
Fehlerkorrekturen
- Das Problem, dass auf dem Pixel 3a und Pixel 3a XL im
FLASH_AUTO
-Modus aufgenommene Fotos bei Dunkelheit unterbelichtet sind, wurde behoben (I13f19, b/205373142). - Verwenden Sie immer die aktuelle Displaygröße, um die Vorschau
Resolution
zu bestimmen. (I4a694) - Kameras ohne
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
wurden herausgefiltert. Kameras mitREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
haben die Mindestanzahl an Funktionen, die jedes Kameragerät unterstützt. Eine Kamera ohneREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
kann eine Kamera sein, die spezielle Funktionen unterstützt und keine Standardfarbausgabe unterstützt.CameraX
kann die AnwendungsfällePreview
,ImageCapture
,ImageAnalysis
oderVideoCapture
für diese Kameras nicht unterstützen. Daher sollten diese Kameras herausgefiltert werden, um eine falsche Verwendung zu verhindern. (Ib8cda) CameraSelector#filter
löst nicht mehr die AusnahmeIllegalArgumentException
aus, wenn das Ergebnis-Set leer ist. (I27804)- Es werden jetzt intelligentere Heuristiken verwendet, um Encoder-Einstellungen basierend auf den vom OEM angegebenen Profilen auszuwählen. (Iaeef0)
- Bei der Vorschau werden nach dem Start der UHD-Videoaufzeichnung auf dem Pixel 1 verschachtelte Farblinien angezeigt. (I833c6, b/205340278)
Version 1.1.0-alpha11
17. November 2021
androidx.camera:camera-*:1.1.0-alpha11
wird veröffentlicht. Version 1.1.0-alpha11 enthält diese Commits.
API-Änderungen
- CameraSelector#filter wurde der öffentlichen API hinzugefügt, um eine Liste von CameraInfos basierend auf einem CameraSelector zu filtern. (I105d0)
Die API „setOutputImageRotationEnabled“ für die ImageAnalysis-Konfiguration wurde hinzugefügt. Nutzer können die Rotation für den YUV-/RGB-Bildpuffer aktivieren. Der Drehwinkel ist eine relative Drehung, die auf der Grundlage der Sensordrehung und der Zieldrehung berechnet wird, um das Bild nach vorn zu richten.
Die API „setOutputImageRotationEnabled“ für die ImageAnalysis-Konfiguration wurde hinzugefügt. Nutzer können die Rotation für den YUV-/RGB-Bildpuffer aktivieren. Der Drehwinkel ist eine relative Drehung, die auf der Grundlage der Sensordrehung und der Zieldrehung berechnet wird, um das Bild nach vorn zu richten.
Die
getSensorToBufferTransformMatrix
API wurde in ImageInfo hinzugefügt. Die zurückgegebene Matrix ist eine Zuordnung von Sensorkoordinaten zu Pufferkoordinaten, d. h. vom Wert vonCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
zu(0, 0, image.getWidth, image.getHeight)
. Mithilfe der Matrix können die Koordinaten von einem {UseCase} in einen anderen übertragen werden. Beispiel: Koordinaten des mit ImageAnalysis erkannten Gesichts werden Preview zugeordnet. (I9ff1e)Es wurde eine neue API „ImageCapture.Builder#setJpegQuality“ hinzugefügt, mit der die Komprimierungsqualität des ausgegebenen JPEG-Bilds beim Aufnehmen eines Fotos geändert werden kann. (I8dcf4)
MediaStoreOutputOptions.getCollection wurde in MediaStoreOutputOptions.getCollectionUri umbenannt. (I16639)
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das der Blitz beim Tippen zum Fokussieren (startFocusAndMetering) ausgelöst wurde, wenn der Blitzmodus in einer Umgebung mit wenig Licht auf „Auto“ oder „Immer an“ eingestellt war. (Id4c11)
- HDR+ auf dem Pixel 2 XL / Pixel 3 XL im Modus MINIMIZE_LATENCY deaktiviert, um die Latenz zu verringern. (Ib6270, b/203505523)
Externe Beiträge
Version 1.1.0-alpha10
13. Oktober 2021
androidx.camera:camera-*:1.1.0-alpha10
wird veröffentlicht. Version 1.1.0-alpha10 enthält diese Commits.
Neue Funktionen
androidx.camera:camera-video:1.1.0-alpha10
wurde als erste offizielle Alphaversion für Video veröffentlicht. Es gibt mehrere bekannte Probleme, die in späteren Versionen behoben werden.
API-Änderungen
- Die Annotation
@RequiresApi(21)
wurde allen CameraX-Klassen hinzugefügt und „minSdkVersion“ wurde aus „AndroidManifest.xml“ entfernt. Dadurch kann „camera-core“ problemlos in Anwendungen mit einem minSdkVersion unter 21 eingebunden werden, die jedoch bedingt Codepfade verwenden möchten, die auf API 21 und höher basieren. Bei Apps mit minSdkVersion 21 oder höher ist keine Aktion erforderlich. (Ie7f2e, b/200599470)
Fehlerkorrekturen
- Lösen Sie eine „InitializationException“ aus, damit die App den „AssertionError“ beim Erstellen von „CameraCharacteristics“ ordnungsgemäß verarbeiten kann. (Ibec79)
Version 1.1.0-alpha09
29. September 2021
androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
und androidx.camera:camera-lifecycle:1.1.0-alpha09
sind veröffentlicht. Version 1.1.0-alpha09 enthält diese Commits.
API-Änderungen
- Die Annotation „ExperimentalUseCaseGroup“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I01ef5)
Fehlerkorrekturen
- Das Problem, dass aufgenommene Fotos im
MAXIMIZE_QUALITY
-Modus unscharf sind, wurde behoben. (I173a9, b/193823892) - Ein Problem mit dem Samsung Galaxy J5 wurde behoben, bei dem die Kamera hängen blieb, nachdem Fotos mit Blitz in einer dunklen Umgebung aufgenommen wurden (I3aab9).
- Wenn für ImageCapture ein Zuschneiden erforderlich ist, wird das zugeschnittene Ausgabebild mit der angegebenen JPEG-Qualitätsstufe entsprechend dem festgelegten Aufnahmemodus komprimiert. Wenn der Aufnahmemodus
CAPTURE_MODE_MINIMIZE_LATENCY
ist, beträgt die JPEG-Komprimierungsqualität 95. Wenn der 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
sind veröffentlicht. Version 1.1.0-alpha08 enthält diese Commits.
Neue Funktionen
- Die API „setOutputImageFormat“ für die Konfiguration der Bildanalyse wurde hinzugefügt. Der Nutzer kann ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 oder ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888 auswählen. Standardmäßig ist ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 ausgewählt. (I7902d)
API-Änderungen
- Die Annotation „ExperimentalUseCaseGroupLifecycle“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I17b85)
Fehlerkorrekturen
- Das Problem, dass der Vorschaubildschirm auf dem Huawei P20 Lite zu hell ist, wurde behoben. Dieses Problem tritt nur auf, wenn bestimmte spezielle Vorschauauflösungen zusammen mit einem hohen Zoomwert verwendet werden. (Idefce, b/192129158)
- Es wurde ein Problem behoben, bei dem der Blitz auf einigen Geräten nicht funktionierte, wenn der Blitzmodus kurz vor dem Aufnehmen von Fotos auf FLASH_MODE_ON gesetzt wurde. (Ieb49b)
- Das Problem, dass die Vorschau beim Aufnehmen von Bildern für eine Weile angehalten wurde, wenn VideoCapture, ImageCapture und Preview gebunden waren, wurde behoben. (I56197, b/193864120)
- Ermöglicht ImageAnalysis, eine Auflösung von mehr als 1080p auszuwählen. Ein Gerät mit LIMITED-Level kann eine RECORD-Auflösung für ImageAnalysis unterstützen, wenn es zusammen mit Preview und ImageCapture verwendet wird. Die ausgewählte Auflösung für ImageCapture muss auch eine RECORD-Größenauflösung sein. Damit Sie für ImageAnalysis erfolgreich eine RECORD-Größenauflösung auswählen können, muss sowohl für ImageCapture als auch für ImageAnalysis eine RECORD-Größenzielauflösung festgelegt werden. Das bedeutet, dass die Anwendung den Kompromiss versteht und eine höhere Auflösung für die Bildanalyse gegenüber einer MAXIMALEN Auflösung für die Bildaufnahme bevorzugt. Definitionen von RECORD, MAXIMUM und weitere Informationen finden Sie unter https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Die RECORD-Größe bezieht sich auf die maximale unterstützte Aufnahmeauflösung des Kamerageräts, die durch CamcorderProfile bestimmt wird. Die MAXIMALE Größe bezieht sich auf die maximale Ausgabegröße des Kamerageräts für dieses Format oder Ziel aus StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
- Fügen Sie dem aufgenommenen Bild die EXIF-Informationen hinzu. (I01ff0, b/193342619)
- Geben Sie in ImageCapture den URI des gespeicherten Bildes zurück, wenn der Speicherort „File“ ist. (Ib5b49, b/149241379)
- Ein Problem wurde behoben, bei dem mit Blitz aufgenommene Bilder auf vielen Geräten dunkel waren. (I4e510)
Version 1.1.0-alpha07
21. Juli 2021
androidx.camera:camera-camera2:1.1.0-alpha07
, androidx.camera:camera-core:1.1.0-alpha07
und androidx.camera:camera-lifecycle:1.1.0-alpha07
sind veröffentlicht. Version 1.1.0-alpha07 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem mit dem Samsung Galaxy Note 5 wurde behoben, bei dem die Kamera hängen blieb, nachdem Fotos mit Blitz in einer dunklen Umgebung aufgenommen wurden (If6871).
- Das Problem mit der
YuvToJpegProcessor
-EOFException wurde behoben, wenn der Erweiterungsmodus aktiviert und derImageCapture#CAPTURE_MODE_MAX_QUALITY
-Modus festgelegt ist. (I538bd, b/192017012)
Version 1.1.0-alpha06
30. Juni 2021
androidx.camera:camera-camera2:1.1.0-alpha06
, androidx.camera:camera-core:1.1.0-alpha06
und androidx.camera:camera-lifecycle:1.1.0-alpha06
sind veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.
API-Änderungen
- Bewerben der experimentellen APIs zur Belichtungskorrektur für camera-core (I08ee8)
- Die API „isFocusMeteringSupported“ wurde in „CameraInfo“ hinzugefügt. Damit können Anwendungen prüfen, ob die angegebene „FocusMeteringAction“ von der aktuellen Kamera unterstützt wird. (Ib45ae, b/188606490)
- Die API „getResolutionInfo“ wurde bereitgestellt, um die Auflösungsinformationen für „Preview“, „ImageCapture“ und „ImageAnalysis“ bereitzustellen. (I2b613, b/188600718)
- Die folgenden experimentellen APIs wurden zu offiziellen APIs hochgestuft: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
- Die CameraProvider-Schnittstelle wurde bereitgestellt, um Zugriff auf eine Reihe von Kameras zu ermöglichen. (I1a7b1)
- Die experimentelle UseCaseGroup API für camera-core, camera-lifecycle und camera-video wird beworben.
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
undViewPort.Builder#setScaleType
zum Anpassen des Viewports hinzugefügt. (I7cee8)
Version 1.1.0-alpha05
2. Juni 2021
androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
und androidx.camera:camera-lifecycle:1.1.0-alpha05
sind veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.
API-Änderungen
- Die Klasse
Camera2CameraFilter
wurde entfernt. Schlage vor, die Kamera über CameraFilter auszuwählen und bei Bedarf CameraCharacteristics oder andere Camera2-bezogene Informationen über Camera2CameraInfo abzurufen. (Ib887c) - Die
ExperimentalCameraFilter
-APIs sind jetzt nicht mehr experimentell, sondern offizielle APIs. Sie können ohne annotiertes Opt-in verwendet werden. (I4bc94) - Es wurde eine API für den Kamerastatus hinzugefügt, die über
CameraInfo#getCameraState()
verfügbar ist. (Ia86b4) - Die experimentelle API
CameraInfo#getCameraSelector()
wurde hinzugefügt, die einen CameraSelector zurückgibt, der für die jeweilige Kamera eindeutig ist (I77f9f).
Fehlerkorrekturen
- Das Problem, dass ListenableFuture, das in setZoomRatio und setLinearZoom zurückgegeben wird, auf einigen Android 11-Geräten nicht abgeschlossen werden kann, wurde behoben (I716d7).
- Kamerawechsel beschleunigen und die Fehlerrate des Kamerageräts reduzieren (I34c99)
- „ExperimentalUseCaseGroupLifecycle“ wurde durch „ExperimentalUseCaseGroup“ ersetzt. (I3b2ef, b/159033688)
Version 1.1.0-alpha04
21. April 2021
androidx.camera:camera-camera2:1.1.0-alpha04
, androidx.camera:camera-core:1.1.0-alpha04
und androidx.camera:camera-lifecycle:1.1.0-alpha04
sind veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
Fehlerkorrekturen
- Ein Speicherleck wurde behoben, das durch mehrere Threads verursacht wurde, die gleichzeitig auf dieselbe Sammlung zugreifen. Das Speicherleck kann dazu führen, dass die Aktivität oder das Fragment von einer Preview-Instanz beibehalten wird. (I7b4b8)
- Die Anmerkung
@Experimental
wurde durch@RequiresOptIn
für experimentelle APIs ersetzt. Verwenden Sie zum Aufrufen experimenteller APIsandroidx.annotation.OptIn
anstelle des eingestelltenandroidx.annotation.experimental.UseExperimental
. (Iff226) - Das Problem, dass mit ImageCapture bei eingeschaltetem oder automatischem Blitz auf dem Samsung Galaxy S7 ausgewaschene Bilder aufgenommen werden, wurde behoben. (I30001)
- Es wurde eine CameraState API hinzugefügt, die über CameraInfo verfügbar gemacht wird. (I75392)
Version 1.1.0-alpha03
24. März 2021
androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
und androidx.camera:camera-lifecycle:1.1.0-alpha03
sind veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.
Fehlerkorrekturen
- Gibt das JPEG-Format für
ImageCapture#OnImageCapturedCallback
aus, wenn der Erweiterungsmodus aktiviert ist. (I0d7b1) - Fehler bei der Initialisierung auf UMIDIGI BISON-Geräten behoben (I57d9e, b/180818665)
- Es wurde ein Problem behoben, bei dem die Vorschau auf dem Samsung A3 in PreviewView gestreckt dargestellt wurde. (Iacb30, b/180121821)
Version 1.1.0-alpha02
24. Februar 2021
androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
und androidx.camera:camera-lifecycle:1.1.0-alpha02
sind veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
API-Änderungen
- Eine API
ProcessCameraProvider.getAvailableCameraInfos()
wurde hinzugefügt, um Informationen zu den verfügbaren Kameras direkt abzurufen. Das sind entweder alle Kameras des Geräts oder die Kameras, die durch den inCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
bereitgestelltenCameraSelector
ausgewählt wurden. (Ieac08)
Fehlerkorrekturen
- CameraX versucht jetzt, beim ersten Versuch eine Kamera zu öffnen. Das kann dazu führen, dass CameraX die Kamera von anderen Kameraclienten übernimmt, wenn die App eine höhere Priorität hat. (Iab069, b/175820568)
- Der Robolectric-Test schlägt nicht mehr fehl, wenn „setAvailableCamerasLimiter“ in „CameraXConfig“ verwendet wird. (Ice307)
- Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt abzustürzen, können andere Anwendungsfälle eingefroren oder langsam sein, z. B. eine eingefrorene oder langsame Vorschau. (Ic12da, b/175851631)
- Es wurde ein Fehler im ExtensionsErrorListener behoben, der dazu führte, dass Fehler gemeldet wurden, wenn nur Preview oder ImageCapture gebunden war. (I5ae39)
- Die Leistungsbeeinträchtigung von ImageCapture wurde behoben, indem die Validierung des Speicherorts des Bildes vor der Aufnahme entfernt wurde. Wenn Sie diese Änderung vornehmen und das Speicherziel ungültig ist, dauert es länger, bis Sie die Fehlermeldung erhalten, da das Bild erst nach der Aufnahme gespeichert wird. (I1fd4e, b/177061560)
- Die Leistungsbeeinträchtigung von ImageCapture mit OutputFileOptions vom Typ „File“ wurde behoben. (I5164a, b/177061560)
- Die Dokumentation wurde aktualisiert und empfiehlt,
ProcessCameraProvider.configureInstance(...)
nicht im Bibliothekscode zu verwenden. (Ib8a9f)
Version 1.1.0-alpha01
27. Januar 2021
androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
und androidx.camera:camera-lifecycle:1.1.0-alpha01
sind veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Fehlerkorrekturen
- Es wurde eine Problemumgehung für zeitweise beschädigte Bilddaten in JPEGs der nach hinten gerichteten Kamera des SM-G930T implementiert. (I52001, b/159831206)
- Das Problem
IllegalArgumentException
wurde behoben, das auftrat, wenn alle unterstützten Vorschaubilder kleiner als 640 × 480 Pixel waren und die Displaygröße größer als 640 × 480 Pixel war. (I2a63c, b/150506192) - Ressourcen in Bibliotheken ohne explizit deklarierte öffentliche Ressourcen (z. B. über public.xml) sind jetzt standardmäßig privat. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core und Camera-Lifecycle Version 1.0.2
Version 1.0.2
29. September 2021
androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
und androidx.camera:camera-lifecycle:1.0.2
sind veröffentlicht. Version 1.0.2 enthält diese Commits.
Fehlerkorrekturen
- Das Problem, dass aufgenommene Fotos im
MAXIMIZE_QUALITY
-Modus unscharf sind, wurde behoben. (I173a9, b/193823892) - Ein Problem wurde behoben, bei dem mit Blitz aufgenommene Bilder auf vielen Geräten dunkel waren. (I4e510)
Camera-Camera2, Camera-Core und Camera-Lifecycle Version 1.0.1
Version 1.0.1
21. Juli 2021
androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
und androidx.camera:camera-lifecycle:1.0.1
sind veröffentlicht. Version 1.0.1 enthält diese Commits.
Fehlerkorrekturen
Das Problem wurde behoben, dass die in
setZoomRatio
undsetLinearZoom
zurückgegebeneListenableFuture
auf einigen Android 11-Geräten nicht abgeschlossen werden kann (I716d7).Das Problem, dass die Kamera auf einigen Geräten beim Schließen hängen blieb und eine schwarze Vorschau angezeigt wurde, wurde behoben. (I34c99)
Camera-Camera2, Camera-Core und Camera-Lifecycle Version 1.0.0
Version 1.0.0
5. Mai 2021
androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
und androidx.camera:camera-lifecycle:1.0.0
sind veröffentlicht. Version 1.0.0 enthält diese Commits.
Wichtige Funktionen von Version 1.0.0
- CameraX unterstützt Preview, ImageCapture und Analysis.
- CameraX verwaltet den Lebenszyklus der Kamera über eine benutzerfreundliche API.
- CameraX soll eine Kompatibilitätsebene bieten, die viele Probleme im Android-Kamera-Ökosystem behebt.
Bekannte Probleme
Version 1.0.0-rc05
21. April 2021
androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
und androidx.camera:camera-lifecycle:1.0.0-rc05
sind veröffentlicht. Version 1.0.0-rc05 enthält diese Commits.
Fehlerkorrekturen
- Das Problem, dass mit ImageCapture bei eingeschaltetem oder automatischem Blitz auf dem Samsung Galaxy S7 ausgewaschene Bilder aufgenommen werden, wurde behoben. (I30001)
Version 1.0.0-rc04
24. März 2021
androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
und androidx.camera:camera-lifecycle:1.0.0-rc04
sind veröffentlicht. Version 1.0.0-rc04 enthält diese Commits.
Fehlerkorrekturen
- Fehler bei der Initialisierung auf UMIDIGI BISON-Geräten behoben (I57d9e, b/180818665)
Version 1.0.0-rc03
24. Februar 2021
androidx.camera:camera-camera2:1.0.0-rc03
, androidx.camera:camera-core:1.0.0-rc03
und androidx.camera:camera-lifecycle:1.0.0-rc03
sind veröffentlicht. Version 1.0.0-rc03 enthält diese Commits.
Fehlerkorrekturen
- Formatierungsfehler im Dokument von
ProcessCameraProvider#getInstance
beheben - Der Robolectric-Test schlägt nicht mehr fehl, wenn „setAvailableCamerasLimiter“ in „CameraXConfig“ verwendet wird.
- Die Leistungsbeeinträchtigung von ImageCapture wurde behoben, indem die Validierung des Speicherorts des Bildes vor der Aufnahme entfernt wurde. Wenn Sie diese Änderung vornehmen und das Speicherziel ungültig ist, dauert es länger, bis Sie die Fehlermeldung erhalten, da das Bild erst nach der Aufnahme gespeichert wird.
- Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstelle eines Absturzes kann es also sein, dass andere Anwendungsfälle eingefroren oder langsam sind, z. B. eine eingefrorene oder langsame Vorschau.
- Es wurde eine Problemumgehung für zeitweise beschädigte Bilddaten in JPEGs der nach hinten gerichteten Kamera des SM-G930T implementiert. (I52001, b/159831206)
- Durch diese Änderung wird die Ausnahme abgefangen, wenn die Bildwarteschlange in ImageAnalysis voll ist. Anstatt abzustürzen, können andere Anwendungsfälle eingefroren oder langsam sein, z. B. eine eingefrorene oder langsame Vorschau. (Ic12da, b/175851631)
- Der Robolectric-Test schlägt nicht mehr fehl, wenn „setAvailableCamerasLimiter“ in „CameraXConfig“ verwendet wird. (Ice307)
- Die Leistungsbeeinträchtigung von ImageCapture wurde behoben, indem die Validierung des Speicherorts des Bildes vor der Aufnahme entfernt wurde. Wenn Sie diese Änderung vornehmen und das Speicherziel ungültig ist, dauert es länger, bis Sie die Fehlermeldung erhalten, da das Bild erst nach der Aufnahme gespeichert wird. (I1fd4e, b/177061560)
- Die Leistungsbeeinträchtigung von ImageCapture mit OutputFileOptions vom Typ „File“ wurde behoben. (I5164a, b/177061560)
Version 1.0.0-rc02
27. Januar 2021
androidx.camera:camera-camera2:1.0.0-rc02
, androidx.camera:camera-core:1.0.0-rc02
und androidx.camera:camera-lifecycle:1.0.0-rc02
sind veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem mit „IllegalArgumentException“ wurde behoben, das auftrat, wenn alle unterstützten Vorschaubilder kleiner als 640 × 480 waren und die Displaygröße größer als 640 × 480 war. (b/150506192)
Anzahl der Versuche zum erneuten Öffnen der Kamera begrenzen. Wenn beim Öffnen der Kamera bestimmte Probleme auftreten, versucht CameraX nicht mehr, die Kamera unbegrenzt oft neu zu öffnen, sondern beendet den Vorgang nach 10 Sekunden.I435d2
Das Problem
IllegalArgumentException
wurde behoben, das auftrat, wenn alle unterstützten Vorschaubilder kleiner als 640 × 480 Pixel waren und die Displaygröße größer als 640 × 480 Pixel war. (I2a63c, b/150506192)
Version 1.0.0-rc01
16. Dezember 2020
androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
und androidx.camera:camera-lifecycle:1.0.0-rc01
sind veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
API-Änderungen
- CameraFilter und Camera2Filter wurden so geändert, dass sie CameraInfo berücksichtigen. (I6883d)
- Die experimentelle Klasse Camera2CameraControl wurde hinzugefügt, um die dynamische Interaktion mit Camera2-APIs zu ermöglichen. (I45cf3)
- Camera2CameraInfo#fromCameraInfo wurde in #from umbenannt. (Ia2bd6)
- Wir haben der CameraXConfig eine experimentelle setAvailableCamerasLimiter API hinzugefügt, damit Apps die Initialisierungslatenz optimieren können, indem sie die Initialisierung nicht verwendeter Kameras vermeiden. (I6cf88)
- Die experimentelle Methode
CameraXConfig.Builder#setMinimumLoggingLevel()
wurde hinzugefügt, um eine Mindestlogebene für CameraX-Logs festzulegen. Wenn nichts anderes festgelegt wird, wird standardmäßigLog#DEBUG
verwendet. (Ic3245)
Fehlerkorrekturen
- Es wurde eine Problemumgehung für zeitweise beschädigte Bilddaten in JPEGs der nach hinten gerichteten Kamera des SM-G930V implementiert. (I5aca5, b/159831206)
- Das Problem wurde behoben, dass beim Aufnehmen von Bildern keine Ergebnisse angezeigt werden, wenn der Blitz immer aktiviert ist und die Umgebung auf Samsung SM-A716-Geräten dunkel ist. (If98b2, b/172036589)
- Das Problem, dass die Vorschau nicht durch Aufrufen von
Preview.setSurfaceProvider(null)
beendet werden konnte, wurde behoben. (I3ac18) - Ein Problem mit der Ausrichtung beim Aufnehmen von 4:3-Bildern auf einigen Geräten wurde behoben. (I0e3fb, b/171492111)
Camera Camera2, Core und Lifecycle Version 1.0.0-beta12
11. November 2020
androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
und androidx.camera:camera-lifecycle:1.0.0-beta12
sind veröffentlicht. Version 1.0.0-beta12 enthält diese Commits.
Fehlerkorrekturen
- Der automatische Blitz wurde auf Samsung A3-Geräten deaktiviert, um den Absturz zu beheben, der beim Aufnehmen eines Fotos mit dem AE-Modus für den automatischen Blitz auf Samsung A3-Geräten auftrat. (Ia5fe3, b/157535165)
- Ein Problem, bei dem die Vorschau auf Nexus 4-Geräten mit Android L (API-Ebenen 21 und 22) gestreckt wurde, wurde behoben. (I4d407, b/158749159)
- Die Implementierung der
OnImageCapturedCallback#onCaptureSuccess
-Basisklasse schließt das Bild nicht mehr. So soll unerwartetes Verhalten für Entwickler verhindert werden. Entwickler sollten sich nicht darauf verlassen, dass das Bild durch super.onCaptureSuccess geschlossen wird. (Ifbf9c) - Die androidx-Variante der Annotation „Experimental“ wurde eingestellt, um die Parität mit Kotlin zu gewährleisten. Sie wurde durch die Annotation „RequiresOptIn“ ersetzt. Der Java-Linter wurde aktualisiert, um sowohl die neue Kotlin-Annotation als auch die neue androidx-Variante zu unterstützen. (I52495, b/151331381)
Camera-Camera2 Version 1.0.0-beta11
14. Oktober 2020
androidx.camera:camera-camera2:1.0.0-beta11
wird veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.
Neue Funktionen
- Unterstützt die Android 11-
CONTROL_ZOOM_RATIO
-API für das Zoomen auf Geräten mit Android 11 oder höher, die gültigeCONTROL_ZOOM_RATIO_RANGE
enthalten. (I62cc6)
Fehlerkorrekturen
- Das Problem „NumberFormatException“ wurde behoben, das auftrat, wenn die Kamera-ID keine Ganzzahl war. (Ib2228)
- Die Latenz der CameraX-Initialisierung und von „bindToLifecycle“ wurde verbessert (I61dc5).
- Für die Erstellung von UseCases ist keine Initialisierung von CameraX erforderlich. Alle implementierungsspezifischen Konfigurationen werden für UseCase festgelegt, sobald er an eine Kamera-Instanz angehängt wird. Für die öffentliche API ist das
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
gibtSurface.ROTATION_0
zurück, wenn es vor dem Anhängen an eine Kamera-Instanz aufgerufen wird, es sei denn, eine targetRotation wurde im Builder oder UseCase festgelegt. (I80fcd)
Camera-Core-Version 1.0.0-beta11
14. Oktober 2020
androidx.camera:camera-core:1.0.0-beta11
wird veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.
Neue Funktionen
- Unterstützung der Android 11-CONTROL_ZOOM_RATIO
-API für das Zoomen auf Geräten mit Android 11 oder höher, die gültige CONTROL_ZOOM_RATIO_RANGE
enthalten. (I62cc6)
Fehlerkorrekturen
- Das Problem „NumberFormatException“ wurde behoben, das auftrat, wenn die Kamera-ID keine Ganzzahl war. (Ib2228)
- Für die Erstellung von UseCases ist keine Initialisierung von CameraX erforderlich. Alle implementierungsspezifischen Konfigurationen werden für UseCase festgelegt, sobald er an eine Kamera-Instanz angehängt wird. Für die öffentliche API ist das
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
gibtSurface.ROTATION_0
zurück, wenn es vor dem Anhängen an eine Kamera-Instanz aufgerufen wird, es sei denn, eine targetRotation wurde im Builder oder UseCase festgelegt. (I80fcd)
Camera-Core-Version 1.0.0-beta10
23. September 2020
androidx.camera:camera-core:1.0.0-beta10
wird veröffentlicht. Version 1.0.0-beta10 enthält diese Commits.
Fehlerkorrekturen
- Fehler bei der Validierung des Speicherorts für die Bildaufnahme behoben (I8c565, b/167697553)
Camera-Camera2 Version 1.0.0-beta10
23. September 2020
androidx.camera:camera-camera2:1.0.0-beta10
wird veröffentlicht. Version 1.0.0-beta10 enthält diese Commits.
Fehlerkorrekturen
- Release zur Unterstützung von 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, wird beim Erstellen von Camera2CameraInfo eine CameraInfo-Instanz verwendet, um Camera2-bezogene Informationen abzurufen. (I5b844)
Fehlerkorrekturen
- Ein Problem mit dem Zielseitenverhältnis auf Tablets wurde behoben. Wenn das Zielseitenverhältnis auf
AspectRatio.RATIO_16_9
festgelegt ist, sollte eine Größe im Verhältnis 16:9 ausgewählt werden. (Ib7fcf, b/151969438) - Lösen Sie eine
InitializationException
aus, damit die App den AssertionError, der beim Erstellen von CameraCharacteristics aufgetreten ist, ordnungsgemäß verarbeiten kann. (I89c8c, b/160524721) - Experimentelle Schnittstellen für ExposureCompensation (If96c7) hinzugefügt
Camera-Core-Version 1.0.0-beta09
16. September 2020
androidx.camera:camera-core:1.0.0-beta09
wird veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.
API-Änderungen
- Der Fehler wurde behoben, bei dem der Darstellungsbereich in UseCaseGroup als „nicht null“ markiert wurde. Entwickler sollten einen Viewport erstellen können, ohne einen Viewport festzulegen. (Ie3d2e)
- Experimentelle Schnittstellen für
ExposureCompensation
hinzugefügt (If96c7) - Beliebige Zielrotation für die Vorschau zulassen. Die Transformationsinformationen werden dynamisch über einen neuen
TranformationInfoListener
-Callback berechnet und an den Nutzer zurückgegeben. (I21470)
Fehlerkorrekturen
- Das Problem, dass der Blitz auf einigen Geräten nicht ausgeschaltet wurde, wurde behoben. Das Problem trat auf, wenn der Blitzmodus zum Aufnehmen eines Bildes auf
FLASH_MODE_ON
eingestellt und dann aufFLASH_MODE_OFF
geändert wurde, während der Blitz ausgelöst wurde. Das Symptom ähnelt dem aktivierten Taschenlampenmodus. (Ib4451, b/162568128) - Erzwingt die Verwendung von TextureView für PreviewView, wenn der Erweiterungseffekt aktiviert ist und die Implementierung der Anbieterbibliothek eine spezielle Verarbeitung auf der Ausgabefläche erfordert. (I0c3cc)
- Das Problem mit dem Activity-/Fragment-Leak wurde behoben, wenn ein Activity-/Fragment-Kontext an
ProcessCameraProvider.getInstance(Context)
übergeben wird.
Bekannte Probleme
- Wenn ViewPort festgelegt ist, ist das Zuschneiderechteck von ImageCapture auf Geräten, die den Bildpuffer in HAL drehen, möglicherweise falsch. Dieses Problem wird im nächsten Release behoben.
Camera-Camera2 Version 1.0.0-beta08
19. August 2020
androidx.camera:camera-camera2:1.0.0-beta08
wird veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.
Fehlerkorrekturen
- Die Methode „bindToLifecycle“ wurde optimiert, damit sie schnell im Hauptthread ausgeführt wird. (I1d57e)
- DisplayOrientedMeteringPointFactory verwendet eine CameraInfo-Instanz anstelle eines CameraSelector, sodass eine direkte Zuordnung dazu besteht, für welche Kamera die Factory Punkte generiert. Alle Klassen, die DisplayOrientedMeteringPointFactory verwenden, akzeptieren auch eine CameraInfo-Instanz anstelle von CameraSelector. (I400c1)
- Ein Problem mit der Gruppierung von Seitenverhältnissen bei der automatischen Auflösung wurde behoben. Dabei wurde eine Größe von 864 × 480 (16:9 mod16) ausgewählt, obwohl die Zielauflösung auf 2.016 × 1.080 eingestellt war und eine andere Größe von 1.920 × 1.080 (16:9) unterstützt wurde. (I53167, b/159363774)
- Problem mit CameraControl behoben, das durch einen Race Condition-Fehler verursacht wurde (I2279f, b/152333890, b/160714166)
Camera-Core-Version 1.0.0-beta08
19. August 2020
androidx.camera:camera-core:1.0.0-beta08
wird veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.
API-Änderungen
DisplayOrientedMeteringPointFactory
akzeptiert eineCameraInfo
-Instanz anstelle einerCameraSelector
. So kann direkt zugeordnet werden, für welche Kamera die Fabrik Punkte generiert. Alle Klassen, dieDisplayOrientedMeteringPointFactory
verwenden, akzeptieren auch eineCameraInfo
-Instanz anstelle vonCameraSelector
. (I400c1)
Fehlerkorrekturen
- Überschreiben Sie für die Bildaufnahme das Flag „Horizontal spiegeln“ in den Metadaten basierend auf der Kameraausrichtung. (I28499)
- Die Initialisierung sollte nicht mehr abstürzen, wenn ein Kontext verwendet wird, der kein Anwendungsobjekt von
Context.getApplicationContext()
zurückgibt. (I3d3c9, b/160817073)
Camera-Camera2 Version 1.0.0-beta07
22. Juli 2020
androidx.camera:camera-camera2:1.0.0-beta07
wird veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.
Fehlerkorrekturen
- Das Problem, dass die Vorschau auf Android 5.0-Geräten gestreckt wurde, wurde behoben. (I0c03a)
- Einige unterstützte JPEG-Größen wurden ausgeschlossen, da sie auf einigen Geräten zu WYSIWYG-Problemen führen. (Ib5128)
Camera-Core-Version 1.0.0-beta07
22. Juli 2020
androidx.camera:camera-core:1.0.0-beta07
wird veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.
API-Änderungen
- Führe
FIT_CENTER
,FIT_START
undFIT_END
mitFIT
zusammen.FIT
bedeutet, dass das zurückgegebene Zuschnittrechteck das maximal mögliche Sensorrechteck ist. (Ia73c3) - Das Zuschneiderechteck der Vorschau wird durch den Darstellungsbereich konfiguriert. Nur der Bereich, der vom Zuschneiderechteck abgedeckt wird, sollte für Endnutzer sichtbar sein. (I142a4)
Fehlerkorrekturen
- Das Problem, dass die Vorschau auf Android 5.0-Geräten gestreckt wurde, wurde behoben. (I0c03a)
- Das Problem mit der
ConcurrentModificationException
-Ausnahme beim Aufheben der Bindung von Anwendungsfällen wurde behoben. (I371c0)
Camera-Camera2 Version 1.0.0-beta06
24. Juni 2020
androidx.camera:camera-camera2:1.0.0-beta06
wird veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.
API-Änderungen
- Experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und CameraCharacteristics hinzugefügt. (I28f61)
Fehlerkorrekturen
- Das Problem wurde behoben, durch das startFocusAndMetering auf dem Samsung Galaxy S7 nicht richtig fokussierte. (If3be7, b/159039233)
- Problem behoben: Die Kamera kann nach dem Beenden der App nicht geschlossen werden. (I7a7b3)
- Problem behoben: Wiederholtes Umschalten der Kamera unterbricht die Vorschau bei Verwendung der SurfaceView-Implementierung von PreviewView (I920ce)
CameraControl#startFocusAndMetering
schlägt fehl, wenn für keinen der angegebenen MeteringPoint gültige Messrechtecke generiert werden können. (Id53ce)
Camera-Core-Version 1.0.0-beta06
24. Juni 2020
androidx.camera:camera-core:1.0.0-beta06
wird veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.
API-Änderungen
- Experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und CameraCharacteristics hinzugefügt. (I28f61)
Fehlerkorrekturen
- CameraX kann jetzt mit
ProcessCameraProvider#configureInstance()
konfiguriert werden, bevorProcessCameraProvider#getInstance()
aufgerufen wird. So kannCameraXConfig
angepasst werden, ohne dassCameraXConfig.Provider
in der Application-Klasse der App implementiert werden muss. (Ia1a8d) CameraControl#startFocusAndMetering
schlägt fehl, wenn für keinen der angegebenen MeteringPoint gültige Messrechtecke generiert werden können. (Id53ce)
Camera-Camera2 Version 1.0.0-beta05
10. Juni 2020
androidx.camera:camera-camera2:1.0.0-beta05
wird veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.
Fehlerkorrekturen
- Das Problem mit Abstürzen beim Starten der App beim Initialisieren von CameraX, wenn sich das Smartphone im Modus „Bitte nicht stören“ befindet, wurde behoben. Ein
InitializationException
enthält einCameraUnavailableException
, das auf dasListenableFuture
des Initialisierungsergebnisses gesetzt wird, anstatt die Anwendung zum Absturz zu bringen. (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
- Das Problem mit Abstürzen beim Starten der App beim Initialisieren von CameraX, wenn sich das Smartphone im Modus „Bitte nicht stören“ befindet, wurde behoben. Ein
InitializationException
, das einCameraUnavailableException
enthält, wird auf dasListenableFuture
des Initialisierungsergebnisses festgelegt, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)
Fehlerkorrekturen
- Die 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
- Apps können jetzt beliebige Parameter für die Aufnahmeanfrage von Camera2 über
Camera2Interop
festlegen, ohne dass es zu einem Absturz kommt. Beachten Sie, dass Probleme auftreten können, wenn Sie Parameter überschreiben. Stabilität und Verhalten können nicht garantiert werden, wenn Parameter mit Camera2Interop überschrieben werden. (Ibe5a1, b/149103700) - Die automatische Initialisierung funktioniert jetzt auch, wenn eine App auf einem Gerät mit einer Pseudolokalisierung verwendet wird. (I3bef3, b/154767663)
- Das konvertierte Fehlerlog für den Anwendungsfall „Getrennt verwendet“ wurde in ein Debug-Log in Camera2CameraImpl umgewandelt. (I1a565, b/154422490)
- Ein Problem wurde behoben, durch das aufgenommene Bilder manchmal zu dunkel waren, obwohl der Blitz ausgelöst wurde. (I5d9fa, b/149729613)
- Fehler behoben, durch den der Puffer in
ImageProxy
abImageCapture
nicht zurückgespult wurde (I0c455, b/153249512) - Die folgenden Probleme wurden behoben, die beim Binden von ImageCapture auftraten: (1) Fotos konnten nicht mit MAX_QUALITY aufgenommen werden. (2) Die Bildqualität war schlecht, weil die automatische Belichtung nicht funktionierte. (I17782, b/145326998)
- Die Zuverlässigkeit beim erneuten Öffnen der Kamera wurde verbessert, wenn CameraX von einem anderen Prozess oder Codepfad getrennt wird, der die Kamera übernimmt (I1fbc3, b/153714651).
Camera-Core-Version 1.0.0-beta04
27. Mai 2020
androidx.camera:camera-core:1.0.0-beta04
wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
API-Änderungen
- Es wird eine experimentelle API,
CameraXConfig.Builder#setSchedulerHandler()
, zum Festlegen des Handlers hinzugefügt, der intern vom CameraX-Kamerastapel verwendet wird. Diese neue API sollte zusammen mitCameraXConfig.Builder#setCameraExecutor()
die vollständige Kontrolle über die Threads ermöglichen, die vom CameraX-Kamerastack verwendet werden. (I7bf32, b/121160431)
Fehlerkorrekturen
- Behebt einen Absturz in
ImageAnalysis
, bei dem aufImageProxy
zugegriffen wird, nachdemImageReaderProxy
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 ausSurfaceRequest
ab. (If18f0, b/154652477) - Die automatische Initialisierung funktioniert jetzt auch, wenn eine App auf einem Gerät mit einer Pseudolokalisierung verwendet wird. (I3bef3, b/154767663)
- Ein Problem wurde behoben, durch das aufgenommene Bilder manchmal zu dunkel waren, obwohl der Blitz ausgelöst wurde. (I5d9fa, b/149729613)
- Ein Problem mit
ImageAnalysis
wurde behoben, bei dem mehrere Aufrufe von setAnalyzer/clearAnalyzer dazu führten, dass der Analyzer keine zu analysierenden Bilder empfing. (I6169f, b/151605317, b/153514544) - Fehler behoben, durch den der Puffer in
ImageProxy
abImageCapture
nicht zurückgespult wurde (I0c455, b/153249512) - Das Problem, dass die erste Kamera in der Liste der unterstützten Kameras von
CameraManager
nicht immer für die Verwendung ausgewählt wird, wurde behoben. (I4c624, b/153418028) - Ein zeitweiliger Absturz wurde behoben, der dadurch verursacht wurde, dass durch das Festlegen von
Preview.SurfaceProvider
die zuvor angeforderte Oberfläche nicht freigegeben wurde.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
(I8e4e7, b/155936225)
Camera-Camera2 Version 1.0.0-beta03
15. April 2020
androidx.camera:camera-camera2:1.0.0-beta03
wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
Fehlerkorrekturen
- Korrekturen zur Unterstützung der Veröffentlichung von
camera-core
Camera-Core-Version 1.0.0-beta03
15. April 2020
androidx.camera:camera-core:1.0.0-beta03
wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
Fehlerkorrekturen
- Eine Regression aus Beta 03 wurde behoben, bei der beim Aufrufen von
bindToLifecycle()
mit 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()
aus demImageProxy
, der vonImageCapture
generiert wurde, wurde korrigiert, damit er mit dem Rotationswert der EXIF-Ausrichtung übereinstimmt. (Id4281, b/150802561) - Für die Verwendung der standardmäßigen CameraX-/Camera2-Implementierung ist keine explizite Anordnung der CameraX-Abhängigkeiten in
build.gradle
mehr erforderlich. In Fällen, in denen die Deklaration strenger Abhängigkeiten erforderlich ist, können jetzt alle CameraX-Abhängigkeiten in die Build-Datei aufgenommen werden. (I46e88) - Das
IllegalArgumentException
-Problem auf Geräten mit einer Anzeigegröße von weniger als 640 × 480 wurde behoben. (Ife3f2, b/150506192) bindToLifecycle
wurde korrigiert, sodass der UseCase nur geändert wird, wenn er erfolgreich gebunden wird. Bisher wurde der UseCase aktualisiert, wennbindToLifecycle
aufgerufen wurde, um Berechnungen zur Auflösung durchzuführen. Der UseCase muss jetzt nicht mehr aktualisiert werden, um die Berechnungen durchzuführen (I78d9e).
Camera-Core-Version 1.0.0-beta02
1. April 2020
androidx.camera:camera-core:1.0.0-beta02
wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Der
ImageInfo.getRotationDegrees()
aus demImageProxy
, der vonImageCapture
generiert wurde, wurde korrigiert, damit er mit dem Rotationswert der EXIF-Ausrichtung übereinstimmt. (Id4281, b/150802561) bindToLifecycle
wurde korrigiert, sodass der UseCase nur geändert wird, wenn er erfolgreich gebunden wird. Bisher wurde der UseCase aktualisiert, wennbindToLifecycle
aufgerufen wurde, um Berechnungen zur Auflösung durchzuführen. Der UseCase muss jetzt nicht mehr aktualisiert werden, um die Berechnungen durchzuführen (I78d9e).- Ein Problem wurde behoben, bei dem die Aufnahmesitzung des Anwendungsfalls
Preview
nicht aktualisiert wurde, wenn sich die Vorschauoberfläche nach dem Aufrufen vonPreview.setSurfaceProvider()
mehr als einmal geändert hat.
Camera-Camera2 Version 1.0.0-beta01
26. Februar 2020
androidx.camera:camera-camera2:1.0.0-beta01
wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Fehlerkorrekturen
SurfaceRequest.setSurface(Surface)
wurde inSurfaceRequest.provideSurface(Surface)
undSurfaceRequest.setWillNotComplete()
inSurfaceRequest.willNotProvideSurface()
umbenannt. (I224fe)- Ein Problem wurde behoben, bei dem das Seitenverhältnis eines gespeicherten Bildes nach dem Ändern des Zielrotationswerts mit
ImageCapture.setTargetRotation()
nicht korrekt war. (I474ea, b/148763432) - Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert, indem das Flag beibehalten wurde, mit dem der Standardanbieter
CameraXConfig
festgelegt wird. (I2d6c1)
Camera-Core-Version 1.0.0-beta01
26. Februar 2020
androidx.camera:camera-core:1.0.0-beta01
wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
API-Änderungen
- Das
ListenableFuture
aufSurfaceRequest.provideSurface()
wurde durch einExecutor
undCallback
ersetzt. Dadurch wird die API vereinfacht, da keine Ausnahmen fürprovideSurface()
mehr behandelt werden müssen. Außerdem wird erzwungen, dass derprovideSurface()
-Callback nicht abgebrochen werden kann. So werden Abstürze auf älteren Geräten verhindert, die durch das vorzeitige Freigeben 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, bei dem das Seitenverhältnis eines gespeicherten Bildes nach dem Ändern des Zielrotationswerts mit
ImageCapture.setTargetRotation()
nicht korrekt war. (I474ea, b/148763432) - Die Initialisierung von App-Varianten mit aktiviertem ProGuard wurde korrigiert, indem das Flag beibehalten wurde, mit dem der Standardanbieter
CameraXConfig
festgelegt wird. (I2d6c1) - Die Dokumentation für die APIs für den Blitzmodus wurde aktualisiert und enthält jetzt mögliche Werte. (I4a3ec)
Camera-Camera2 Version 1.0.0-alpha10
10. Februar 2020
androidx.camera:camera-camera2:1.0.0-alpha10
wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
Fehlerkorrekturen
- Die Stabilität auf
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
-Geräten wurde verbessert, indem dafür gesorgt wurde, dassSurface
nur für die Dauer der Verwendung durch Camera2 beibehalten werden. (I9dac2) - Das Problem mit der unterbelichteten Vorschau auf LEGACY-Geräten wurde behoben, indem
CONTROL_AE_TARGET_FPS_RANGE
richtig angepasst wurde. (1224638)
Camera-Core-Version 1.0.0-alpha10
10. Februar 2020
androidx.camera:camera-core:1.0.0-alpha10
wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
API-Änderungen
ImageCapture
wurde aktualisiert, damit Bilder inUri
undOutputStream
gespeichert werden können. Kombinierte überlastetetakePicture
-Methoden in einer. Die Test-App wurde aktualisiert, sodassUri
als kanonisches Beispiel verwendet wird. (Ia3bec)Preview.PreviewSurfaceProvider
wurde inPreview.SurfaceProvider
umbenannt.SurfaceProvider
erfordern nicht mehr, dass Entwickler ihre eigenenListenableFuture
erstellen. Die Bereitstellung einesSurface
erfolgt jetzt über ein neuesSurfaceRequest
-Objekt. Die MethodePreview.getPreviewSurfaceProvider()
wurde entfernt, da sie in Kombination mit anderen Klassen wiePreviewView
missbraucht werden kann.Preview
(I20105)getTargetRotation()
undgetTargetName()
wurden zuPreview
hinzugefügt. (Iceee7)getTargetRotation()
,getBackpressureStrategy()
undgetImageQueueDepth()
inImageAnalysis
hinzugefügt. (I9d6d9)getTargetRotation()
undgetCaptureMode()
inImageCapture()
hinzugefügt (I5bc17)- Die Argumente, die zuvor in
ImageCapture.OnImageSavedCallback.onError()
undImageCapture.OnImageCapturedCallback.onError()
übergeben wurden, wurden jetzt durch ein einzelnes ArgumentImageCaptureException
ersetzt, das weiterhin alle Informationen enthält, die zuvor übergeben wurden. - Das zuvor in
ImageCapture.OnImageSavedCallback.onImageSaved()
übergebene Dateiargument wurde entfernt. (I750d2) - Die Klassen
Preview
undImageCapture
sind jetzt als „final“ gekennzeichnet. (I2500b) - Die API wurde aktualisiert. Die Methoden
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
undgetLinearZoom()
vonCameraInfo
werden ingetZoomState()
zusammengeführt, die 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. Der Konstruktor fürCameraXConfig.Builder
wurde entfernt. (I96912) - Die Anforderung, dass die App
Application
erweitern muss, um CameraX zu initialisieren, wurde entfernt. CameraX wird jetzt mit einer standardmäßigen Camera2-Konfiguration initialisiert, sofern 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
Es wurde ein Camera2-Interop-Pfad zum Extrahieren einer Camera2-Kamera-ID hinzugefügt. Sie können die Kamera-ID aus
CameraInfo
mitCamera2CameraInfo.extractCameraId()
extrahieren. Das folgende Codebeispiel zeigt, wie Sie dies verwenden:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
Für die Klasse
Camera2CameraInfo
ist die markerClassExperimentalCamera2Interop
erforderlich.
Camera-Core-Version 1.0.0-alpha09
22. Januar 2020
androidx.camera:camera-core:1.0.0-alpha09
wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
API-Änderungen
- Der Parameter
SurfaceOrientedMeteringPointFactory
useCaseForSurface
wurde inuseCaseForAspectRatio
umbenannt und die Referenzdokumentation wurde erweitert. FocusMeteringAction.Builder.from()
-Methoden werden durch die KonstruktorenFocusMeteringAction.Builder()
ersetzt.- Entfernt:
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
Anwendungen sollten den Konstruktor verwenden, der einenDisplay
-Parameter akzeptiert, und das aktuelle Display übergeben. - Javadoc-Verbesserungen für Fokus- und Mess-APIs in Bezug auf
MeteringMode
- und 3A-Flags sowie die Verwendung des ParametersDisplay
. - Die Referenzdokumentation für
setZoomRatio
undsetLinearZoom
wurde erweitert.
Fehlerkorrekturen
- Es wurden Probleme behoben, die beim Schließen und anschließenden Öffnen von Kameras zu einem Fehler bei der Vorbedingungsprüfung geführt haben.
- Ein
ConcurrentModificationException
wurde behoben, das bei der Verwendung von Taschenlampen- und Zoom-APIs auftreten konnte. - Ein Problem wurde behoben, durch das jetzt Auflösungen ausgewählt werden, die näher an der angeforderten Auflösung liegen, wenn eine Größe mit mod16-Dimensionen verfügbar ist.
- Die APIs
startFocusMetering
undcancelFocusMetering
verhalten sich jetzt wie dokumentiert, mit korrekten Zeitangaben und potenziellen Fehlern, wenn sie auftreten. - Ein Problem wurde behoben, das auftrat, wenn auf einem Gerät, das solche Größen nicht unterstützt, eine bestimmte Zielauflösung mit einem Zuschneide-Seitenverhältnis angefordert wurde. Wenn verfügbar, wird jetzt eine nicht zugeschnittene Größe mit ausreichender Auflösung ausgewählt, um die ursprüngliche Anfrage zu begrenzen.
Camera-Camera2 Version 1.0.0-alpha08
18. Dezember 2019
androidx.camera:camera-camera2:1.0.0-alpha08
wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Bekannte Probleme
- Nicht alle Camera2-Optionen für Erfassungsanfragen funktionieren bei der Verwendung von Camera2-Interop. Wenn die angeforderte Option nicht unterstützt wird, kann die Sitzung nicht gestartet werden und es kann ein Fehler wie dieser auftreten:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
Fehlerkorrekturen
- Es wurde ein Problem behoben, bei dem nach dem Drehen oder Wechseln der Kamera bei API-Level 21 und 22 ein schwarzer Bildschirm in der Vorschau angezeigt wurde.
API-Änderungen
- Experimentell: Es wurde ein Camera2-Interop-Pfad zum Extrahieren der Kamera-ID hinzugefügt.
Camera-Core-Version 1.0.0-alpha08
18. Dezember 2019
androidx.camera:camera-core:1.0.0-alpha08
wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Bekannte Probleme
- Bei Apps, die
PreviewView
oderCameraView
verwenden, wird möglicherweise eine Vorschau mit dem falschen Seitenverhältnis angezeigt. Das passiert nach dem Pausieren oder Fortsetzen auf einigen FULL-Geräten wie dem Pixel 2.
Fehlerkorrekturen
- Die Dokumentation für
FocusMeteringAction
undCameraControl
wurde aktualisiert. TorchControl
fürenableTorch()
undgetTorchState()
implementiert.
API-Änderungen
- IntDefs wurden ausgeblendet und IntDef-Konstanten wurden aus der IntDef-Definition verschoben.
rotationDegrees
wurde von der KlasseOnImageCaptureCallback
nachImageInfo
verschoben.rotationDegrees
wurde von der KlasseAnalyzer
nachImageInfo
verschoben.
Camera-Camera2 Version 1.0.0-alpha07
4. Dezember 2019
androidx.camera:camera-camera2:1.0.0-alpha07
wird veröffentlicht. Version 1.0.0-alpha07 von camera-camera2 enthält diese Commits
Camera2Config
kann jetzt zum Initialisieren und Konfigurieren einer Camera2-basierten Implementierung für CameraX verwendet werden. Weitere Informationen zur Verwendung bei der Initialisierung finden Sie in den Versionshinweisen im Abschnitt „camera-core“.- Die Camera2-Interop-Funktionalität ist jetzt als experimentell gekennzeichnet und wurde in ein separates Paket verschoben:
androidx.camera.camera2.interop.
Camera-Core-Version 1.0.0-alpha07
4. Dezember 2019
androidx.camera:camera-core:1.0.0-alpha07
wird veröffentlicht. Version 1.0.0-alpha07 von camera-core enthält diese Commits
In dieser Alphaversion gibt es einige wesentliche Änderungen, da wir uns auf die Betaphase vorbereiten. Wir empfehlen Ihnen, sich die Änderungen anzusehen und uns Ihr Feedback in der CameraX-Google-Gruppe mitzuteilen. Entwicklern, die CameraX in Apps verwenden, die im Play Store verfügbar sind, empfehlen wir, mit dem Upgrade der Bibliothek in ihren Anwendungen bis zur offiziellen Beta-Version zu warten.
API-Änderungen
Wichtig: Die CameraX-Initialisierung hat sich geändert. Anwendungen sollten
CameraXConfig.Provider
implementieren und die Standard-Camera2Config
verwenden, die vonandroidx.camera.camera2
bereitgestellt wird. Ein typisches Beispiel:import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
Die CameraX-Klasse wurde entfernt. Die zuvor über den CameraX-Klassenaufruf bereitgestellten
bindToLifecycle()
-,unbind()
-,unbindAll()
-,isBound()
- undhasCamera()
-Werte sind jetzt überProcessCameraProvider
verfügbar.Eine prozessbezogene Instanz von
ProcessCameraProvider
wird asynchron mit der statischen MethodeProcessCameraProvider.getInstance()
abgerufen. Diese gibt ein „listenable future“ zurück, das bei Abschluss dieProcessCameraProvider
bereitstellt. Hier ist sie inonCreate()
für eine typische Verwendung dargestellt. Sie können Aufrufe vongetInstance()
später im Lebenszyklus der Aktivität platzieren, um die Initialisierungslatenz auf einen späteren Zeitpunkt zu verschieben, z. B. wenn durch eine Nutzeraktion eine Kamera-UI geöffnet wird.import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }
Der von
getInstance()
zurückgegebenenListenableFuture
kann ein Listener hinzugefügt werden. So kann der Kameraanbieter ausFuture
abgerufen werden, ohne dassFuture.get()
blockiert wird.cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
Die Kameraauswahl erfolgt jetzt über eine Kameraauswahl und nicht mehr pro Anwendungsfall.
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
CameraProvider.bindToLifecycle
erhält den Lifecycle-Inhaber, die Kameraauswahl und die Anwendungsfälle, die dann an den angegebenen Lifecycle-Inhaber gebunden sind und für die ausgewählte Kamera ausgeführt werden.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
Die Klassen für den Anwendungsfall „Config“ wurden entfernt. Stattdessen können Sie Anwendungsfälle direkt erstellen und Optionen für jeden Anwendungsfall-Builder festlegen. Beispiel:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
Der Preview-Anwendungsfall wurde aktualisiert, um eine von der Anwendung erstellte und verwaltete Oberfläche zu akzeptieren, um Android-Best Practices zu gewährleisten. Es wird dringend empfohlen, die im Paket „camera-view“ bereitgestellte Ansichtsklasse
PreviewView
zu verwenden.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
Informationen zum Anhängen einer von der App verwalteten Oberfläche finden Sie in der Dokumentation. In diesen Fällen verwaltet die App den Lebenszyklus der Oberfläche.
Wichtig: Bei der Implementierung der
ImageAnalysis
-Analysemethode mussimage.close()
für empfangene Bilder aufgerufen werden, wenn sie nicht mehr verwendet werden. Andernfalls werden möglicherweise keine neuen Bilder empfangen oder die Kamera bleibt hängen, je nach Einstellung des Gegendrucks. Weitere Informationen finden Sie in der Referenzdokumentation.ImageAnalysis ImageReaderMode
wurde in eine Backpressure-Strategieintdef
geändert.ImageProxy.getImage()
ist als experimentell gekennzeichnet. Die Nutzung sollte in Anwendungen beispielsweise über@androidx.camera.core.ExperimentalGetImage
annotiert werden.Die Anmerkung „
UIThread
“ ist für dieAnalyzer
nicht mehr erforderlich.Die Funktion
ImageAnalysis.clearAnalyzer()
wird zum Entfernen eines Analysators hinzugefügt.Listener mit mehr als einer Methode wurden in „Callback“ umbenannt:
ImageCapture.OnImageCapturedListener
heißt 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-/Taschenlampen-Hardware vorhanden ist.CameraInfo.isFlashAvailable()
wurde entfernt. Die Taschenlampe überschreibt die Blitzfunktion. Weitere Informationen finden Sie in der Referenzdokumentation.ImageCapture.Metadata
-Felder werden durch get/set/is-Accessoren ersetzt.startFocusMetering
undcancelFocusMetering
geben jetztListenableFutures
zurück, was den asynchronen Vorgang des Aufrufs darstellt.MeteringPoints
fungieren jetzt als Handles für Abrechnungsaktionen und werden von Factories erstellt. Apps sollten die vorhandenen Factories anstelle von benutzerdefinierten Factories verwenden.
Behobene Probleme
- Ein Problem wurde behoben, das beim Aufnehmen eines Bilds nach dem Fortsetzen auftrat, wenn zuvor angehaltene Aufnahmen noch nicht abgeschlossen waren.
- Bekanntes Problem:
CameraControl.enableTorch()
funktioniert, aber der zurückgegebeneListenableFuture<Void>
ist immer eine sofortigecomplete(success)
-Zukunft, auch wenn kein Blitzgerät vorhanden ist. In zukünftigen Versionen wird dieses Problem behoben und das endgültige Verhalten implementiert: Wenn kein Blitzgerät vorhanden ist, schlägtenableTorch(true)
sofort fehl (es wird keine Anfrage anCaptureSession
gesendet) undTorchState
bleibt deaktiviert. - Bekanntes Problem:
startFocusAndMetering
undcancelFocusAndMetering
starten und beenden die Fokusmessung, geben aber sofort eincompleted (success)
-Future zurück, das nicht dem dokumentierten Verhalten entspricht. DerFocusMeteringResult
vonListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
ist ein gefälschtes Ergebnis, dasisFocusSuccessful()
und immer „false“ ist. Das weicht vom beabsichtigten, dokumentierten Verhalten ab. - Bekanntes Problem: Eine Messpunkt-Factory für die Verwendung mit
PreviewView
-Touch-Ereignissen wird entwickelt. Apps, die benutzerdefinierte verwaltete Oberflächen verbinden, können vorerst die vorhandenen Messpunkt-Factories verwenden. Andernfalls ist fürPreviewView
keine Touch-Fokus-Funktion verfügbar.
Camera-Camera2 und Camera-Core Version 1.0.0-alpha06
9. Oktober 2019
androidx.camera:camera-camera2:1.0.0-alpha06
und androidx.camera:camera-core:1.0.0-alpha06
werden veröffentlicht. Das sind die Commits, die in camera-camera2:1.0.0-alpha06
enthalten sind, und das sind die Commits, die in camera-core:1.0.0-alpha06
enthalten sind.
Neue Funktionen
Änderungen beim Festlegen von Seitenverhältnissen:
setTargetAspectRatioMode()
wurde hinzugefügt und akzeptiert ein Enum-Argument. Dadurch wird der Seitenverhältnismodus mit den OptionenRATIO_4_3
oderRATIO_16_9
anstelle eines beliebigen Seitenverhältnisses festgelegt. Dies entspricht eher der Tatsache, dass die Kamera nur bestimmte Seitenverhältnisse und nicht ein beliebiges Verhältnis bereitstellt.- Derzeit sind nur die Seitenverhältnisse 16:9 und 4:3 verfügbar. Bei 1:1 ist diese Funktion nur auf bestimmten Geräten über die Kamera und dann auch nur bei begrenzten Auflösungen verfügbar. Bei Anwendungen, die eine 1:1-Schnittstelle oder -Verarbeitung verwenden, sollten die flexibleren Optionen 16:9 oder 4:3 verwendet und die Anzeige zugeschnitten oder eine Unterregion verarbeitet werden.
- Diese Seitenverhältnisse sind darauf ausgerichtet, die maximale Sensorfläche zu nutzen.
getTargetAspectRatio()
wurde den APIs zur Konfiguration von Anwendungsfällen hinzugefügt, um das Seitenverhältnis zurückzugeben, für das die Ausgabe des Anwendungsfalls vorgesehen ist.- Die Methode
setTargetAspectRatio(Rational aspectRatio)
wurde für ImageCapture insetTargetAspectRatioCustom(Rational aspectRatio)
geändert. Wenn diese Option festgelegt ist, wird die ImageCapture-Ausgabe entsprechend zugeschnitten.
Executor-APIs
- Die folgenden Funktionen akzeptieren einen Executor-Parameter, mit dem die App steuern kann, auf welchem Executor die Funktion ausgeführt wird.
Preview.setOnPreviewOutputUpdateListener()
API. Wenn der Executor für diese Funktion nicht vorhanden ist, wird sie im Hauptthread ausgeführt.Preview.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
CameraInfo mit den APIs „Flash Available“ und „Sensor Rotation“ hinzugefügt
CameraInfo
und einegetCameraInfo
-Methode wurden hinzugefügt, mit der Apps prüfen können, ob eine CameraInfo mit Blickrichtung des Objektivs verfügbar ist und ob ein Blitz auf dieser Kamera verfügbar ist. Beispiel:try { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }
CameraInfo.getSensorRotationDegrees()
wurde hinzugefügt. Sie gibt die Ausrichtung des Kamerasensors relativ zur natürlichen Ausrichtung des Geräts oder, zur Vereinfachung, relativ zu einer Ausrichtung an, die durch eine Surface-Drehung beschrieben wird (die eine Ausrichtung relativ zur natürlichen Ausrichtung beschreibt).
API-Änderungen und Fehlerkorrekturen
- Seitenverhältnisse: Für jeden Anwendungsfall sollten Anwendungen nur
setTargetResolution()
odersetTargetAspectRatio()
aufrufen. Wenn Sie beide für dasselbe Erstellungstool aufrufen, wird ein Fehler zurückgegeben.- Im Allgemeinen wird empfohlen,
setTargetAspectRatio()
basierend auf dem UI-Design der Anwendung zu verwenden. Die konkreten Lösungen hängen vom Anwendungsfall ab. Die Vorschau hat beispielsweise eine ähnliche Auflösung wie der Bildschirm und die Bildaufnahme liefert hochauflösende Fotos. Weitere Informationen finden Sie in der Tabelle mit automatischen Auflösungen. - Verwenden Sie
setTargetResolution()
für spezifischere Fälle, z. B. wenn minimale (zur Einsparung von Rechenleistung) oder maximale Auflösungen (zur Verarbeitung von Details) erforderlich sind.
- Im Allgemeinen wird empfohlen,
- Executor API: Der
setCallbackHandler()
-Aufruf wurde aus den APIs zur Konfiguration von Anwendungsfällen entfernt. Stattdessen können Anwendungen den Executor als Parameter in verschiedenen anderen APIs festlegen, die einen Rückruf festlegen. - Die Null-Annotationen für verschiedene Funktionen wurden aktualisiert.
- Ein Problem wurde behoben, das beim Öffnen der Kamera zu einem
java.lang.IllegalStateException at Camera$StateCallback.onError
-Fehler geführt hat. - Es wurde ein Problem behoben, bei dem Auflösungen ausgewählt wurden, die zu klein waren (weniger als 640 × 480), wenn die App größere oder Standardauflösungen angefordert hat. Dies führte zu einem blockigen oder verschwommenen Vorschaubild. Anwendungen, die kleinere Auflösungen benötigen, können diese explizit anfordern.
- Es wurde ein Problem behoben, durch das die Kamera einen schwarzen Bildschirm anzeigte (die Kamera konnte nicht gestartet werden), nachdem sie von einem Intent zurückgekehrt war, der eine andere Kameraanwendung gestartet hatte.
- Ein Fehler wurde behoben, der beim wiederholten Starten oder Beenden von Apps den folgenden Fehler verursacht hat:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- Der folgende Fehler, der beim Deaktivieren von „Bildanalyse“ auftritt, wurde behoben:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- Es wurden zusätzliche Tests für den Ablauf beim Trennen der Kamera hinzugefügt.
- Die Robustheit des Testsystems wurde verbessert, wenn mehrere Kameratests direkt nacheinander ausgeführt werden.
Camera-Camera2 und Camera-Core Version 1.0.0-alpha05
5. September 2019
androidx.camera:camera-camera2:1.0.0-alpha05
und androidx.camera:camera-core:1.0.0-alpha05
werden veröffentlicht. Hier findest du die Commits, die in camera-camera2:1.0.0-alpha05 enthalten sind, und hier die Commits, die in camera-core:1.0.0-alpha05 enthalten sind.
API-Änderung: Variablen für Anwendungsfallfehler umbenannt:
ImageCapture.UseCaseError
wird inImageCapture.ImageCaptureError
umbenannt.VideoCapture.UseCaseError
wird inVideoCapture.VideoCaptureError
umbenannt.
CameraControl
API mit Tap-to-Focus-APIs hinzugefügtEs wurde eine API hinzugefügt, mit der ein
CameraControl
von CameraX für eine Kamera abgerufen werden kann, die nach Ausrichtung des Objektivs ausgewählt wird:CameraX.getCameraControl(LensFacing lensFacing)
MeteringPointFactory
,MeteringPoint
,MeteringMode
undFocusMeteringAction
wurden hinzugefügt, um „Fokus durch Tippen“ auszuführen:MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height); MeteringPoint point = factory.createPoint(x, y); FocusMeteringAction action = FocusMeteringAction.Builder.from(point, MeteringMode.AF_ONLY) .addPoint(point2, MeteringMode.AE_ONLY) // could have many .setAutoFocusCallback(new OnAutoFocusListener(){ public void onFocusCompleted(boolean isSuccess) { } }) // auto calling cancelFocusAndMetering in 5 sec. .setAutoCancelDuration(5, TimeUnit.Second) .build();
API für
CameraControl
hinzugefügt, um die Fokusmessung zu starten und abzubrechen:getCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
Es wurden APIs für Messstellenfabriken hinzugefügt, die dabei helfen, Tippkoordinaten basierend auf Ansichtsklassen in Sensorkoordinaten zu übersetzen:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
Erzwingen Sie den Aufruf der folgenden Methoden im Hauptthread (UI) und lösen Sie eine
IllegalStateException
aus, wenn dies nicht der Fall ist. In zukünftigen Versionen wird die Verwendung in anderen Threads möglich sein und die Serialisierung wird sichergestellt.CameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
Für verschiedene Konfigurationseinstellungen sind jetzt Nullparameter zulässig und entsprechende Getter können „null“ zurückgeben.
Ein Problem beim Testen auf Emulatoren, die keine AF-/AE-/AWB-Einstellungen unterstützen, wurde behoben.
Ein Absturzfehler beim Drehen während der Bildanalyse wurde behoben.
Ein Fehler wurde behoben, durch den die Vorschau beim Starten, nach dem Drehen oder beim Wechseln zwischen Front- und Rückkamera schwarz angezeigt wurde (keine Kameradaten).
Tests für mehrere gleichzeitige Anwendungsfälle für die Bildanalyse wurden entfernt. Um die Kompatibilität zu gewährleisten, sollten Anwendungen nur einen Anwendungsfall für die Bildanalyse anhängen.
Erste Robolectric-Tests für die gefälschte Kamera in der Kamera-Testsuite hinzugefügt (WIP).
Der Camera2Inititalizer-Test wurde entfernt, da seine Abdeckung unklar/irreführend war.
Camera-Camera2 und Camera-Core Version 1.0.0-alpha04
7. August 2019
androidx.camera:camera-camera2:1.0.0-alpha04
und androidx.camera:camera-core:1.0.0-alpha04
werden veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
Neue Funktionen
Änderungen bei der Auswahl von Seitenverhältnis und Auflösung
Ziel von CameraX ist es, eine Kamerasitzung erfolgreich zu initialisieren. Das bedeutet, dass CameraX die Auflösung und das Seitenverhältnis basierend auf den Gerätefunktionen anpasst, um eine Aufnahmesitzung zu starten. Daher werden genaue Anfragen möglicherweise nicht berücksichtigt. Mögliche Ursachen:
- Geräte, die die angeforderte Auflösung nicht unterstützen
- Kompatibilitätsprobleme, z. B. auf LEGACY-Geräten, auf denen bestimmte Auflösungen verwendet werden müssen, damit sie richtig funktionieren
- Auf einigen Geräten sind bestimmte Formate nur bei bestimmten Seitenverhältnissen verfügbar.
- Eine Präferenz für „nearest mod16“ für die JPEG- oder Videocodierung. Siehe
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
Obwohl CameraX die Sitzung erstellt und verwaltet, sollten Sie immer die zurückgegebenen Bildgrößen in der Ausgabe des Anwendungsfalls in Ihrem Code prüfen und entsprechend anpassen.
Es wurden einige Änderungen an der Festlegung von Auflösungen und Seitenverhältnissen vorgenommen, um die API verständlicher zu gestalten:
- Für den Vorschau-Anwendungsfall wird jetzt standardmäßig ein Seitenverhältnis von 4:3 verwendet, wenn keines festgelegt ist.
- Wenn CameraX intern Änderungen an angeforderten Auflösungen und Seitenverhältnissen basierend auf der Gerätefunktion vornimmt, wird zuerst versucht, das gleiche Seitenverhältnis beizubehalten (wie durch
setTargetAspectRatio
- odersetTargetResolution
-Aufrufe bestimmt). - Eine „Nearest mod16“-Version der Auflösung wird als dasselbe Seitenverhältnis betrachtet.
ImageAnalysis Non-Blocking Mode
- Das Verhalten von
ImageReaderMode.ACQUIRE_LATEST_IMAGE
ist jetzt nicht blockierend. Es wird das neueste Bild in der Warteschlange abgerufen, aber ungenutzte Bilder werden kontinuierlich verworfen, damit die Kamerapipeline nicht blockiert wird. - Der Analyzer kann ein einzelnes Bild auf unbestimmte Zeit speichern, ohne die Pipeline zu blockieren.
- Wenn die Anwendung einen Executor bereitstellt, der dann blockiert wird, wird der ImageAnalysis-Anwendungsfall blockiert.
- Der standardmäßige Executor-Satz verhält sich intern wie ein nicht blockierender Executor.
Fehlerkorrekturen
- Es wurden Zeitüberschreitungsprobleme behoben, die beim Warten auf die 3A-Konvergenz beim Aufnehmen von Bildern auf Geräten ohne Autofokus, automatische Belichtung und automatischen Weißabgleich auftraten.
- Ein Problem beim schnellen Aufnehmen von Bildern mit ImageCapture wurde behoben. Fehlerkorrekturen:
java.lang.IllegalStateException: maxImages (2) has already been acquired
- Ein Problem wurde behoben, bei dem
setLensFacing
für einen Anwendungsfall nicht aufgerufen wurde, was zujava.lang.IllegalArgumentException: Unable to get camera ID for use case
führte. - Ein Problem wurde behoben, bei dem für LEGACY-Geräte ein bestimmtes Seitenverhältnis als maximale JPEG-Auflösung erforderlich war.
- Ein Problem wurde behoben, das beim Minimieren der App während des Öffnens der Kamera auftrat.
- Problem bei API < 25 behoben, Fehler
checkAndUpdateEglState: invalid current EGLDisplay
entfernt - Ein Problem wurde behoben, das beim Aufheben der Bindung der Vorschau nach dem Aktivieren und Starten von Erweiterungen auftrat.
- Build-Artefakte für die Kameraansicht und Kameraerweiterungen werden jetzt als Alphaversionen veröffentlicht.
Camera-Camera2 und Camera-Core Version 1.0.0-alpha03
2. Juli 2019
androidx.camera:camera-core:1.0.0-alpha03
und androidx.camera:camera-camera2:1.0.0-alpha03
werden veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
API-Änderungen
- Javadoc-Klarstellung für „target“ in setTarget-Konfigurationsaufrufen hinzugefügt
Camera-Core
- Absturz der nicht konfigurierten Ein-/Ausgabeoberfläche bei schnellem Öffnen/Schließen oder Binden/Entbinden behoben
- Zu neuen Futures-Implementierungen wechseln
- Korrekturen testen, um die Tests robuster zu machen
- Im Core-Integrationstest wird jetzt die Aufnahmezeit für Fotos angezeigt
- Interne Kompatibilitätsklasse für Executors entwickelt
- Die Timing-Test-App wartet, bis die vorherige Aufnahme abgeschlossen ist, bevor sie Bilder aufnimmt. Außerdem wurde die Stabilität verbessert.
Erweiterungen
- Versionsprüfungen hinzugefügt
- Zusätzliche Testabdeckung – Erweiterungsereignis-Callbacks
- Verbesserungen bei intern übereinstimmenden Bildern und Metadaten
- Fehlerbehebungen beim Wechseln des Modus in der Test-App
Camera-Camera2 und Camera-Core Version 1.0.0-alpha02
5. Juni 2019
androidx.camera:camera-core:1.0.0-alpha02
und androidx.camera:camera-camera2:1.0.0-alpha02
werden veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Fehlerkorrekturen
- Problem mit Division durch null bei Verwendung des Emulators behoben
- Der Fehler „NullPointerException/Surface Abandoned“ wurde behoben, der auf einigen Geräten aufgetreten ist, wenn schnell Fotos aufgenommen wurden, während Anwendungsfälle schnell entbunden und neu gebunden wurden.
- Ein internes Problem wurde behoben, damit sich Aktualisierungen von Erfassungsanfragen einheitlich auf alle Oberflächen auswirken.
- Stabilitätsverbesserungen beim Neustarten von Anwendungsfällen in neuen App-Instanzen
- Interne Architekturänderungen zur Vorbereitung auf die Unterstützung von Executors in der API
- Zusätzliche Javadoc-Klarstellungen zur CameraX-Klasse und zur Lebenszyklusverwaltung
- Instrumentierte Tests für die Antelope-Leistungstest-App hinzugefügt
- Entfernen der Notwendigkeit von „-keepattributes Signature“ in der Proguard-Konfiguration der App
Camera-Camera2 und Camera-Core 1.0.0-alpha01
7. Mai 2019
androidx.camera:camera-core:1.0.0-alpha01
und androidx.camera:camera-camera2:1.0.0-alpha01
werden veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Camera-Lifecycle-Version 1.0.0-beta11
14. Oktober 2020
androidx.camera:camera-lifecycle:1.0.0-beta11
wird veröffentlicht. Version 1.0.0-beta11 enthält diese Commits.
Fehlerkorrekturen
<UseCase>.getTargetRotation()
gibtSurface.ROTATION_0
zurück, wenn es vor dem Anhängen an eine Kamera-Instanz aufgerufen wird, es sei denn, eine targetRotation wurde im Builder oder UseCase festgelegt. (I80fcd)
Camera-Lifecycle Version 1.0.0-beta10
23. September 2020
androidx.camera:camera-lifecycle:1.0.0-beta10
wird veröffentlicht. Version 1.0.0-beta10 enthält diese Commits.
Fehlerkorrekturen
- Release zur Unterstützung von Camera-Core 1.0.0-beta10
Camera-Lifecycle Version 1.0.0-beta09
16. September 2020
androidx.camera:camera-lifecycle:1.0.0-beta09
wird veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.
Camera-Lifecycle Version 1.0.0-beta08
19. August 2020
androidx.camera:camera-lifecycle:1.0.0-beta08
wird veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.
Fehlerkorrekturen
- Die Initialisierung sollte nicht mehr abstürzen, wenn ein Kontext verwendet wird, der kein Anwendungsobjekt von
Context.getApplicationContext()
zurückgibt. (I3d3c9, b/160817073)
Camera-Lifecycle Version 1.0.0-beta07
22. Juli 2020
androidx.camera:camera-lifecycle:1.0.0-beta07
wird veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.
Camera-Lifecycle Version 1.0.0-beta06
24. Juni 2020
androidx.camera:camera-lifecycle:1.0.0-beta06
wird veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.
API-Änderungen
- CameraX kann jetzt mit ProcessCameraProvider#configureInstance() konfiguriert werden, bevor ProcessCameraProvider#getInstance() aufgerufen wird. So kann die CameraXConfig angepasst werden, ohne dass CameraXConfig.Provider in der Application-Klasse der App implementiert werden muss. (Ia1a8d)
Camera-Lifecycle Version 1.0.0-beta05
10. Juni 2020
androidx.camera:camera-lifecycle:1.0.0-beta05
wird veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.
Fehlerkorrekturen
- Das Problem mit Abstürzen beim Starten der App beim Initialisieren von CameraX, wenn sich das Smartphone im Modus „Bitte nicht stören“ befindet, wurde behoben. Ein
InitializationException
, das einCameraUnavailableException
enthält, wird auf dasListenableFuture
des Initialisierungsergebnisses festgelegt, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)
Camera-Lifecycle Version 1.0.0-beta04
27. Mai 2020
androidx.camera:camera-lifecycle:1.0.0-beta04
wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
Camera-Lifecycle Version 1.0.0-beta03
15. April 2020
androidx.camera:camera-lifecycle:1.0.0-beta03
wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
Fehlerkorrekturen
- Eine Regression aus Beta 03 wurde behoben, bei der beim Aufrufen von
bindToLifecycle()
mit nullUseCase
s eine Ausnahme ausgelöst wurde. Dadurch wurde verhindert, dass eineCamera
ohne Bindung einerUseCase
abgerufen werden konnte. - Korrekturen zur Unterstützung der Veröffentlichung von
camera-core
Camera-Lifecycle Version 1.0.0-beta01
26. Februar 2020
androidx.camera:camera-lifecycle:1.0.0-beta01
wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- Die Dokumentation wurde korrigiert, um darauf hinzuweisen, dass bei der Initialisierung eines
ProcessCameraProvider
eine Standardkonfiguration verwendet wird und dass die Erweiterung vonApplication
optional ist. (I5e395)
Camera-Lifecycle Version 1.0.0-beta02
1. April 2020
androidx.camera:camera-lifecycle:1.0.0-beta02
wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Aktualisiert, um die Fehlerkorrekturen in den Artefakten
camera-camera2:1.0.0-beta02
undcamera-core:1.0.0-beta02
zu unterstützen.
Camera-Lifecycle Version 1.0.0-alpha10
10. Februar 2020
androidx.camera:camera-lifecycle:1.0.0-alpha10
wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
API-Änderungen
- Die Annotation
@MainThread
wurde den Methoden „BindToLifecycle“, „unbind“ und „unbindAll“ hinzugefügt. (I990d2)
Camera-Lifecycle Version 1.0.0-alpha03
22. Januar 2020
androidx.camera:camera-lifecycle:1.0.0-alpha03
wird veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
Updates
- Verschiedene Fehlerkorrekturen und Updates zur Unterstützung von Camera Core- und Camera2-Änderungen.
Camera-Lifecycle Version 1.0.0-alpha02
18. Dezember 2019
androidx.camera:camera-lifecycle:1.0.0-alpha02
wird veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Änderungen an Abhängigkeiten
- Aktualisiert, um
androidx.camera:camera-core:1.0.0-alpha08
zu verwenden.
Camera-Lifecycle Version 1.0.0-alpha01
4. Dezember 2019
androidx.camera:camera-lifecycle:1.0.0-alpha01
wird veröffentlicht. Version 1.0.0-alpha01 von camera-lifecycle enthält diese Commits
API-Hinweise
- Das Artefakt für den Kameralebenszyklus wird hinzugefügt und bietet die
LifeCycleCameraProvider
-Schnittstelle und eine Implementierung namensProcessCameraProvider
, die viele der Funktionen der vorherigen CameraX-Klasse im Core bietet und über einegetInstance()
-Methode abgerufen wird. - Apps sollten die CameraX-Bibliothek für den Kameralebenszyklus enthalten, um CameraX zu verwenden.
- Hinweise zur Initialisierung von CameraX mit einem
ProcessCameraProvider
finden Sie im Abschnitt camera-core.
Kamera-Erweiterungen und Kameraansicht Version 1.0.0
Version 1.0.0-alpha32
15. Dezember 2021
androidx.camera:camera-extensions:1.0.0-alpha32
und androidx.camera:camera-view:1.0.0-alpha32
werden veröffentlicht. Version 1.0.0-alpha32 enthält diese Commits.
API-Änderungen
- Unnötige
@RequiresApi(21)
-Annotationen aus den inneren Klassen/Schnittstellen wurden entfernt. (I8e286, b/204917951) - API-Dateien für das Artefakt „camera-extensions“ aktualisieren (If683a, b/161377155)
Fehlerkorrekturen
- Verhindert, dass die App Erweiterungsmodi aktiviert, wenn
VideoCapture
gebunden wird. CameraX-Erweiterungen unterstützen nurImageCapture
undPreview
.VideoCapture
kann noch nicht unterstützt werden. Wenn die AppVideoCapture
bindet und einen Erweiterungsmodus aktiviert, wird eineIllegalArgumentException
ausgelöst. (I0d87b) CameraSelector#filter
löst nicht mehr die AusnahmeIllegalArgumentException
aus, wenn das Ergebnis-Set leer ist. (I27804)- Die
ExtensionsManager#getInstance
API wurde ingetInstanceAsync
umbenannt, da sieListenableFuture
zurückgibt. Das Suffix „Async“ im Funktionsnamen macht deutlich, dass es sich um eine asynchrone Funktion handelt. (I279d2) - Entfernen Sie den Auflösungsparameter aus der
ExtensionsManager#getEstimatedCaptureLatencyRange
API, da Nutzer nicht wissen können, welche Größen für denImageCapture
-Anwendungsfall unterstützt werden, und nicht unterscheiden können, ob sich die zurückgegebenen Latenzinformationen auf die maximale Erfassungs-Ausgabegröße oder den Eingabeauflösungsparameter beziehen. (I74bb2) - Verschieben Sie den Parameter
CameraProvider
der FunktionenExtensionsManager
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 veröffentlicht. Version 1.0.0-alpha31 enthält diese Commits.
API-Änderungen
- CameraSelector#filter wurde der öffentlichen API hinzugefügt, um eine Liste von CameraInfos basierend auf einem CameraSelector zu filtern. (I105d0)
Fehlerkorrekturen
- Ein Absturz wurde behoben, der auf bestimmten Geräten beim schnellen Wechseln des Erweiterungsmodus auftrat. (Iebbef)
Version 1.0.0-alpha30
13. Oktober 2021
androidx.camera:camera-extensions:1.0.0-alpha30
und androidx.camera:camera-view:1.0.0-alpha30
werden veröffentlicht. Version 1.0.0-alpha30 enthält diese Commits.
API-Änderungen
- Der Annotation @RequiresApi(21) wurde allen CameraX-Klassen hinzugefügt und minSdkVersion wurde aus AndroidManifest.xml entfernt. Dadurch kann „camera-core“ problemlos in Anwendungen mit einem minSdkVersion unter 21 eingebunden werden, die jedoch bedingt Codepfade verwenden möchten, die auf API 21 und höher basieren. Bei Apps mit minSdkVersion 21 oder höher ist keine Aktion erforderlich. (Ie7f2e, b/200599470)
Fehlerkorrekturen
- Das Problem „AbstractMethodError“ wurde behoben, das auftritt, wenn ProGuard aktiviert ist. (Iae468, b/201177844)
Version 1.0.0-alpha29
29. September 2021
androidx.camera:camera-extensions:1.0.0-alpha29
und androidx.camera:camera-view:1.0.0-alpha29
werden veröffentlicht. Version 1.0.0-alpha29 enthält diese Commits.
API-Änderungen
- Die Annotation „ExperimentalUseCaseGroup“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I01ef5)
RotationProvider#removeAllListeners()
entfernen. Verwenden Sie stattdessenRotationProvider#removeListener(...)
. (Id9d4a)- Die Klasse „RotationReceiver“ wurde aktualisiert: „set/clear Listener“ wurde in „add/remove/removeAll“ geändert, die „setListener“-Variante, die standardmäßig den Hauptthread verwendet, wurde entfernt und Methoden wurden mit Anmerkungen versehen. (Ib1669)
Fehlerkorrekturen
- ExtensionMode#BEAUTY wurde in FACE_RETOUCH umbenannt, um die Funktion des Erweiterungsmodus korrekt darzustellen. (I61f54, b/198515274)
- Das Problem, dass die Kamera unerwartet geschlossen wurde, wenn mehrere CameraController und PreviewView in einer Activity verwendet wurden, wurde behoben. (Ibfd18, b/197539358)
Version 1.0.0-alpha28
18. August 2021
androidx.camera:camera-extensions:1.0.0-alpha28
und androidx.camera:camera-view:1.0.0-alpha28
werden veröffentlicht. Version 1.0.0-alpha28 enthält diese Commits.
API-Änderungen
- Die Annotation „ExperimentalUseCaseGroupLifecycle“ wurde entfernt, da die APIs nicht mehr experimentell sind. (I17b85)
- RotationListener wurde umgestaltet und in RotationProvider umbenannt. Sie bietet weiterhin dieselbe Funktion, aber mit einer leicht anderen API. (Idffc5)
- Benennen Sie TAP_TO_FOCUS_UNSUCCESSFUL in TAP_TO_FOCUS_NOT_FOCUSED und TAP_TO_FOCUS_SUCCESSFUL in TAP_TO_FOCUS_FOCUSED um. OutputSize als „final“ festgelegt (I099fa)
Fehlerkorrekturen
- Die eingestellten
<EffectName><UseCase>Extender
-Klassen, ExtensionsErrorListener und zugehörige ExtensionsManager-APIs wurden entfernt. (I3b8c3)
Version 1.0.0-alpha27
21. Juli 2021
androidx.camera:camera-extensions:1.0.0-alpha27
und androidx.camera:camera-view:1.0.0-alpha27
werden veröffentlicht. Version 1.0.0-alpha27 enthält diese Commits.
API-Änderungen
- Die Viewport API ist nicht mehr experimentell. Entfernen Sie die experimentelle Anmerkung der API. (I717ea)
CoordinateTransform#getTransform
wurde inCoordinateTransform#transform
umbenannt und JavaDoc wurde aktualisiert (I864ae)
Fehlerkorrekturen
- Das Problem mit dem Strecken im
PreviewView PERFORMANCE
-Modus bei der Verwendung zusammen mit Compose UI wurde behoben. (Ie1137, b/183864890)
Version 1.0.0-alpha26
30. Juni 2021
androidx.camera:camera-extensions:1.0.0-alpha26
und androidx.camera:camera-view:1.0.0-alpha26
werden veröffentlicht. Version 1.0.0-alpha26 enthält diese Commits.
API-Änderungen
- Fügen Sie eine neue Methode
CameraController#getTapToFocusState()
hinzu, die das letzte Ergebnis von „Tippen zum Fokussieren“ verfügbar macht. (Iaccb0) - CameraController wurden weitere Kamera-Kernfunktionen hinzugefügt: Getter/Setter für das Ziel-Seitenverhältnis, die Zielauflösung, den Aufnahmemodus, CameraControl und benutzerdefinierte Executors. (Iea8f2)
- Fügen Sie eine RotationReceiver-Klasse hinzu, die Änderungen an der Oberflächenrotation empfängt. Damit kann die Zielrotation festgelegt werden, wenn sich das Gerät im festen Hoch- oder Querformat befindet. (Ib278f)
- Es wurden neue öffentliche APIs vom Typ „getEstimatedCaptureLatencyRange“ in der ExtensionsManager-Klasse bereitgestellt. (I6a8ec)
- Deprecated ExtensionsErrorListener. Derzeit wird diese Schnittstelle nur verwendet, um zu prüfen, ob eine Vorschau oder ImageCapture fehlt, wenn Erweiterungsmodi aktiviert werden. CameraX fügt automatisch eine zusätzliche Vorschau oder ImageCapture hinzu, damit die Erweiterungsfunktionen gut funktionieren. Danach wird über diese Schnittstelle kein Fehler mehr gemeldet. (I47d9e)
- Die öffentlichen APIs „ExtensionsManager getInstance“, „isExtensionAvailable“ und „getExtensionEnabledCameraSelector“ wurden eingeführt und die alten
<EffectName><UseCase>Extender
-Klassen und zugehörigen APIs wurden eingestellt. (I329e6)
Version 1.0.0-alpha25
2. Juni 2021
androidx.camera:camera-extensions:1.0.0-alpha25
und androidx.camera:camera-view:1.0.0-alpha25
werden veröffentlicht. Version 1.0.0-alpha25 enthält diese Commits.
API-Änderungen
- Die experimentellen CameraFilter-APIs sind jetzt nicht mehr experimentell und werden zu offiziellen APIs. Sie können ohne annotiertes Opt-in verwendet werden. (I4bc94)
- Fügen Sie ein Tool hinzu, mit dem Koordinaten zwischen Anwendungsfällen transformiert werden können. Beispiel für die Verwendung: Transformieren der im Anwendungsfall „ImageAnalysis“ erkannten Koordinaten und Hervorheben des erkannten Objekts in der Vorschau. (I63ab1, b/137515129)
CameraView
wurde entfernt.CameraView
wurde durchCameraController
ersetzt. Weitere Informationen zur Migration (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 veröffentlicht. Version 1.0.0-alpha24 enthält diese Commits.
Fehlerkorrekturen
- Die Anmerkung
@Experimental
wurde durch@RequiresOptIn
für experimentelle APIs ersetzt. Verwenden Sie zum Aufrufen experimenteller APIsandroidx.annotation.OptIn
anstelle des eingestelltenandroidx.annotation.experimental.UseExperimental
. (Iff226) - Das Problem mit der gestreckten PreviewView auf dem Samsung J5 Prime wurde behoben (Ib10b6).
Kamera-Erweiterungen und Ansicht Version 1.0.0-alpha23
24. März 2021
androidx.camera:camera-extensions:1.0.0-alpha23
und androidx.camera:camera-view:1.0.0-alpha23
werden veröffentlicht. Version 1.0.0-alpha23 enthält diese Commits.
API-Änderungen
- CameraView wird eingestellt. Verwenden Sie stattdessen
LifecycleCameraController
. Migrationsanleitung (Idac2c) - Die Annotation „FloatRange“ wurde zu „setLinearZoom()“ hinzugefügt (I69971).
Fehlerkorrekturen
- Abhängigkeiten der angepinnten Kameraansicht, die auf 1.0.0-Artefakten basieren. Die Abhängigkeit von „camera-view“ führt nicht mehr dazu, dass die Abhängigkeitsauflösung von Gradle „camera-core“, „camera-camera2“ und „camera-lifecycle“ automatisch auf die neuesten 1.1.0-Artefakte aktualisiert. „camera-view“ ist jedoch weiterhin mit diesen Artefakten kompatibel, wenn sie explizit auf die Verwendung von 1.1.0 festgelegt sind. (Ic8fa1, b/181599852)
- Es wurde ein Problem behoben, bei dem die Vorschau auf dem Samsung A3 in PreviewView gestreckt dargestellt wurde. (Iacb30, b/180121821)
- Das Problem, dass die Kameraauswahl nicht festgelegt werden kann, bevor die Kamera initialisiert wird, wurde behoben. (Ic8bd0)
Kamera-Erweiterungen und Ansicht Version 1.0.0-alpha22
24. Februar 2021
androidx.camera:camera-extensions:1.0.0-alpha22
und androidx.camera:camera-view:1.0.0-alpha22
werden veröffentlicht. Version 1.0.0-alpha22 enthält diese Commits.
API-Änderungen
- CameraController einen CameraInfo-Getter hinzufügen. (Ib8138, b/178251727)
Fehlerkorrekturen
- Es wurde ein Fehler im ExtensionsErrorListener behoben, der dazu führte, dass Fehler gemeldet wurden, wenn nur Preview oder ImageCapture gebunden war. (I5ae39)
Kamera-Erweiterungen und Ansicht Version 1.0.0-alpha21
27. Januar 2021
androidx.camera:camera-extensions:1.0.0-alpha21
und androidx.camera:camera-view:1.0.0-alpha21
werden veröffentlicht. Version 1.0.0-alpha21 enthält diese Commits.
Veröffentlichung zur Unterstützung anderer Artefakte der Kameralibrary.
Kamera-Erweiterungen und Ansicht Version 1.0.0-alpha20
16. Dezember 2020
androidx.camera:camera-extensions:1.0.0-alpha20
und androidx.camera:camera-view:1.0.0-alpha20
werden veröffentlicht. Version 1.0.0-alpha20 enthält diese Commits.
Veröffentlichung zur Unterstützung anderer Artefakte der Kameralibrary.
Kamera-Erweiterungen und Kameraansicht Version 1.0.0-alpha19
11. November 2020
androidx.camera:camera-extensions:1.0.0-alpha19
und androidx.camera:camera-view:1.0.0-alpha19
werden veröffentlicht. Version 1.0.0-alpha19 enthält diese Commits.
Fehlerkorrekturen
- Die Anmerkung „
@ExperimentalVideo
“ wurde in der Kameraansicht eingeführt. Diese Anmerkung kennzeichnet APIs, die experimentelle Videofunktionen enthalten, die sich ändern können, wenn die Funktionen vollständig entwickelt werden. Für jede Methode, die diese APIs verwendet, sollte die Annotation@UseExperimental
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 vor dem Anhängen an eine Kamera-Instanz aufgerufen wird, es sei denn, eine targetRotation wurde im Builder oder UseCase festgelegt. (I80fcd)
Camera-View Version 1.0.0-alpha18
14. Oktober 2020
androidx.camera:camera-view:1.0.0-alpha18
wird veröffentlicht. Version 1.0.0-alpha18 enthält diese Commits.
Veröffentlichung zur Unterstützung anderer Artefakte der Kameralibrary.
Camera-Extensions Version 1.0.0-alpha17
23. September 2020
androidx.camera:camera-extensions:1.0.0-alpha17
wird veröffentlicht. Version 1.0.0-alpha17 enthält diese Commits.
Fehlerkorrekturen
- Release zur Unterstützung von Camera-Core 1.0.0-beta10
Camera-View Version 1.0.0-alpha17
23. September 2020
androidx.camera:camera-view:1.0.0-alpha17
wird veröffentlicht. Version 1.0.0-alpha17 enthält diese Commits.
Fehlerkorrekturen
- Release zur Unterstützung von 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
- Der Klasse
ExtensionsManager
wurde eine Methode hinzugefügt, mit der einExtensions
-Objekt abgerufen werden kann, das zum Aktivieren und Abfragen von Erweiterungen für Kamera-Instanzen verwendet wird (I4fb7e).
Camera-View Version 1.0.0-alpha16
16. September 2020
androidx.camera:camera-view:1.0.0-alpha16
wird veröffentlicht. Version 1.0.0-alpha16 enthält diese Commits.
API-Änderungen
PreviewView#setDeviceRotationForRemoteDisplayMode()
undPreviewView#getDeviceRotationForRemoteDisplayMode()
wurden entfernt. Die beiden Methoden dienen zum Anpassen der Vorschaurotation, wenn die gewünschte Rotation nicht die Displayrotation ist, z.B. bei einem Remote-Display. Um die Rotation der Vorschau ohne Display jetzt zu verarbeiten, legen Sie die gewünschte Rotation 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
- Erzwingt die Verwendung von TextureView für PreviewView, wenn der Erweiterungseffekt aktiviert ist und die Implementierung der Anbieterbibliothek eine spezielle Verarbeitung auf der Ausgabefläche erfordert. (I0c3cc)
- Beliebige Zielrotation für die Vorschau zulassen. Die Transformationsinformationen werden dynamisch über einen neuen
TranformationInfoListener
-Callback berechnet und an den Nutzer zurückgegeben. (I21470)
Bekannte Probleme
- In PreviewView wird
OnClickListener#onClick()
nicht aufgerufen, wenn der Endnutzer auf PreviewView klickt. Das Touch-Ereignis wird fälschlicherweise von PreviewView#onTouchEvent() verarbeitet. Das Problem wird im nächsten Release behoben. - Der von
PreviewView#getMeteringPointFactory()
abgerufene MeteringPoint ist möglicherweise falsch, wenn ViewPort mit PreviewView verwendet wird.
Camera-Extensions Version 1.0.0-alpha15
19. August 2020
androidx.camera:camera-extensions:1.0.0-alpha15
wird veröffentlicht. Version 1.0.0-alpha15 enthält diese Commits.
Fehlerkorrekturen
- Die Methode
ExtensionsManager.init()
verwendet jetzt einen Kontext als Parameter anstelle von 0 Argumenten. (Ife754) Die Initialisierung sollte nicht mehr abstürzen, wenn ein Kontext verwendet wird, der kein Anwendungsobjekt von
Context.getApplicationContext()
zurückgibt. (I3d3c9, b/160817073)Camera-View Version 1.0.0-alpha15
19. August 2020
androidx.camera:camera-view:1.0.0-alpha15
wird veröffentlicht. Version 1.0.0-alpha15 enthält diese Commits.
Fehlerkorrekturen
DisplayOrientedMeteringPointFactory
akzeptiert eineCameraInfo
-Instanz anstelle einerCameraSelector
. So kann direkt zugeordnet werden, für welche Kamera die Fabrik Punkte generiert. Alle Klassen, dieDisplayOrientedMeteringPointFactory
verwenden, akzeptieren auch eineCameraInfo
-Instanz anstelle vonCameraSelector
. (I400c1)TextureViewMeteringPointFactory
wurde entfernt.PreviewView
bietet eine öffentliche API (createMeteringPointFactory()
) zum Erstellen einer Zählerpunkt-Factory, unabhängig davon, ob sieTextureView
oderSurfaceView
verwendet. (Ide693)- Benennen Sie die Implementierungsmodi
SURFACE_VIEW
/TEXTURE_VIEW
von PreviewView inPERFORMANCE
/COMPATIBLE
um.PERFORMANCE
ist der alte ModusSURFACE_VIEW
undCOMPATIBLE
der alte ModusTEXTURE_VIEW
. (I0edc2) - Überschreiben Sie für die Bildaufnahme das Flag „Horizontal spiegeln“ in den Metadaten basierend auf der Kameraausrichtung. (I28499)
Camera-Extensions Version 1.0.0-alpha14
22. Juli 2020
androidx.camera:camera-extensions:1.0.0-alpha14
wird veröffentlicht. Version 1.0.0-alpha14 enthält diese Commits.
Camera-View Version 1.0.0-alpha14
22. Juli 2020
androidx.camera:camera-view:1.0.0-alpha14
wird veröffentlicht. Version 1.0.0-alpha14 enthält diese Commits.
Camera-Extensions Version 1.0.0-alpha13
24. Juni 2020
androidx.camera:camera-extensions:1.0.0-alpha13
wird veröffentlicht. Version 1.0.0-alpha13 enthält diese Commits.
Fehlerkorrekturen
- Experimentelle Schnittstellen zum Filtern von Kameras nach Kamera-ID und CameraCharacteristics hinzugefügt. (I28f61)
Camera-View Version 1.0.0-alpha13
24. Juni 2020
androidx.camera:camera-view:1.0.0-alpha13
wird veröffentlicht. Version 1.0.0-alpha13 enthält diese Commits.
Fehlerkorrekturen
- CameraView stürzt nicht mehr mit einer IllegalArgumentException ab, wenn sie an einen LifecycleOwner gebunden wird, dessen Lifecycle kurz nach dem Binden in den Status DESTROYED übergeht. Bei Bindungs-Lifecycles im Status DESTROYED wird nicht versucht, die Kamera zu öffnen. (I7c2b8)
- PreviewView StreamState ist jetzt über CameraView.getPreviewStreamState() verfügbar (I21a2b).
Camera-Extensions Version 1.0.0-alpha12
10. Juni 2020
androidx.camera:camera-extensions:1.0.0-alpha12
wird veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.
Fehlerkorrekturen
- Das Problem mit Abstürzen beim Starten der App beim Initialisieren von CameraX, wenn sich das Smartphone im Modus „Bitte nicht stören“ befindet, wurde behoben. Ein
InitializationException
, das einCameraUnavailableException
enthält, wird auf dasListenableFuture
des Initialisierungsergebnisses festgelegt, anstatt die Anwendung zum Absturz zu bringen. (I9909a, b/149413835)
Camera-View Version 1.0.0-alpha12
10. Juni 2020
androidx.camera:camera-view:1.0.0-alpha12
wird veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.
Fehlerkorrekturen
- Die
PreviewView#getBitmap()
-API wurde hinzugefügt, die eine Bitmap-Darstellung des Inhalts zurückgibt, der auf der Vorschauoberfläche angezeigt wird. (I9b500, b/157659818)
Camera-Extensions Version 1.0.0-alpha11
27. Mai 2020
androidx.camera:camera-extensions:1.0.0-alpha11
wird veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.
Camera-View Version 1.0.0-alpha12
10. Juni 2020
androidx.camera:camera-view:1.0.0-alpha12
wird veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.
Neue Funktionen
API-Änderungen
Fehlerkorrekturen
- Die
PreviewView#getBitmap()
-API wurde hinzugefügt, die eine Bitmap-Darstellung des Inhalts zurückgibt, der auf der Vorschauoberfläche angezeigt wird. (I9b500, b/157659818)
Camera-View Version 1.0.0-alpha11
27. Mai 2020
androidx.camera:camera-view:1.0.0-alpha11
wird veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.
API-Änderungen
- Die
PreviewView#getPreviewStreamState
API wurde hinzugefügt, mit der Apps beobachten können, ob ein Vorschaustream läuft oder nicht. Wenn sich die PreviewView im TEXTURE_VIEW-Modus befindet, wird durch den STREAMING-Status auch sichergestellt, dass das Vorschaubild sichtbar ist. (Ic0906, b/154652477) - Die
PreviewView#setDeviceRotationForRemoteDisplayMode()
API wurde hinzugefügt, um die Geräteausrichtung für Transformationsberechnungen bereitzustellen, wenn die Anwendung im Remote-Display-Modus ausgeführt wird. (I59b95, b/153514525)
Fehlerkorrekturen
- Das Problem mit der verzerrten Vorschau auf
FULL/LIMITED/LEVEL_3
-Kameras mit Android 7.0 und niedriger wurde behoben. Erzwungene Verwendung desImplementationMode#TEXTURE_VIEW
-Modus bei Android-Version 7.0 oder niedriger. (I83e30, b/155085307) - Der Parameter
CameraInfo
wurde ausPreviewView#createSurfaceProvider()
entfernt.PreviewView
ruft ihn jetzt intern ausSurfaceRequest
ab. (If18f0, b/154652477) - Das Standardseitenverhältnis von VideoCapture in CameraView wurde auf 16:9 festgelegt. (Ie6a7b, b/153237864)
- Ein Problem wurde behoben, bei dem ein schwarzer Bildschirm angezeigt wurde, wenn das
PreviewView
-Fragment herausgewischt und dann in ViewPager2 zurückgewischt wurde.Preview
Das Problem wurde auch behoben, wennremoveView(previewview)
und dannaddView(previewView)
verwendet wurde. (Iab555, b/149877652, b/147354615) - Aktualisieren Sie die
CameraView#takePicture()
API, um das Speichern von Bildern inUri
undOutputStream
zu ermöglichen. Aktualisieren Sie die Test-App, damitUri
als kanonisches Beispiel verwendet wird. (Ia2459, b/153607583) - Sie können den Skalierungstyp von PreviewView in einem XML-Layout festlegen, indem Sie das Attribut
ScaleType
festlegen. (I08565, b/153015659) CameraView.ScaleType
wurde entfernt. Verwenden Sie stattdessenPreviewView.ScaleType
, um einen Skalierungstyp mit CameraView festzulegen oder abzurufen. (Ia8974, b/153014831)- Weisen Sie
PreviewView
standardmäßig eine Hintergrundfarbe zu, falls noch keine vorhanden ist. Dadurch wird verhindert, dass Inhalte dahinter sichtbar sind, bevor der Vorschaustream beginnt. (I09fad)
Camera-Extensions Version 1.0.0-alpha10
15. April 2020
androidx.camera:camera-extensions:1.0.0-alpha10
wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
Fehlerkorrekturen
- Korrekturen zur Unterstützung der Veröffentlichung von Camera-Core
Camera-View Version 1.0.0-alpha10
15. April 2020
androidx.camera:camera-view:1.0.0-alpha010
wird veröffentlicht. Version 1.0.0-alpha010 enthält diese Commits.
Fehlerkorrekturen
- Ein bekanntes Problem wurde behoben, bei dem die surfaceView-Implementierung von
PreviewView
auf bestimmten Geräten nicht richtig funktionierte und die App nach dem Fortsetzen der Vorschau abstürzte. (I5ed6b)
Camera-Extensions Version 1.0.0-alpha09
1. April 2020
androidx.camera:camera-extensions:1.0.0-alpha09
wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
Fehlerkorrekturen
- Aktualisiert, um die Fehlerkorrekturen in den Artefakten
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
undcamera-lifecycle:1.0.0-beta02
zu unterstützen
Camera-View Version 1.0.0-alpha09
Am 1. April 2020 wird androidx.camera:camera-view:1.0.0-alpha09
veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
Bekannte Probleme
- Die Verwendung von
ImplementationMode.SURFACE_VIEW
mitPreviewView
funktioniert auf bestimmten Geräten möglicherweise nicht gut, da die für die Vorschau verwendeteSurfaceView
ihre Oberfläche ungültig macht, wenn der Lebenszyklus des Fensters, in dem sie sich befindet, beendet wird. Wenn sie neu gestartet wird, wird die Kamera wieder geöffnet und versucht möglicherweise, die Vorschau fortzusetzen, bevor die Oberfläche 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. Diese Funktion verwendet eine nullableCameraInfo
-Instanz, um die Vorschau nach Möglichkeit mitImplementationMode.SURFACE_VIEW
zu optimieren. Wenn eine Null-Instanz übergeben wird oder Sie den bevorzugten Implementierungsmodus aufImplementationMode.TEXTURE_VIEW
festlegen, wird internImplementationMode.TEXTURE_VIEW
verwendet.Das folgende Codebeispiel zeigt, wie ein Vorschau-Anwendungsfall zuvor mit PreviewView verwendet wurde.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
Derzeit können Sie Folgendes schreiben:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
Die Anmerkung „
@UiThread
“ wurde zuPreviewView.getSurfaceProvider()
hinzugefügt. Das bedeutet, dass sie aus dem Hauptthread aufgerufen werden muss. (I192f3)PreviewView.setScaleType()
wurde hinzugefügt, um den Skalierungstyp der Vorschau festzulegen. Es wird einer der Werte inPreviewView.ScaleType
akzeptiert. Der Standardwert istPreviewView.ScaleType.FILL_CENTER
.PreviewView.getScaleType()
wurde hinzugefügt.Die Unterstützung für das Festlegen des Implementierungsmodus für
PreviewView
in einem XML-Layout mithilfe des AttributsimplementationMode
wurde entfernt.Fügen Sie der PreviewView die
createMeteringPointFactory()
API hinzu, um die Konvertierung von (x, y) inPreviewView
inMeteringPoint
zu unterstützen. (Ib36d7)
Fehlerkorrekturen
- Das Problem, dass nach einer Größenänderung von
PreviewView
eine falsche Vorschau angezeigt wurde, wurde behoben. (I71101)
Camera-Extensions Version 1.0.0-alpha08
26. Februar 2020
androidx.camera:camera-extensions:1.0.0-alpha08
wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Camera-View Version 1.0.0-alpha08
26. Februar 2020
androidx.camera:camera-view:1.0.0-alpha08
wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Fehlerkorrekturen
- Das
ListenableFuture
aufSurfaceRequest.provideSurface()
wurde durch einExecutor
undCallback
ersetzt. Dadurch wird die API vereinfacht, da keine Ausnahmen fürprovideSurface()
mehr behandelt werden müssen. Außerdem wird erzwungen, dass derprovideSurface()
-Callback nicht abgebrochen werden kann. So werden Abstürze auf älteren Geräten verhindert, die durch das vorzeitige Freigeben 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, indem das Flag beibehalten wurde, mit dem der Standardanbieter
CameraXConfig
festgelegt wird. (I2d6c1)
Camera-Extensions Version 1.0.0-alpha07
10. Februar 2020
androidx.camera:camera-extensions:1.0.0-alpha07
wird veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
Fehlerkorrekturen
- Die Argumente, die zuvor in
ImageCapture.OnImageSavedCallback.onError()
undImageCapture.OnImageCapturedCallback.onError()
übergeben wurden, wurden jetzt durch ein einzelnes ArgumentImageCaptureException
ersetzt, das weiterhin alle Informationen enthält, die zuvor übergeben wurden. - Das zuvor in
ImageCapture.OnImageSavedCallback.onImageSaved()
übergebene Dateiargument wurde entfernt. (I750d2)
Camera-View Version 1.0.0-alpha07
10. Februar 2020
androidx.camera:camera-view:1.0.0-alpha07
wird veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
API-Änderungen
- Bei der
PreviewView
-Implementierung vonPreviewView
wird die Größe vonTextureView
jetzt auf die Ausgabegröße des Kamerasensors festgelegt, bevor sie so skaliert wird, dass sie das übergeordnetePreviewView
ausfüllt.TextureView
Wenn die Kameravorschau einen ganzen Teil der Benutzeroberfläche (z. B. den gesamten Bildschirm) ausfüllen soll, dürfen Sie die Größe desPreviewView
nicht auf einen festen Wert festlegen oder den Inhalt umschließen lassen (z. B. mit dem Attribut „wrap_content
“). Andernfalls füllt die Kameravorschau möglicherweise nur einen Teil desPreviewView
aus, 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. Kombinierte überlastetetakePicture
-Methoden in einer. Die Test-App wurde aktualisiert, sodassUri
als kanonisches Beispiel verwendet wird. (Ia3bec)Preview.PreviewSurfaceProvider
wurde inPreview.SurfaceProvider
umbenannt.SurfaceProvider
erfordern nicht mehr, dass Entwickler ihre eigenenListenableFuture
erstellen. Die Bereitstellung einesSurface
erfolgt jetzt über ein neuesSurfaceRequest
-Objekt. Die MethodePreview.getPreviewSurfaceProvider()
wurde entfernt, da sie in Kombination mit anderen Klassen wiePreviewView
missbraucht werden kann.Preview
(I20105)- Die Argumente, die zuvor in
ImageCapture.OnImageSavedCallback.onError()
undImageCapture.OnImageCapturedCallback.onError()
übergeben wurden, wurden jetzt durch ein einzelnes ArgumentImageCaptureException
ersetzt, das weiterhin alle Informationen enthält, die zuvor übergeben wurden. - Das zuvor in
ImageCapture.OnImageSavedCallback.onImageSaved()
übergebene Dateiargument wurde entfernt. (I750d2) - Die API wurde aktualisiert. Die Methoden
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
undgetLinearZoom()
vonCameraInfo
werden ingetZoomState()
zusammengeführt, die eineZoomState
-Instanz zurückgibt. (Ib19fe)
Camera-Extensions Version 1.0.0-alpha06
22. Januar 2020
androidx.camera:camera-extensions:1.0.0-alpha06
wird veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
Updates
- Verschiedene Fehlerkorrekturen und Updates zur Unterstützung von Camera Core- und Camera2-Änderungen.
Camera-View Version 1.0.0-alpha06
22. Januar 2020
androidx.camera:camera-view:1.0.0-alpha06
wird veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
Updates
- Verschiedene Fehlerkorrekturen und Updates zur Unterstützung von Camera Core- und Camera2-Änderungen.
Camera-Extensions Version 1.0.0-alpha05
18. Dezember 2019
androidx.camera:camera-extensions:1.0.0-alpha05
wird veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Fehlerkorrekturen
- Aktualisiert, um den internen Camera Core-APIs zu entsprechen.
Camera-View Version 1.0.0-alpha05
18. Dezember 2019
androidx.camera:camera-view:1.0.0-alpha05
wird veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Bekannte Probleme
- Das Seitenverhältnis ist bei Verwendung von PreviewView möglicherweise falsch (b/146215202).
Neue Funktionen
- Es wurde eine neue Klasse namens
PreviewView.TextureViewImplementation
implementiert, die den Lebenszyklus von SurfaceTexture mit der Verwendung der Oberfläche von TextureView durch die Kamera synchronisiert.
Camera-Extensions Version 1.0.0-alpha04
4. Dezember 2019
androidx.camera:camera-extensions:1.0.0-alpha04
wird veröffentlicht. Version 1.0.0-alpha04 von camera-extensions enthält diese Commits
API-Änderungen
Die Prüfung der Verfügbarkeit und Aktivierung einer Erweiterung erfordert jetzt
CameraSelector
als Eingabeparameter. Es muss dasselbeCameraSelector
sein, das für die Bindung des Anwendungsfalls verwendet wird.val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA val builder = ImageCapture.Builder() val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder) if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) { bokehImageCaptureExtender.enableExtension(cameraSelector) } val imageCapture = builder.build() mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
Sie müssen Erweiterungen initialisieren, bevor Sie die Erweiterungsbibliothek verwenden können.
val availability = ExtensionsManager.init() Futures.addCallback<ExtensionsManager.ExtensionsAvailability>( availability, object : FutureCallback<ExtensionsManager.ExtensionsAvailability> { override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) { // Ready to make extensions calls } override fun onFailure(throwable: Throwable) { // Extensions could not be initialized } }, Executors.newSingleThreadExecutor() )
Camera-View Version 1.0.0-alpha04
4. Dezember 2019
androidx.camera:camera-view:1.0.0-alpha04
wird veröffentlicht. Version 1.0.0-alpha04 von camera-view enthält diese Commits
API-Änderungen
- Für die einfache Darstellung der Ausgabe des Vorschau-Anwendungsfalls in einer Anwendung wird eine
PreviewView
-Klasse bereitgestellt. PreviewView
kann im Layout enthalten sein:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
bietet einePreviewSurfaceProvider
, um einen Vorschau-Anwendungsfall einfach zu verbinden.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
„
ZoomLevel
“ heißt jetzt „ZoomRatio
“ in der API-BenennungDie Nullable-Eigenschaft einiger Methodenparameter hat sich geändert
Kamera-Erweiterungen und Kameraansicht Version 1.0.0-alpha03
9. Oktober 2019
androidx.camera:camera-extensions:1.0.0-alpha03
und androidx.camera:camera-view:1.0.0-alpha03
werden veröffentlicht. Das sind die Commits, die in camera-extensions:1.0.0-alpha03
enthalten sind, und das sind die Commits, die in camera-view:1.0.0-alpha03
enthalten sind.
Neue Funktionen
- Kontextinitialisierung für Erweiterungen hinzugefügt. Version der Erweiterungen auf 1.1.0 erhöht
Kamera-Erweiterungen und Kameraansicht Version 1.0.0-alpha02
5. September 2019
androidx.camera:camera-extensions:1.0.0-alpha02
und androidx.camera:camera-view:1.0.0-alpha02
werden veröffentlicht. Commits in camera-extensions:1.0.0-alpha02 und Commits in camera-view:1.0.0-alpha02
- Es wurden Tests hinzugefügt, um zu prüfen, ob
PreviewImageProcessorImpl
Zeitstempel korrekt implementiert hat. - Beheben Sie den
ExtensionTest
-Testfehler auf dem Nexus 5 (API-Level 21) und sorgen Sie dafür, dass die Vorschau verfügbar ist.
Camera-Extensions und Camera-View Version 1.0.0-alpha01
7. August 2019
androidx.camera:camera-extensions:1.0.0-alpha01
und androidx.camera:camera-view:1.0.0-alpha01
werden veröffentlicht.
Das sind die Commits in camera-extensions:1.0.0-alpha01 und das sind die Commits in camera-view:1.0.0-alpha01.
- Neue Bibliothek für zukünftige Kameraerweiterungen für den Zugriff auf Effekte auf unterstützten Geräten. Diese Bibliothek ist noch in der Entwicklung.
- Neue Klasse „Camera View“. Diese Bibliothek ist noch in der Entwicklung.