CameraX
Questa tabella elenca tutti gli elementi nel gruppo androidx.camera
.
Elemento | Release stabile | Candidato per la release | Versione beta | Versione alpha |
---|---|---|---|---|
camera-camera2 | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-core | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-compose | - | - | - | 1.5.0-alpha04 |
effetti-fotocamera | 1.4.1 | - | - | 1.5.0-alpha04 |
estensioni-videocamera | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-feature-combination-query | - | - | - | 1.5.0-alpha04 |
camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha04 |
camera-lifecycle | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-mlkit-vision | 1.4.1 | - | - | 1.5.0-alpha04 |
visualizzazione-fotocamera | 1.4.1 | - | - | 1.5.0-alpha04 |
mirino della fotocamera | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
video-camera | 1.4.1 | - | - | 1.5.0-alpha04 |
Test del dispositivo
CameraX viene testato su molti dispositivi nel nostro laboratorio. Per visualizzare un elenco dei dispositivi attualmente disponibili nel lab, consulta Dispositivi testati in lab da CameraX.
Dichiarazione delle dipendenze
Per aggiungere una dipendenza da CameraX, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli elementi necessari nel file build.gradle
per la tua app o il tuo modulo:
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-alpha03" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.5.0-alpha03" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.
Versione 1.0 di Componi con il mirino della fotocamera
Versione 1.0.0-alpha02
12 giugno 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
viene rilasciato. La versione 1.0.0-alpha02 contiene questi commit.
Versione 1.0.0-alpha01
14 maggio 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
viene rilasciato. La versione 1.0.0-alpha01 contiene questi commit.
Nuove funzionalità
- Nuova libreria. Questa libreria introduce un composable nativo di Compose per il mirino, che può essere utilizzato con CameraX e Camera2. Il mirino componibile supporta diversi rapporti di aspetto e la gestione degli eventi tocco.
Versione 1.4 del mirino della videocamera
Versione 1.4.0-alpha07
12 giugno 2024
androidx.camera:camera-viewfinder:1.4.0-alpha07
e androidx.camera:camera-viewfinder-core:1.4.0-alpha07
vengono rilasciati. La versione 1.4.0-alpha07 contiene questi commit.
Versione 1.4.0-alpha06
14 maggio 2024
androidx.camera:camera-viewfinder:1.4.0-alpha06
e androidx.camera:camera-viewfinder-core:1.4.0-alpha06
vengono rilasciati. La versione 1.4.0-alpha06 contiene questi commit.
Modifiche all'API
- Rinomina gli enum
ImplementationMode
diViewfinder
per riflettere meglio le implementazioni sottostanti e aggiungi costanti fisse perTransformationInfo.sourceRotation
. (Ic6149) - È stato aggiunto
ZoomGestureDetector.ZoomEvent
per incapsulare gli stati di un gesto di zoom. (I84cdf)
Versione della videocamera 1.5
Versione 1.5.0-alpha04
11 dicembre 2024
androidx.camera:camera-*:1.5.0-alpha04
viene rilasciato. La versione 1.5.0-alpha04 contiene questi commit.
Modifiche all'API
ImageCapture.Builder#setOutputFormat
eImageCaptureCapabilities#getSupportedOutputFormats
sono state esposte come API stabili (Ieb04a)- Aggiungi
VideoCapture.getResolutionInfo()
per ottenere le informazioni sulla risoluzione quando unVideoCapture.getResolutionInfo()
è associato a un ciclo di vita.VideoCapture
(Icb478) - Sono state esposte le API
PreviewView.getScreenFlash
ePreviewView.setScreenFlashOverlayColor
come API stabili. (I74fee)
Correzioni di bug
- È stato risolto il problema di errore di acquisizione sul dispositivo Vivo 1610 durante lo scatto di foto con flash al buio. (I366f4)
- È stato corretto il problema di spegnimento imprevisto della torcia dopo l'acquisizione di immagini su Redmi Note 6 Pro. (I2e0e8, b/377144569)
- È stato risolto un problema sui Pixel con Android 15 in cui la modalità NOTTE in Estensioni non riusciva a acquisire immagini fisse finché la fotocamera non metteva a fuoco un oggetto nelle vicinanze. (I228d4)
- È stato risolto il problema di malfunzionamento dell'acquisizione di immagini quando le estensioni sono attive e
VideoCapture
è unito. (I5c745) - È stato attivato il supporto per l'acquisizione di immagini fisse
UltraHDR
per le Estensioni, se il dispositivo lo supporta. (I48300) - È stato risolto il problema di temporizzazione del flash per l'acquisizione di immagini con flash con
CameraEffect
come target sui dispositivi TCL. (I7698c)
Versione 1.5.0-alpha03
30 ottobre 2024
androidx.camera:camera-*:1.5.0-alpha03
viene rilasciato. La versione 1.5.0-alpha03 contiene questi commit.
Modifiche all'API
- Aggiungi API di formato di output per RAW e RAW + JPEG
ImageCapture
, il controllo delle funzionalità del dispositivo è esposto inImageCaptureCapabilities#getSupportedOutputFormats
.OUTPUT_FORMAT_RAW
serve per acquisire immagini RAW, ovvero in formato Adobe DNG, mentreOUTPUT_FORMAT_RAW_JPEG
serve per acquisire contemporaneamente immagini RAW e JPEG. La nuova APIImageCapture#takePicture
viene utilizzata per l'acquisizione simultanea di immagini e deve fornire dueOutputFileOptions
, il primo per l'immagine RAW e il secondo per l'immagine JPEG. (Ib0f3d)
Correzioni di bug
- È stato risolto il problema di sottoesposizione dell'anteprima e dei video sui dispositivi TCL quando
VideoCapture
è attivo. (Id7a64) - È stato risolto il problema per cui l'attivazione di
startFocusMetering
conPreviewView.getMeteringPointFactory
non restituisce le coordinate del sensore corrette quando è attivato un effetto o quando sono associati quattro casi d'uso (condivisione in streaming). (I916c5, b/345993685) - È stato corretto il problema per cui l'evento
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
non viene attivato durante la registrazione di un video e lo spazio di archiviazione disponibile non è sufficiente. (I35779, b/356399842)
Versione 1.5.0-alpha02
2 ottobre 2024
androidx.camera:camera-*:1.5.0-alpha02
viene rilasciato. La versione 1.5.0-alpha02 contiene questi commit.
Nuove funzionalità
- Nuove API per eseguire query sulle funzionalità della fotocamera supportate dal dispositivo. Ad esempio, controlla se HDR e 60 FPS possono essere attivati contemporaneamente. Sono inclusi due elementi: query-combinazione-funzionalità-fotocamera e query-combinazione-funzionalità-fotocamera-play-services.
Si tratta di una versione compatibile dell'API
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
di Camera2 con dati aggiuntivi forniti da Google Play Services.
Correzioni di bug
- È stato risolto il problema relativo alla frequenza frame target
Preview/VideoCapture
sui dispositivi di livello LEGACY. La frequenza fotogrammi target impostata tramite l'APIsetTargetFrameRate
oCamera2Interop
veniva sempre sovrascritta con il valore fornito daAeFpsRangeLegacyQuirk
. Con questa correzione, la libreria CameraX rispetterà il valore impostato tramite l'APIsetTargetFrameRate
oCamera2Interop
. (Ie2d32) - Aggiunta di funzionalità di flash/torcia/3A per le acquisizioni di immagini con
CameraEffect
. Le acquisizioni di immagini conCameraEffect
ora dovrebbero avere le stesse elaborazioni di pre e post-acquisizione (ad es. attivazione flash, convergenza 3A e così via, se applicabile) delle acquisizioni di immagini senzaCameraEffect
. (I5ff30) - Dimensioni di output problematiche escluse per
ImageAnalysis
sul dispositivo Samsung SM-A057G. QuandoImageAnalysis
utilizza una risoluzione maggiore o uguale a 1920 x 1440, si verifica un problema di anteprima nera. È stato applicatoExcludedSupportedSizesQuirk
al dispositivo SM-A057G per evitare il problema. (I63dfe, b/365877975) - È stato risolto il problema relativo al frame rate target di
Preview/VideoCapture
quando il meccanismo di condivisione dello stream è attivato internamente per condividere uno stream conPreview
eVideoCapture
. (I4fdac) - È stata attivata la soluzione alternativa per risolvere il problema relativo ai metadati delle immagini JPEG errati sui dispositivi Samsung S10e e S10+. Con la correzione, CameraX può salvare correttamente l'immagine JPEG oppure possono essere restituiti oggetti Bitmap corretti quando viene chiamata la funzione
ImageProxy.toBitmap()
su questi dispositivi se si verifica il problema dei metadati dell'immagine JPEG errati. (Iae493, b/356428987) - Estensioni disattivate per la fotocamera posteriore del Samsung A52s il cui ID è 0, perché potrebbero verificarsi arresti anomali nativi durante l'acquisizione di immagini HDR e la configurazione delle sessioni di acquisizione potrebbe non riuscire per le modalità BOKEH o FACE_RETOUCH. (I03ec9, b/364152642)
- È stato corretto il problema per cui l'evento
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
non viene attivato durante la registrazione di un video e lo spazio di archiviazione disponibile non è sufficiente. (Ia5b4f, b/356399842) - È stato risolto il problema per cui il secondo tentativo di registrazione video non andava a buon fine su Oppo A5 (CPH1931). (I181d6)
Versione 1.5.0-alpha01
4 settembre 2024
androidx.camera:camera-*:1.5.0-alpha01
viene rilasciato. La versione 1.5.0-alpha01 contiene questi commit.
Modifiche all'API
- Fornisci un'API per impostare le impostazioni di composizione per l'acquisizione video con due videocamere contemporaneamente. Le impostazioni includono il valore alpha per la miscelazione, l'offset nelle coordinate x e y, la scala della larghezza e dell'altezza della finestra di visualizzazione del frame della videocamera. Lo spostamento, la larghezza e l'altezza sono specificati nelle coordinate del dispositivo normalizzate. (Ia2b8a)
CameraProvider.getCameraInfo
è stata esposta come API formale. (I901cd)- È stata aggiunta l'API
PendingRecording.withAudioEnabled(boolean initialMuted)
per controllare lo stato di disattivazione audio iniziale. (I635c3, b/354829267)
Correzioni di bug
- È stato corretto l'arresto anomalo quando
bindToLifecycle
viene invocato con unLifecycleOwner
distrutto. (I6e6d8) - È stato corretto il problema relativo allo schermo nero dell'anteprima nella fotocamera anteriore durante l'associazione con
VideoCapture
su Motorola Edge 20 Fusion. (I1fe88) - È stata ottimizzata la configurazione per il rilevamento dei gesti di zoom in
PreviewView
per migliorare la fluidità. (I04ffc)
Versione della videocamera 1.4
Versione 1.4.1
11 dicembre 2024
androidx.camera:camera-*:1.4.1
viene rilasciato. La versione 1.4.1 contiene questi commit.
Correzioni di bug
- È stato risolto un problema sui Pixel con Android 15 in cui la modalità NOTTE in Estensioni non riusciva a acquisire immagini fisse finché la fotocamera non metteva a fuoco un oggetto nelle vicinanze. (I228d4)
- È stato risolto il problema di malfunzionamento di
ImageCapture#takePicture
quando le estensioni sono attive eVideoCapture
è vincolato. (I5c745)
Versione 1.4.0
30 ottobre 2024
androidx.camera:camera-*:1.4.0
viene rilasciato. La versione 1.4.0 contiene questi commit.
Modifiche importanti dalla versione 1.3.0
CameraX 1.4.0 è ricca di aggiornamenti interessanti. Ecco un riepilogo:
Funzionalità principale: HDR a 10 bit:
- Scatta foto e video HDR straordinari con facilità.
- Supporta la codifica HLG e HEVC a 10 bit.
- Goditi l'anteprima HDR a 10 bit e esegui query sulle funzionalità del dispositivo.
- Funziona con immagini
UltraHDR
e video HDR su una gamma crescente di dispositivi.
Altre funzionalità interessanti:
- Estensioni Kotlin: sono state aggiunte le funzioni di sospensione
takePicture
eawaitInstance
. - Effetti in tempo reale: applica effetti come filigrane e l'evidenziazione di oggetti.
- API CameraController: nuovi controlli per la configurazione dell'acquisizione video.
- Stabilizzazione dell'anteprima: esegui query sulla funzionalità del dispositivo e attiva la stabilizzazione.
- Miglioramenti a VideoCapture: controllo più preciso della qualità e accesso a risoluzioni più elevate.
- Integrazione di CameraX Extensions: perfetta integrazione con
VideoCapture
e nuove funzionalitàImageCapture
. - API Shutter Sound: controlla facilmente i requisiti relativi al suono dell'otturatore a livello di regione.
- Flash schermo: foto migliorate in condizioni di scarsa illuminazione per le fotocamere anteriori.
- API di metadati delle estensioni della fotocamera: API di supporto per regolare l'efficacia delle estensioni e ricevere una notifica della modalità Estensioni corrente in
ExtensionMode#AUTO
. Puoi trovare altre correzioni di bug nei nostri annunci relativi alle versioni beta e RC.
Versione 1.4.0-rc04
16 ottobre 2024
androidx.camera:camera-*:1.4.0-rc04
viene rilasciato. La versione 1.4.0-rc04 contiene questi commit.
Correzioni di bug
- È stato risolto il problema per cui l'attivazione di
startFocusMetering
conPreviewView.getMeteringPointFactory
non restituisce le coordinate del sensore corrette quando è attivato un effetto o quando sono associati quattro casi d'uso (condivisione in streaming). (I916c5, b/345993685)
Versione 1.4.0-rc03
2 ottobre 2024
androidx.camera:camera-*:1.4.0-rc03
viene rilasciato. La versione 1.4.0-rc03 contiene questi commit.
Correzioni di bug
- Aggiunta di funzionalità di flash/torcia/3A per le acquisizioni di immagini con
CameraEffect
. Le acquisizioni di immagini conCameraEffect
ora dovrebbero avere le stesse elaborazioni di pre e post-acquisizione (ad es. attivazione flash, convergenza 3A e così via, se applicabile) dell'acquisizione di immagini senzaCameraEffect
. (I5ff30) - È stata ottimizzata la fluidità della funzionalità pizzica per aumentare lo zoom in
PreviewView
(I04ffc) - Scollegare l'Ultra HDR dalla funzionalità di uscita a 10 bit, poiché il supporto dell'Ultra HDR non richiede più che i dispositivi dispongano di questa funzionalità. (I96ff2, I0c3b3)
Versione 1.4.0-rc02
18 settembre 2024
androidx.camera:camera-*:1.4.0-rc02
viene rilasciato. La versione 1.4.0-rc02 contiene questi commit.
Correzioni di bug
- È stato corretto l'arresto anomalo quando
bindToLifecycle
viene invocato con unLifecycleOwner
distrutto. (I6e6d8) - È stata aggiunta l'animazione di visibilità in
ScreenFlashView
perScreenFlash#apply
, che corregge anche i bug dovuti al completamento della modifica della luminosità in modo asincrono dopo un po' di tempo. (I37cdb) - È stata migliorata la fluidità dello zoom tramite l'override delle impostazioni di zoom nel framework sui dispositivi supportati.
Versione 1.4.0-rc01
7 agosto 2024
androidx.camera:camera-*:1.4.0-rc01
viene rilasciato. La versione 1.4.0-rc01 contiene questi commit.
Nuove funzionalità
- È stato aggiunto
CameraInfo.getCameraInfo
sperimentale per fornire informazioni specifiche sulla fotocamera senza dover associare casi d'uso alla fotocamera. (I550d1)
Modifiche all'API
- Sono state aggiunte le API
PreviewView.getScreenFlash
ePreviewView.setScreenFlashOverlayColor
per i casi in cuiScreenFlashView
non viene aggiunto esplicitamente. (I43945)
Correzioni di bug
- Sono stati risolti i problemi di esposizione e tinta dei colori quando l'immagine è stata acquisita con il flash abilitato in condizioni di scarsa illuminazione con il caso d'uso VideoCapture vincolato. (Ic9814)
- È stato risolto il problema per cui l'interruzione di una richiesta
takePicture
con le Estensioni abilitate potrebbe non riuscire a ottenere un risultato e la richiestatakePicture
successiva potrebbe non funzionare più. (Iae78f) - È stato risolto un problema di perdita di memoria che si verifica quando le Estensioni sono attivate. (Iab276)
- È stato risolto un malfunzionamento delle estensioni CameraX su dispositivi come Pixel 7/8 e la serie Samsung Galaxy S24. Il problema, derivante da un problema di conversione
Camera2OutputConfigImpl
in modalità di rilascio, è emerso dopo l'upgrade di AGP alla versione 8.5.1 e l'attivazione della minimizzazione. (I99598, b/354824993)
Versione 1.4.0-beta02
12 giugno 2024
androidx.camera:camera-*:1.4.0-beta02
viene rilasciato. La versione 1.4.0-beta02 contiene questi commit.
Modifiche all'API
- Analogamente a
VideoCapture
, aggiungisetMirrorMode
per il caso d'uso Anteprima. Supporterà la modalità di mirroring ON e OFF per lo stream di anteprima tramiteOutputConfiguration.setMirrorMode
a partire dall'API 33 e versioni successive. Per le API precedenti, non verrà eseguita alcuna operazione. (I821f4)
Correzioni di bug
- È stato risolto il problema per cui le app non riescono a scattare foto su Samsung Tab A8 quando
ImageCapture
seleziona 1920 x 1080 nella combinazionePreview
+VideoCapture
+ImageCapture
UseCase
. (I5a463, b/336925549) - È stato corretto il problema per cui la registrazione continua potrebbe non riuscire a continuare dopo il cambio di videocamera. (Icb0a1)
Versione 1.4.0-beta01
14 maggio 2024
androidx.camera:camera-*:1.4.0-beta01
viene rilasciato. La versione 1.4.0-beta01 contiene questi commit.
Modifiche all'API
- È stato aggiunto
ZoomGestureDetector.ZoomEvent
per incapsulare gli stati di un gesto di zoom. (I84cdf)
Correzioni di bug
- È stato corretto un bug per cui la modalità di acquisizione e la funzionalità Tocca per mettere a fuoco non utilizzano i valori FPS/modalità di stabilizzazione della richiesta ripetuta, il che potrebbe ricreare la sessione di acquisizione e causare problemi di latenza o blocco dell'anteprima su alcuni dispositivi. (I7dc0b)
- È stato corretto un bug che impediva la selezione delle risoluzioni elevate quando
CameraEffect
è attivo su alcuni dispositivi. (ad es. 4000 x 3000 su Samsung A32 5G). (Ie3ed3, b/337336152) - È stato corretto un arresto anomalo durante lo scatto di foto con Anteprima quando
ImageCapture
eVideoCapture(UHD)
sono associati su Pixel 4XL API29. (I5b288) - Supporto dei dispositivi virtuali: il contesto passato a
ProcessCameraProvider
manterrà l'ID dispositivo per garantire la funzionalità in un ambiente di dispositivo virtuale. (I5ba48)
Versione 1.4.0-alpha05
17 aprile 2024
androidx.camera:camera-*:1.4.0-alpha05
viene rilasciato. La versione 1.4.0-alpha05 contiene questi commit.
Nuove funzionalità
ProcessCameraProvider
è stato convertito in implementazione Kotlin. (I46d4f)- Sono state aggiunte le funzioni di sospensione
ImageCapture.takePicture
per consentire la chiamata in modo idiomatico Kotlin. (I920be)
Modifiche all'API
- Aggiungi le API di formato di output a
ImageCapture
e il metodogetSupportedOutputFormats
aImageCaptureCapabilities
per eseguire query sulle funzionalità del dispositivo. Il valore predefinito del formato di output èOUTPUT_FORMAT_JPEG
, che acquisisce le immagini SDR in formato JPEG. Quando il dispositivo supporta Ultra HDR e il formato di output è impostato suOUTPUT_FORMAT_JPEG_ULTRA_HDR
, CameraX acquisirà immagini Ultra HDR compresse utilizzando il formato immagine JPEG/R. Il formato è compatibile con le versioni precedenti del formato JPEG SDR e supporta il rendering HDR dei contenuti. Ciò significa che su app o dispositivi meno recenti, le immagini vengono visualizzate senza problemi come normali JPEG; su app e dispositivi che sono stati aggiornati per supportare completamente il formato, le immagini vengono visualizzate come HDR. (I5de50) - Aggiungi
PhysicalCameraInfo
inCameraInfo
per eseguire query sulle informazioni della videocamera fisica e aggiungi il set/get dell'ID della videocamera fisica inCameraSelector
(Ic5b90) - Sostituisci
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
conImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
. Il valore della costante rimane invariato. Questo serve per raggruppare tutte le costanti in un unico posto. (I890bb) - La nuova API
RetryPolicy
consente agli sviluppatori di personalizzare il comportamento di ripetizione per l'inizializzazione di CameraX. (I36dd2) - Attivare la creazione dell'oggetto
ImageCaptureLatencyEstimate
per facilitare la testabilità (Iaba99) - Aggiungi un
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
. Quando viene utilizzato,MlKitAnalyzer
restituisce le coordinate nel sistema di coordinate del sensore della fotocamera. (I3ec61) - API di metadati delle estensioni esposte. Le nuove interfacce
CameraExtensionsInfo
eCameraExtensionsControl
consentono alle applicazioni di monitorare e regolare le impostazioni di sicurezza delle estensioni. Le applicazioni possono ottenere l'istanzaCameraExtensionsInfo
oCameraExtensionsControl
tramite i metodiExtensionsManager#getCameraExtensionsInfo()
oExtensionsManager#getCameraExtensionsControl()
appena aggiunti. (I28e1a) - È stata aggiunta
ProcessCameraProvider.awaitInstance
, una versione sospesa diProcessCameraProvider.getInstance
(Ib22b9) - Aggiungi un'API
PreviewView#getSensorToViewTransform()
. La matrice rappresenta la trasformazione dalle coordinate del sensore della videocamera alle coordinate diPreviewView
. Questo può essere utilizzato per trasformare le coordinate da unUseCase
all'altro. Ad esempio, la trasformazione delle coordinate degli oggetti rilevati inImageAnalysis
in un overlayPreviewView
. (I947ab) - Rendi l'API
camera-viewfinder-core
più generica in modo che possa essere utilizzata dacamera-viewfinder
ecamera-viewfinder-compose
. (I1e295) - Aggiungi la funzione
getSurface
aViewfinderSurfaceRequest
. (I781a0) - Utilizza
camera-viewfinder-core
incamera-viewfinder
e ritiraViewfinderSurfaceRequest
eCameraViewfinder
. (I6198c) - È stato aggiunto
ZoomGestureDetector
che interpreta i gesti di ridimensionamento configurati specificamente per l'attività di zoom con pizzico. (Ifafbf)
Correzioni di bug
- È stato risolto il problema di selezione della risoluzione
ImageAnalysis
relativo all'impostazione della risoluzione target predefinita dell'analizzatore: la risoluzione target è stata mantenuta erroneamente a 640 x 480 anche se le applicazioni hanno impostato un'impostazione di risoluzione predefinita dell'analizzatore diversa. Se le applicazioni riscontrano questo problema (1.3.0 ~ 1.3.2) e non possono eseguire l'upgrade per utilizzare le release delle versioni più recenti che contengono la soluzione, è possibile aggirare il problema impostando direttamente unResolutionSelector
con la risoluzione preferita e unAspectRatioStrategy
corrispondente alImageAnalysis
UseCase
. (I81f72, b/330091012) - È stato risolto un problema per cui la richiesta
takePicture
in coda potrebbe non essere eseguita se la richiesta corrente non va a buon fine. (Ie0801) - Applica il controllo dei dati JPEG non validi ai dispositivi Vivo X60 e X60 Pro. In questo modo puoi risolvere il problema delle immagini anormalmente grandi su questi dispositivi. (I82247, b/288828159)
- È stato corretto il problema relativo ai metadati delle immagini JPEG errati sui dispositivi Samsung A24. Con la correzione, CameraX può salvare correttamente l'immagine JPEG o possono essere restituiti oggetti Bitmap corretti quando viene chiamata la funzione
ImageProxy.toBitmap()
sui dispositivi Samsung A24. (I8d6eb, b/309005680) - Applica il controllo dei dati JPEG non validi a tutti i dispositivi Samsung se l'immagine acquisita è più grande di 10 MB. In questo modo puoi risolvere il problema delle immagini eccessivamente grandi sui dispositivi Samsung. (Ic2a65, b/288828159)
- È stato rimosso il supporto di
ImageAnalysis
nelle Estensioni CameraX perché molte implementazioni delle Estensioni degli OEM non funzionano bene conImageAnalysis
e potrebbero causare problemi incoerenti. (I2d926)
Versione 1.4.0-alpha04
24 gennaio 2024
androidx.camera:camera-*:1.4.0-alpha04
viene rilasciato. La versione 1.4.0-alpha04 contiene questi commit.
Nuove funzionalità
- Nuovo elemento: effetti-fotocamera: una libreria per applicare effetti in tempo reale all'output di CameraX, inclusi
Preview
,VideoCapture
e/oImageCapture
. Questo elemento contiene implementazioni OpenGL dell'APICameraEffect
che manipola l'output della fotocamera in modo efficiente. OverlayEffect
: per disegnare overlay con l'API Canvas di Android. In questo modo, l'app può applicare una filigrana o evidenziare gli oggetti rilevati sulle uscite della fotocamera.DynamicRange
API per il caso d'uso Anteprima: ora l'intervallo dinamico può essere impostato nel caso d'uso Anteprima, indipendentemente dal caso d'uso Video. In questo modo, le gamme dinamiche HDR come HLG10 sono disponibili solo per l'anteprima. InCameraInfo
sono disponibili anche nuove API per eseguire query sulle gamme dinamiche supportate da ogni fotocamera.
Modifiche all'API
ScreenFlashUiCompleter
è stato rinominato inScreenFlashListener
eScreenFlashUiCompleter#getExpirationTimeMillis
è stato spostato nel parametroexpirationTimeMillis
diScreenFlash#apply
. (I13944)- Sono state aggiunte nuove API per consentire di impostare la gamma dinamica nel caso d'uso Anteprima e per eseguire query sulle gamme dinamiche supportate da ogni fotocamera. In questo modo, le gamme dinamiche HDR, come HLG10, possono essere utilizzate solo con il caso d'uso Anteprima, senza che sia più necessario vincolare contemporaneamente un
VideoCapture
. (If25e3) getMirroring()
rinominato inisMirroring()
(I47063)- È stato aggiunto il supporto della stima della latenza di acquisizione di foto in tempo reale in CameraX. Le estensioni della fotocamera consentono alle applicazioni di utilizzare un'API che fornisce una stima del tempo necessario per un'acquisizione. La stima tiene conto delle condizioni ambientali attuali, dello stato della videocamera e include il tempo impiegato per elaborare le richieste di acquisizione di più fotogrammi, nonché il tempo aggiuntivo necessario per la codifica dei buffer elaborati, se necessario. (I05c3a)
ScreenFlashUiControl
è stato rinominato inScreenFlash
,ScreenFlashUiControl#applyScreenFlashUi
inScreenFlash#apply
,ScreenFlashUiControl#clearScreenFlashUi
inScreenFlash#clear
e abbiamo aggiunto il metodogetScreenFlashUiApplyTimeoutSeconds
anziché esporre direttamenteSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
. (Iccdd0)
Correzioni di bug
- È stato corretto un problema di perdita di memoria che causava il mancato rilascio di attività o frammenti quando le estensioni sono attive (I14215)
- È stato risolto il problema per cui
getZoomRatio
restituiva erroneamente un valore diminuito quando veniva applicato un rapporto di zoom crescente. (I4aa0d, b/317543616) - L'evento
ImageCapture#ScreenFlash#clear
viene invocato immediatamente quandoImageCapture
non è associato o la videocamera è chiusa. Inoltre, vengono corretti alcuni bug per cui non viene mai invocato a causa del mancato completamento corretto delle acquisizioni in questi scenari. (If99f9) - È stato corretto l'errore che si verifica quando il ciclo di vita viene interrotto prima del completamento della richiesta
takePicture
(Idf017, b/306202751) - È stato risolto il problema per cui l'anteprima della fotocamera diventa nera quando le Estensioni sono attivate su alcuni dispositivi (I1ffd0)
- È stata corretta la durata errata della registrazione video sui dispositivi che utilizzano il SoC Snapdragon 778G. (If6aa7, b/316057919)
Versione 1.4.0-alpha03
13 dicembre 2023
androidx.camera:camera-*:1.4.0-alpha03
viene rilasciato. La versione 1.4.0-alpha03 contiene questi commit.
Nuove funzionalità
- È stato aggiunto
CameraInfo.mustPlayShutterSound
per indicare se deve essere riprodotto un suono dell'otturatore in conformità con le restrizioni regionali. (Ifda84) - Sono stati aggiunti
OnImageCapturedCallback.onCaptureStarted
eOnImageSavedCallback.onCaptureStarted
per inviare una notifica quando la videocamera ha iniziato a esporre un fotogramma. A questo punto, ti consigliamo di riprodurre l'audio dell'otturatore o l'animazione dell'otturatore. (Ic49b3) - È stato aggiunto il supporto della funzionalità Flash schermo in CameraX per l'acquisizione di immagini con la fotocamera anteriore. CameraX si occuperà della gestione dell'API a livello di framework e sincronizzerà la temporizzazione con le modifiche all'interfaccia utente dell'applicazione, se necessario (ad es. attivazione dell'anteprima AE dopo la modifica del colore/della luminosità dello schermo dell'app). Le app dovranno solo aggiungere le implementazioni lato UI nell'interfaccia
ScreenFlashUiControl
fornita a CameraX. (I8ae84) - È stato aggiunto il supporto per l'implementazione della funzionalità Flash schermo a livello di interfaccia utente in CameraX. Le app potranno ottenere un'implementazione di base di
ImageCapture.ScreenFlashUiControl
daPreviewView
o dalla funzionalitàScreenFlashView
appena aggiunta, che aggiungerà una visualizzazione di overlay monocolore e massimizzerà la luminosità dello schermo durante l'acquisizione di foto con flash dello schermo. (I1810e)
Modifiche all'API
- Supporta le nuove funzionalità di Estensioni(postview e avanzamento del processo di acquisizione): sono state aggiunte API
ImageCapture#getImageCaptureCapabilities()
per consentire alle app di eseguire query sulle funzionalità del callback di avanzamento del postview e del processo di acquisizione. Le app possono attivare il postview utilizzandoImageCapture.Builder#setPostviewEnabled()
. Le dimensioni post-visualizzazione possono essere selezionate utilizzandoImageCapture.Builder#setPostviewResolutionSelector()
. Quando viene invocatotakePicture()
,onPostviewBitmapAvailable
eonCaptureProcessProgressed
possono essere implementati inOnImageSavedCallback
oOnImageCapturedCallback
per ottenere la postview ed elaborare la notifica di avanzamento, se supportata. (I5cd88) - API per calcolare la trasformazione delle coordinate dal sensore al buffer corrente, con un flag che indica se la superficie contiene le informazioni sull'orientamento della fotocamera. (I59096)
- Esponi l'API per eseguire query su
PreviewCapabitlity
in AnteprimaUseCase
. (Ie5b6c) - Sono state aggiunte API per supportare più qualità per
VideoCapture
.Recorder.Builder#setVideoCapabilitiesSource(int)
può essere utilizzato conVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
per creare un'istanzaRecorder
che supporta più qualità rispetto aVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
. Un caso d'uso comune è quando l'applicazione si impegna a registrare video UHD, se possibile, ma ilCamcorderProfile
del dispositivo non include impostazioni UHD, anche se il codec è in grado di registrare video UHD. (Iedbe2, b/263961771) - Aggiungi un getter/setter del formato di output
ImageAnalysis
aCameraController
. (I9a96c, b/308240643)
Correzioni di bug
- Da Fotocamera
1.3.1
: è stato migliorato il rendimento diProcessCameraProvider#bindToLifecycle()
. La modifica più importante è l'ottimizzazione del processo di identificazione delle combinazioni di dimensioni più adatte perUseCases
. I risultati ottimali variano in base alle combinazioni specifiche diUseCase
e al numero di dimensioni di output supportate per i dispositivi target. (I454f2) - Consenti l'utilizzo di
VideoCapture
quando le estensioni sono attive. (I91f32) - È stato risolto il problema relativo alle immagini JPEG di grandi dimensioni acquisite sui dispositivi Samsung della serie A71 e M51. Le immagini JPEG acquisite contengono dati di spaziatura di zeri ridondanti nel segmento di dati compressi JFIF. Le immagini acquisite hanno dimensioni del file molto elevate. Questi dati di spaziatura di zeri ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali dei file immagine. (I01afc, b/288828159)
- Disattiva il supporto di
ImageAnalysis
su Pixel per evitare il bug su Pixel che restituisce accidentalmente le dimensioni supportate diImageAnalysis
non vuote. (I7ec31) - È stato risolto un problema di prestazioni relativo all'aumento del carico della CPU e del consumo energetico quando le Estensioni sono attive. (Ibdccb)
- Snapdragon 480 aggiunto a
CameraUseInconsistentTimebaseQuirk
. In questo modo viene risolto un problema su Android 12 per i dispositivi che utilizzano questo chipset, in cui l'audio nelle registrazioni è compensato dal tempo in cui il dispositivo è in stato di sospensione. (I58010)
Versione 1.4.0-alpha02
18 ottobre 2023
androidx.camera:camera-*:1.4.0-alpha02
viene rilasciato. La versione 1.4.0-alpha02 contiene questi commit.
Modifiche all'API
- Rinomina l'API in
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
e rinomina l'argomento. (I72370) - Aggiunta di API per eseguire query sulle funzionalità del dispositivo e attivare la stabilizzazione di video/anteprime. (I87544)
- Fornisci l'API per personalizzare il tempo di timeout massimo per i tentativi di apertura della videocamera. (I0c642)
- Rilasciato
ProcessCameraProvider.shutdownAsync
come API di test pubblica per consentire l'utilizzo del provider della fotocamera di processo nelle suite di test che potrebbero dover inizializzare CameraX in modi diversi tra un test e l'altro. (I9eca7) - Aggiungi API per configurare la gamma dinamica, la frequenza fotogrammi e la modalità speculare di acquisizione video. (Ifb8f7)
- Ritira
OutputSize
e sostituiscilo conResolutionSelector
.ResolutionSelector
è un modo più completo per selezionare le risoluzioni ed è coerente con l'API camera-core. (I93abd, b/286801438)
Correzioni di bug
- È stato risolto il problema di anteprima nera su Samsung Galaxy S23 Ultra 5G quando le Estensioni Bokeh o il Ritocco viso sono attivate con
ImageAnalysis
sulla fotocamera posteriore. (I2e8b1) - Sono stati risolti i problemi di allungamento dell'anteprima e di
VideoCapture
su Moto E5 Play. (73dce2)
Versione 1.4.0-alpha01
20 settembre 2023
androidx.camera:camera-*:1.4.0-alpha01
viene rilasciato. La versione 1.4.0-alpha01 contiene questi commit.
Modifiche all'API
- Aggiungi una nuova API per accedere alle informazioni sull'ampiezza audio durante la registrazione. (Id4925)
Correzioni di bug
- Migliora la stabilità delle estensioni assicurandoti che gli eventi di inizializzazione e deinializzazione vengano attivati nell'ordine corretto. (Ib3b8e)
- È stato corretto l'errore di configurazione della sessione di acquisizione per il superamento della combinazione di piani supportati a causa dell'aggiunta di un'altra superficie ripetuta internamente. (Id718c)
- È stato risolto il problema relativo alle immagini JPEG di grandi dimensioni acquisite sul dispositivo Vivo S16. Le immagini JPEG acquisite contengono dati di spaziatura di zeri ridondanti nel segmento di dati compressi JFIF. Le immagini acquisite avranno dimensioni dei file elevate. Questi dati di spaziatura di zeri ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali dei file immagine. (I79505, b/299069235)
- È stato risolto il problema per cui
ImageAnalysis
non può essere associato aImageCapture
e Anteprima quando alcune modalità di estensione sono attive su alcuni dispositivi. La correzione restituirà il valore corretto quando le app eseguono query sulla disponibilità diImageAnalysis
tramiteExtensionsManager#isImageAnalysisSupported()
. (I7d538) - Aggiorna JavaDoc in modo che corrisponda al comportamento. I comandi
#setZoomRatio
,#setLinearZoom
e#enableTorch
non completano immediatamente l'operazione, ma aspettano che la videocamera sia pronta. Sono state aggiunte anche informazioni su come ottenere il FOV massimo con l'API#takePicture
. (I23588)
Versione 1.3
Versione 1.3.4
12 giugno 2024
androidx.camera:camera-*:1.3.4
viene rilasciato. La versione 1.3.4 contiene questi commit.
Correzioni di bug
- È stato risolto il problema per cui
getZoomRatio
restituiva erroneamente un valore diminuito quando veniva applicato un rapporto di zoom crescente. (I4aa0d, b/317543616) - È stato corretto il problema per cui la modalità di acquisizione di foto/tocco per mettere a fuoco non utilizzava i valori FPS/modalità di stabilizzazione della richiesta ripetuta, che potrebbero ricreare la sessione di acquisizione e causare problemi di latenza o blocco dell'anteprima su alcuni dispositivi. (I7dc0b)
- È stato risolto il problema relativo alla frequenza fotogrammi impostata su un valore inferiore quando si chiama
setTargetFrameRate
conFRAME_RATE_RANGE_UNSPECIFIED
. (I78c61)
Versione 1.3.3
17 aprile 2024
androidx.camera:camera-*:1.3.3
viene rilasciato. La versione 1.3.3 contiene questi commit.
Correzioni di bug
- È stato risolto il problema di selezione della risoluzione
ImageAnalysis
relativo all'impostazione della risoluzione target predefinita dell'analizzatore: la risoluzione target è stata mantenuta erroneamente a 640 x 480 anche se le applicazioni hanno impostato un'impostazione di risoluzione predefinita dell'analizzatore diversa. Se le applicazioni riscontrano questo problema (1.3.0 ~ 1.3.2) e non possono eseguire l'upgrade per utilizzare le release delle versioni più recenti che contengono la soluzione, è possibile aggirare il problema impostando direttamente unResolutionSelector
con la risoluzione preferita e unAspectRatioStrategy
corrispondente all'UseCaseImageAnalysis
. (I81f72, b/330091012)
Versione 1.3.2
6 marzo 2024
androidx.camera:camera-*:1.3.2
viene rilasciato. La versione 1.3.2 contiene questi commit.
Correzioni di bug
- È stato risolto un problema relativo ai metadati JPEG sui dispositivi Samsung A24. Ora CameraX salva le immagini con precisione e la funzione
ImageProxy.toBitmap()
restituisce oggetti Bitmap corretti. (I8d6eb, b/309005680) - L'opzione di risoluzione 9280 x 6944 è stata rimossa dai dispositivi Redmi Note 9 Pro a causa di problemi. (Ia23da)
Versione 1.3.1
13 dicembre 2023
androidx.camera:camera-*:1.3.1
viene rilasciato. La versione 1.3.1 contiene questi commit.
Correzioni di bug
È stato migliorato il rendimento di ProcessCameraProvider#bindToLifecycle()
. La modifica più importante è l'ottimizzazione del processo di identificazione delle combinazioni di dimensioni più adatte per UseCases
. I risultati ottimali variano in base alle combinazioni specifiche di UseCase
e al numero di dimensioni di output supportate per i dispositivi target. (I454f2)
Ecco alcuni risultati di riferimento per vari scenari:
Quattro
UseCases
:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: da circa 430 ms a 60 ms
- Samsung Galaxy S23 Ultra: da circa 540 ms a 45 ms
- Samsung A53 5G: da circa 115 ms a 70 ms
Tre
UseCases
:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: da circa 9 ms a 7 ms
- Samsung Galaxy S23 Ultra: da circa 6 ms a 5 ms
- Samsung A53 5G: da circa 32 ms a 12 ms
Snapdragon 480 aggiunto a
CameraUseInconsistentTimebaseQuirk
. In questo modo viene risolto un problema su Android 12 per i dispositivi che utilizzano questo chipset, in cui l'audio nelle registrazioni è compensato dal tempo in cui il dispositivo è in stato di sospensione. (I58010)
Versione 1.3.0
18 ottobre 2023
androidx.camera:camera-*:1.3.0
viene rilasciato. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
- Funzionalità video tra cui HDR a 10 bit, ritaglio, rispecchia/non rispecchia, attiva/disattiva l'audio, imposta la frequenza fotogrammi e altro ancora.
- Doppia fotocamera simultanea
- Raccolta di effetti
- Selettore della risoluzione
- Selezione delle fotocamere ultrawide e telescopica
- Cambio di fotocamera durante la registrazione video (funzionalità sperimentale)
Versione 1.3.0-rc02
20 settembre 2023
androidx.camera:camera-*:1.3.0-rc02
viene rilasciato. La versione 1.3.0-rc02 contiene questi commit.
Correzioni di bug
- Migliora la stabilità delle estensioni assicurandoti che gli eventi di inizializzazione e deinializzazione vengano attivati nell'ordine corretto. In questo modo sono stati risolti alcuni problemi di anteprima nera quando si cambiavano le modalità di Estensioni o le videocamere. (Iddaac)
- È stato risolto il problema per cui
ImageAnalysis
non può essere associato aImageCapture
e Anteprima quando alcune modalità di estensione sono attive su alcuni dispositivi. La correzione restituirà il valore corretto quando le app eseguono query sulla disponibilità diImageAnalysis
tramiteExtensionsManager#isImageAnalysisSupported()
. (I7d538) - È stato risolto il problema per cui l'audio e il video del video registrato non erano sincronizzati quando la modalità di mirroring era attivata su Xiaomi Poco X3 NFC. (I20b4c)
Versione 1.3.0-rc01
23 agosto 2023
androidx.camera:camera-*:1.3.0-rc01
viene rilasciato. La versione 1.3.0-rc01 contiene questi commit.
Modifiche all'API
- È stato aggiunto
PendingRecording.asPersistentRecording
per consentire una registrazione continua mentre ilVideoCapture
a cui è collegato il registratore viene riagganciato. (I517c6)
Correzioni di bug
- È stato risolto un arresto anomalo quando uno stream viene condiviso sia con
VideoCapture
che con Anteprima. È stato inoltre corretto un problema di schermata nera sui dispositivi LEGACY quando la condivisione dello stream è attivata. - È stato risolto il problema relativo alle immagini JPEG acquisite di grandi dimensioni sui dispositivi della serie Samsung S7 (SM-G930T, SM-G930V). Le immagini JPEG acquisite contengono dati di spaziatura di zeri ridondanti nel segmento di dati compressi JFIF. Le immagini acquisite avranno dimensioni dei file elevate. Questi dati di spaziatura di zeri ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali dei file immagine. (I407b0, b/288828159)
- È stato risolto il problema relativo alle immagini JPEG acquisite di grandi dimensioni sui dispositivi Samsung della serie S22 (SM-S901B, SM-S901B/DS) e S22+ (SM-S906B). Le immagini JPEG acquisite contengono dati di spaziatura di zeri ridondanti nel segmento di dati compressi JFIF. Le immagini acquisite hanno dimensioni del file elevate, circa 13 MB, sul dispositivo S22 SM-S901B/DS. Questi dati di spaziatura di zeri ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali dei file immagine. (I73be9, b/288828159)
- È stato risolto il problema relativo alle immagini JPEG di grandi dimensioni acquisite sui dispositivi Samsung della serie A5, A52, A70 e A72. Le immagini JPEG acquisite contengono dati di spaziatura di zeri ridondanti nel segmento di dati compressi JFIF. Le immagini acquisite avranno dimensioni estremamente elevate (ad es. circa 32 MB o addirittura 96 MB). Questi dati di spaziatura di zeri ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali dei file immagine. (I97c4d, b/288828159)
- È stato corretto l'arresto anomalo nativo durante lo scatto di foto con le Estensioni attivate (I698f5)
Versione 1.3.0-beta02
26 luglio 2023
androidx.camera:camera-*:1.3.0-beta02
viene rilasciato. La versione 1.3.0-beta02 contiene questi commit.
Correzioni di bug
- Utilizzo della torcia come flash per le varianti di Pixel 4 e 5 per migliorare la qualità delle foto in condizioni di scarsa illuminazione (I56ff5, b/280221967)
- È stato risolto il problema relativo alle immagini JPEG acquisite di grandi dimensioni sui dispositivi della serie Samsung A5 (2017). Le immagini JPEG acquisite contengono dati di spaziatura di zeri ridondanti nel segmento di dati compressi JFIF. Le immagini acquisite avranno una dimensione di circa 32 MB. Questi dati di spaziatura di zeri ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali dei file immagine. (I29837, b/288828159)
- È stato corretto il problema di attivazione non corretta del nuovo tentativo in caso di errore di acquisizione nei dispositivi problematici menzionati in
CaptureFailedRetryQuirk
. (I7b589)
Versione 1.3.0-beta01
21 giu 2023
androidx.camera:camera-*:1.3.0-beta01
viene rilasciato. La versione 1.3.0-beta01 contiene questi commit.
Modifiche all'API
- Il nome della funzione
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
è stato rinominato insetAllowedResolutionMode
e le costantiResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
inPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
. (If84e8) - Sono state rimosse le API deprecate
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
eVideoCapture.setTargetRotationDegrees(int)
. (Id8e77) - La classe
DynamicRange
rappresenta la gamma dinamica delle immagini. Questo può essere utilizzato per selezionare i formati High Dynamic Range come output diVideoCapture
fino aVideoCapture.Builder#setDynamicRange()
. (Ib0377) - È stata aggiunta un'API
isImageAnalysisSupported
aExtensionsManager
che consente alle app di determinare se è possibile associare un caso d'usoImageAnalysis
insieme a Anteprima eImageCapture
quando le Estensioni sono abilitate. (I1bc63) - La nuova classe
VideoCapabilities
ottenuta daRecorder
può essere utilizzata per eseguire query sulle gamme dinamiche e sulle qualità supportate per la registrazione video sul dispositivo. I metodigetSupportedQualities()
eisQualitySupported()
diQualitySelector
sono in fase di ritiro. Utilizza invece i metodigetSupportedQualities()
eisQualitySupported()
diVideoCapabilities
. (I04014) CameraController#setVideoCaptureTargetQuality()
viene rinominato insetVideoCaptureQualitySelector
e accetta l'argomentoQualitySelector
, che offre maggiore flessibilità per la configurazione della qualità video.CameraController#getVideoCaptureTargetQuality()
viene modificato ingetVideoCaptureQualitySelector
di conseguenza. (I520ed)- È stata rimossa l'annotazione sperimentale per le funzionalità video. Le funzionalità video sono ora stabili. (I1a113)
Correzioni di bug
- Utilizza la torcia come flash sui modelli Samsung SM-A320 per migliorare la velocità e la qualità delle immagini acquisite in condizioni di scarsa illuminazione. (I6a022, b/286190938)
- Aggiunta del supporto per il formato
ImageFormat.JPEG
perImageProxy.toBitmap()
. Se non è possibile decodificare l'array di byte JPEG, verrà generato unUnsupportedOperationException
. (I81958, b/282057603)
Versione 1.3.0-alpha07
24 maggio 2023
androidx.camera:camera-*:1.3.0-alpha07
viene rilasciato. La versione 1.3.0-alpha07 contiene questi commit.
Nuove funzionalità
- La nuova API
VideoCapture.Builder# setTargetFrameRate(Range)
consente di acquisire le registrazioni video con altre frequenze fotogrammi oltre a quella predefinita del dispositivo. È possibile eseguire query sulle frequenze frame disponibili per le registrazioni tramite la nuova APICameraInfo#getSupportedFrameRates()
.
Modifiche all'API
- Le costanti
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
sono state rinominate inALLOWED_RESOLUTIONS_NORMAL
/SLOW
e il nome della funzione del generatoresetHighResolutionEnabledFlag
è stato rinominato insetAllowedResolutionMode
. (Iae817) CameraInfo#getSupportedFrameRateRanges()
ora restituisce unSet
anziché unList
per rappresentare meglio che gli intervalli non sono ordinati. (I02f43)- Aggiungi un listener di errore a
CameraEffect
per gestire gli errori irreversibili (Ice471) - Aggiungi il costruttore pubblico in
ResolutionInfo
per una migliore testabilità (If6d1c) - È stata fornita un'API
UseCase.snapToSurfaceRotation(int)
per sostituire l'utilizzo disetTargetRotationDegrees
e ritirare le APIImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
eVideoCapture.setTargetRotationDegrees(int)
. (Ia9010) - Sono state aggiunte le nuove API
Preview#getTargetFrameRate
ePreview.Builder#setTargetFrameRate
per poter impostare e recuperare la frequenza fotogrammi target per il caso d'uso Anteprima (If4f22) VideoRecordEvent.Finalize
ora verrà completato con il codice di erroreERROR_RECORDING_GARBAGE_COLLECTED
quando l'oggettoRecording
viene interrotto a causa della raccolta dei rifiuti. (Iba974)
Correzioni di bug
- È stato corretto
NullPointerException
quando le dimensioni dell'output memorizzate nella cache inStreamConfigurationMapCompat
sono null. (Idf124, b/282025204) - È stato risolto il problema per cui
Preview.setSurfaceProvider(null)
non mette in pausa l'anteprima in Estensioni (Ia903e) - È stato risolto un problema per cui
ConcurrentModificationException
viene generato durante l'apertura della fotocamera quandoVideoCapture
è associato. (Ic8ac4)
Versione 1.3.0-alpha06
19 aprile 2023
androidx.camera:camera-*:1.3.0-alpha06
viene rilasciato. La versione 1.3.0-alpha06 contiene questi commit.
Nuove funzionalità
- La fotocamera simultanea è una nuova funzionalità introdotta in Android 11 che supporta lo streaming simultaneo dei dispositivi con fotocamera. Ad esempio, consente a un dispositivo di avere contemporaneamente in funzione sia la fotocamera anteriore che quella posteriore. Al momento CameraX supporta solo due fotocamere contemporaneamente, il che consente di utilizzare due fotocamere contemporaneamente, con al massimo due {@link UseCase} associati a ciascuna. La risoluzione massima è 720p o 1440p. Per maggiori dettagli, consulta il seguente link CameraManager#getConcurrentCameraIds()
- Ti presentiamo la nuova API
ResolutionSelector
, che include le seguenti funzionalità:- Le applicazioni possono specificare strategie di proporzioni e risoluzione per selezionare la risoluzione migliore per le proprie esigenze.
- Tutti i parametri relativi a dimensioni e proporzioni sono espressi nelle coordinate del sensore del dispositivo della fotocamera.
- Le applicazioni possono implementare un filtro di risoluzione personalizzato per disporre le dimensioni supportate nell'ordine desiderato.
- Le applicazioni possono anche attivare l'acquisizione ad alta risoluzione per ottenere immagini con una risoluzione più elevata. Tieni presente, però, che l'utilizzo di una risoluzione elevata potrebbe comportare tempi di acquisizione più lunghi.
- Sono state aggiunte
VideoCapture
API di mirroring. I video registrati daVideoCapture
non vengono visualizzati in modalità speculare per impostazione predefinita. Tuttavia, l'anteprima della fotocamera è speculare sulla fotocamera anteriore per impostazione predefinita. Le API di mirroring diVideoCapture
consentono di allinearsi all'anteprima della fotocamera quando si utilizza la fotocamera anteriore. Esistono treMirrorMode
,OFF
,ON
eON_FRONT_ONLY
. Per allinearsi all'anteprima della fotocamera, è consigliabile utilizzareON_FRONT_ONLY
, il che significa che il mirroring non è attivo per la fotocamera posteriore, ma è attivo per la fotocamera anteriore.
Modifiche all'API
- È stata esposta la nuova API
ResolutionSelector
. Le applicazioni possono specificare strategie di proporzioni e risoluzione con regole di riserva o un filtro di risoluzione personalizzato per ottenere i risultati desiderati. Le applicazioni possono specificare un flag per attivare l'acquisizione ad alta risoluzione. In questo modo, CameraX potrà selezionare risoluzioni più elevate quando scatti foto o registri video. Tieni presente, però, che l'utilizzo di una risoluzione elevata potrebbe comportare tempi di acquisizione più lunghi. (Ibed95) - Ora è possibile eseguire query sugli intervalli FPS supportati dall'algoritmo AE tramite
CameraInfo#getSupportedFrameRateRanges()
. (Iaa67f) - Unifica i nomi di tutti i metodi di frequenza fotogrammi utilizzando "FrameRate". Correggi l'errore javadoc in
VideoCapture#getTargetFrameRate()
(I83304) - È stata ritirata l'API
setTargetAspectRatio
esetTargetResolution
precedente. Utilizza invece la nuova APIResolutionSelector
. (I542c3) - Sono state aggiunte API pubbliche per la doppia fotocamera simultanea, tra cui
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
eConcurrentCameraConfig
,SingleCameraConfig
eConcurrentCamera
(Iab1c1)
- Imposta
ImageProcessor.Response#getOutputImage
su NonNull (Ib9c60) - Sono state aggiunte API di mirroring
VideoCapture
, tra cuiVideoCapture.Builder.setMirrorMode(int)
eVideoCapture.getMirrorMode()
. Le API sono utili per le applicazioni che richiedono che la registrazione video sia coerente con il comportamento comune dell'anteprima della fotocamera, ovvero che l'anteprima della fotocamera posteriore non sia speculare, ma che l'anteprima della fotocamera anteriore lo sia. (I713b6, b/194634656) - Aggiungere l'API
setTargetFrameRate()
nell'APIVideoCapture.Builder
egetTargetFramerate()
inVideoCapture
(I109d4) - Fai in modo che
SurfaceOutput
estenda Closable e nascondi il costruttore pubblico di SurfaceOutput.Event
. (I60ea8) - È stato aggiunto
Recording.mute
per attivare o disattivare dinamicamente l'audio di una registrazione in fase di elaborazione.RecordingStats
conterràAudioStats.AUDIO_STATE_MUTED
quando la registrazione in fase di elaborazione viene disattivata esplicitamente. (Ie17fc) - Il parametro
#setEffects()
è stato impostato su un valore non nullo. Aggiungi un'API#clearEffects()
per eliminare gli effetti. L'app dovrebbe chiamare#clearEffects()
per rimuovere gli effetti. (I4b4d9) - Aggiungi un secondo costruttore per
ViewfinderSurfaceRequest.Builder
che accetti un builder per il costruttore di copia (I621a7)
Correzioni di bug
- È stato risolto il problema per cui le app che richiamano l'API Extensions potevano arrestarsi in modo anomalo quando si chiudeva la fotocamera (Ib27e5)
- È stato risolto un problema per cui
VideoCapture
non funzionava con la fotocamera anteriore su alcuni dispositivi. Ad esempio, su Samsung Galaxy S23 e Xiaomi 2107113SG. (Ibec7e, b/270656244) - È stato risolto il problema per cui la fotocamera non riusciva sempre a scattare foto utilizzando File nella cartella pubblica dello spazio di archiviazione esterno su Android 10 e versioni successive. Tieni presente che in Android 10, per scattare foto utilizzando File nella cartella pubblica dell'unità di archiviazione esterna è necessario impostare
requestLegacyExternalStorage
su true nel tag dell'applicazione. (I11b2c) - È stato corretto un arresto anomalo di
RejectedExecutionException
inDefaultSurfaceProcessor
. L'arresto anomalo potrebbe verificarsi quandoVideoCapture
è associato e l'attività è in pausa. (Idb46a, b/273713906)
Versione 1.3.0-alpha05
22 marzo 2023
androidx.camera:camera-*:1.3.0-alpha05
viene rilasciato. La versione 1.3.0-alpha05 contiene questi commit.
Modifiche all'API
- Sono state aggiunte le API di rotazione
VideoCapture
, tra cuiVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
eVideoCapture.getTargetRotation()
. Le API sono utili per le applicazioni che bloccano l'orientamento del dispositivo. Vengono aggiunti ancheImageCapture.setTargetRotationDegrees(int)
eImageAnalysis.setTargetRotationDegrees(int)
. (Id3ffe, b/205242781) - Consenti
VIDEO_CAPTURE
ePREVIEW|VIDEO_CAPTURE
come target degli effetti. Gli effetti che hanno come targetVIDEO_CAPTURE
verranno applicati all'UseCaseVideoCapture
; gli effetti che hanno come targetPREVIEW|VIDEO_CAPTURE
verranno applicati a uno stream condiviso prima della copia nello stream di anteprima eVideoCapture
. (Iee6f3)
Correzioni di bug
- Da Fotocamera
1.2.2
: è stato risolto il problema per cui le Estensioni CameraX non funzionano correttamente quando ProGuard è attivo su alcuni dispositivi come Pixel (I90aa2) - È stato corretto un bug
PreviewView
relativo all'orientamento dello schermo gestito dall'app. L'anteprima potrebbe risultare distorta in caso di rotazione. Questo accade solo su alcuni dispositivi. Può essere riprodotto su Pixel 4a, Pixel 5 e Pixel 6a. (I14340, b/223488673)
Versione 1.3.0-alpha04
22 febbraio 2023
androidx.camera:camera-*:1.3.0-alpha04
viene rilasciato. La versione 1.3.0-alpha04 contiene questi commit.
Nuove funzionalità
Una nuova funzionalità per supportare combinazioni di Surface non supportate in precedenza condividendo uno stream con più casi d'uso.
- In precedenza, quando si eseguiva il binding di "Anteprima, Acquisizione video, Analisi immagini" a livello di hardware della fotocamera FULL e versioni precedenti o di "Anteprima, Acquisizione video, Acquisizione immagine" a livello di hardware LEGACY, CameraX generava un errore
IllegalArgumentException
. - Il nuovo comportamento prevede che le associazioni funzionino senza generare eccezioni. CameraX utilizza invece OpenGL per copiare uno stream condiviso sia in Anteprima che in VideoCapture.
- A causa del costo della copia in buffer, l'app potrebbe registrare un aumento della latenza e del consumo di energia.
Modifiche all'API
- Aggiungi l'API per convertire
ImageProxy
inBitmap
. Il formatoImageProxy
supportato èImageFormat.YUV_420_888
ePixelFormat.RGBA_8888
. Se il formato non è valido, verrà generatoIllegalArgumentException
. (Ic7110) - Aggiungi
CoroutineCameraViewfinder
per supportare la configurazione del mirino utilizzando le funzioni di sospensione in Kotlin. (I657bc) - Aggiungi un nuovo costruttore pubblico per
ViewfinderSurfaceRequest
. Offre flessibilità quando l'utente non può fornireCameraCharacteristics
. (Ie6549)
Correzioni di bug
- È stato corretto l'arresto anomalo di Estensioni che si verifica su alcuni dispositivi Samsung quando l'app viene messa in pausa/ripristinata troppo rapidamente (Iaca26)
Versione 1.3.0-alpha03
25 gennaio 2023
androidx.camera:camera-*:1.3.0-alpha03
viene rilasciato. La versione 1.3.0-alpha03 contiene questi commit.
Modifiche all'API
- È stato aggiunto
CameraInfo.getIntrinsicZoomRatio
per fornire informazioni sull'angolo di visuale rispetto alla fotocamera predefinita. (Ib300c) - È stato aggiunto
CameraInfo.getLensFacing
per fornire informazioni sulla posizione dell'obiettivo. È stata aggiuntaCameraSelector#LENS_FACING_EXTERNAL
come funzionalità sperimentale per la selezione delle videocamere esterne. (Icaf3e) - Aggiungi
#setEffect()
aCameraController
per aggiungere effetti all'output della fotocamera. (I1d21f) - Aggiungi il metodo
invalidate()
aSurfaceRequest
. Il fornitore della piattaforma può comunicare che la piattaforma fornita in precedenza non è più valida. (Idc649) - Aggiungi un'API
ImageProcessor
. Questa interfaccia è destinata a iniettare effetti di post-elaborazione nella pipelineImageCapture
. (I575c6) - È stata aggiunta l'API
Recorder.Builder.setAspectRatio()
, che può essere combinata conQualitySelector
per supportare più risoluzioni video. (I8a082) - È stato aggiunto
Recorder.Builder#setTargetVideoEncodingBitRate
per impostare la codifica video targetBitRate
eRecorder#getTargetVideoEncodingBitRate
per ottenere la velocità in bit della codifica video target. (I5984d)
Correzioni di bug
- È stato corretto l'errore
ImageCapture
quando non è presente un'unità flash e la modalità flash è attiva. (I9e8b4, b/263391112) - È stato risolto il problema di danneggiamento delle immagini JPEG in caso di scrittura dei dati sulla posizione Exif su alcuni dispositivi Samsung con Android 12. (Ib7086, b/263747161, b/263289024)
- quando l'impostazione della torcia/lo zoom viene eseguita prima del completamento dell'inizializzazione della fotocamera, ad esempio chiamando
CameraController#enableTorch
, l'azione in attesa viene memorizzata nella cache e inviata al termine dell'inizializzazione. (I11e92, b/264157663)
Versione 1.3.0-alpha02
7 dicembre 2022
androidx.camera:camera-*:1.3.0-alpha02
viene rilasciato. La versione 1.3.0-alpha02 contiene questi commit.
Modifiche all'API
- Aggiungere una nuova API per applicare l'effetto di post-elaborazione all'output di Anteprima. (Ic17d5)
OutputOptions.getDurationLimit
è stato rinominato inOutputOptions.getDurationLimitMillis
eOutputOptions.setDurationLimit
inOutputOptions.setDurationLimitMillis
. (I91f0c)- Aggiungi la classe
AudioConfig
per gestire l'impostazione relativa all'audio durante la registrazione video. L'annotazione@RequiresPermission
viene spostata dalle funzionistartRecording
aAudioConfig
per evitare richieste di autorizzazione non necessarie nei casi in cui l'audio non è necessario. (I28755) - Rimuovi le classi Metadata,
OnVideoSavedCallback
,OutputFileOptions
eOutputFileResults
che non vengono più utilizzate dopo l'applicazione della nuova API di acquisizione video. (I38cd8) - Applica la nuova API di acquisizione video. I metodi
getVideoCaptureTargetSize
esetVideoCaptureTargetSize
vengono sostituiti rispettivamente con i metodigetVideoCaptureTargetQuality
esetVideoCaptureTargetQuality
, poichésetTargetResolution
non è più supportato. (I2a1d5)
Correzioni di bug
- Rimuovi l'API
core.VideoCapture
obsoleta. (I531e0) - È stato risolto il problema per cui il callback
onError
non viene chiamato quando si scattano foto senza l'autorizzazione di archiviazione.(I936db, b/244807669) - Migliorare la qualità e l'affidabilità delle estensioni della videocamera. Le estensioni della fotocamera sono disattivate sui dispositivi Motorola che utilizzano la versione 1.1.0 e precedenti delle estensioni della fotocamera a causa di problemi con il supporto di Bokeh, la cattura delle immagini e la mancata ripresa dell'anteprima. (Id3ce3)
- È stato corretto l'arresto anomalo nativo quando il ritaglio dei video tramite
ViewPort
è abilitato sui dispositivi precedenti. (I16b8a, b/251357665)
Versione 1.3.0-alpha01
9 novembre 2022
androidx.camera:camera-*:1.3.0-alpha01
viene rilasciato. La versione 1.3.0-alpha01 contiene questi commit.
Nuove funzionalità
Camera-viewfinder
è stato pubblicato ufficialmente.Camera-viewfinder
fornisce un widget del mirino di base che può mostrare il feed della videocamera per la videocamera 2. Per un esempio, consulta il codice campione.
Modifiche all'API
- È stato aggiunto
OutputOptions.setDurationLimit
per consentire l'impostazione del limite di durata dei video. La registrazione verrà completata automaticamente quando viene superato il limite di durata specificato. (I902a0) - Aggiungi lo stato di errore audio della registrazione video
AudioStats.AUDIO_STATE_SOURCE_ERROR
. Viene inviato quando la configurazione dell'origine audio non riesce o si verifica un errore. (I37410)
Correzioni di bug
- Aggiunta di una funzionalità per consentire ad alcuni dispositivi problematici di riprovare a acquisire una volta in caso di errori di acquisizione. (Id4795)
- Risolto il problema di schermo nero relativo all'implementazione di
PreviewView
SurfaceView
suViewPager2
. Nell'ambito della correzione,PreviewView
riutilizzerà il proprioSurfaceView
se la risoluzione richiesta non viene modificata. (Ib3f27) - Supporta il ritaglio dei video (funzionalità WYSIWYG) quando viene utilizzata l'API
ViewPort
oCameraController
. (Ifbba8, b/201085351) - Il video acquisito con la fotocamera anteriore non riesce a essere registrato su Huawei P40 lite. (I87c57, b/250807400)
Versione 1.2
Versione 1.2.3
24 maggio 2023
androidx.camera:camera-*:1.2.3
viene rilasciato. La versione 1.2.3 contiene questi commit.
Correzioni di bug
- È stato risolto un problema per cui
VideoCapture
non funzionava con la fotocamera anteriore su alcuni dispositivi. Ad esempio, su Samsung Galaxy S23 e Xiaomi 2107113SG. (Ibec7e, b/270656244)
Versione 1.2.2
22 marzo 2023
androidx.camera:camera-*:1.2.2
viene rilasciato. La versione 1.2.2 contiene questi commit.
Correzioni di bug
- È stato risolto il problema relativo al mancato funzionamento delle Estensioni CameraX quando ProGuard è attivo su alcuni dispositivi come Pixel (I90aa2)
Versione 1.2.1
25 gennaio 2023
androidx.camera:camera-*:1.2.1
viene rilasciato. La versione 1.2.1 contiene questi commit.
Correzioni di bug
- È stato risolto il problema di danneggiamento delle immagini JPEG se si scrivono i dati sulla posizione Exif su alcuni dispositivi Samsung con Android 12. (b/263289024)
Versione 1.2.0
7 dicembre 2022
androidx.camera:camera-*:1.2.0
viene rilasciato. La versione 1.2.0 contiene questi commit.
Modifiche importanti dalla versione 1.1.0
- Nuova libreria camera-mlkit-vision. Integra facilmente CameraX con molte funzionalità di MLKit, tra cui scansione di codici a barre, rilevamento di volti, rilevamento di testo e così via. Sono state aggiunte
MLKitAnalyzer
come nuove API. - Nuova API sperimentale Zero-Shutter Lag. Ottimizza la pipeline di acquisizione per avere una latenza migliore mantenendo una buona qualità dell'immagine. Quando la modalità di acquisizione è impostata su
CAPTURE_MODE_ZERO_SHUTTER_LAG
, la latenza tra il clic sul pulsante di scatto e lo scatto della foto dovrebbe essere ridotta al minimo, rispetto ad altre modalità di acquisizione. Sui dispositivi che non supportanoZERO_SHUTTER_LAG
, verrà eseguito il fallback aCAPTURE_MODE_MINIMIZE_LATENCY
. - Rifiuta
android.camera.core.VideoCapture
. - È stata aggiunta
setStreamUseCase()
come APICamera2Interop
pubblica. - È stato aggiunto il requisito del livello API per
setOutputImageRotationEnabled
. ImageAnalysis.Analyzer#getTargetResolutionOverride()
rinominato inImageAnalysis.Analyzer#getDefaultTargetResolution()
.- È stata aggiunta un'API per impostare i metadati della posizione sul video salvato.
- È stato risolto il problema di frame rate basso quando si utilizzano i casi d'uso
VideoCapture
e Anteprima con proporzioni 16:9 - È stato risolto il problema di anteprima nera che si verifica quando l'estensione BOKEH è attivata su alcuni dispositivi Samsung e l'utente cambia fotocamera.
- Risolto il problema di allungamento
Preview/VideoCapture
dei dispositivi Samsung J7 Prime (SM-G610M) e J7 (SM-J710MN) a livello di API 27. - È stata disattivata la soluzione alternativa per capovolgere orizzontalmente la regione AF delle fotocamere anteriori su Samsung Android T poiché il problema è stato risolto
Versione 1.2.0-rc01
24 ottobre 2022
androidx.camera:camera-*:1.2.0-rc01
viene rilasciato. La versione 1.2.0-rc01 contiene questi commit.
Modifiche all'API
- Aggiungi l'API
setStreamUseCase
perOutputConfiguration
. L'utente può specificare il caso d'uso di streaming per la sessione di streaming, sostituendo le logiche interne di CameraX per scegliere il caso d'uso di streaming in modo da ottimizzare in base alle proprie esigenze. (Ib1a95)
Correzioni di bug
- Risolto il problema di allungamento
Preview/VideoCapture
dei dispositivi Samsung J7 Prime (SM-G610M) e J7 (SM-J710MN) a livello di API 27. La risoluzione 1920 x 1080 causa lo stretching delle immaginiPreview/VideoCapture
. È stata aggiunta una soluzione alternativa per non selezionare la risoluzione 1920 x 1080 per l'anteprima oVideoCapture
per evitare il problema di allungamento dell'immagine. (I0e04e) - È stato corretto il frame rate basso quando si utilizzano i casi d'uso
VideoCapture
e Anteprima con proporzioni 16:9 su alcuni dispositivi Huawei. (If8c88, b/223643510) - È stato corretto l'errore di apertura della videocamera quando
SurfaceProvider
di Anteprima non è impostato. Nell'ambito della correzione, l'anteprima senzaSurfaceProvider
impostato non verrà più configurata nella sessione di acquisizione della fotocamera. (I99681)
Versione 1.2.0-beta02
21 settembre 2022
androidx.camera:camera-*:1.2.0-beta02
viene rilasciato. La versione 1.2.0-beta02 contiene questi commit.
Modifiche all'API
- Aggiungi il requisito del livello API per
setOutputImageRotationEnabled
(I26e3e, b/240993561)
Correzioni di bug
- Poiché il problema è stato risolto, è stata disattivata la soluzione alternativa per capovolgere orizzontalmente la regione AF delle fotocamere anteriori su Samsung Android T. (I05f69)
- È stato risolto il problema di anteprima nera che si verifica quando l'estensione
BOKEH
è attivata su alcuni dispositivi Samsung e l'utente cambia fotocamera. (If6168)
Versione 1.2.0-beta01
24 agosto 2022
androidx.camera:camera-*:1.2.0-beta01
viene rilasciato. La versione 1.2.0-beta01 contiene questi commit.
Nuove funzionalità
- Nuova libreria
camera-mlkit-vision
. Integra facilmente CameraX con molte funzionalità di MLKit, tra cui scansione di codici a barre, rilevamento di volti, rilevamento di testo e così via. Trova il codice di esempio qui. - Nuova API Zero-Shutter Lag sperimentale. Ottimizza la pipeline di acquisizione per avere una latenza migliore mantenendo una buona qualità dell'immagine. Quando la modalità di acquisizione è impostata su CAPTURE_MODE_ZERO_SHUTTER_LAG, la latenza tra il clic sul pulsante di scatto e lo scatto della foto dovrebbe essere ridotta al minimo rispetto ad altre modalità di acquisizione. Sui dispositivi che non supportano ZERO_SHUTTER_LAG, verrà utilizzato il valore CAPTURE_MODE_MINIMIZE_LATENCY.
- Sono state create le API ufficiali
ImageAnalysis.Analyzer
eMLKitAnalyzer
. - API esposta per l'impostazione dei metadati della posizione nel video salvato.
- Rinomina
ImageAnalysis.Analyzer#getTargetResolutionOverride()
inImageAnalysis.Analyzer#getDefaultTargetResolution()
.
Correzioni di bug
- È stato risolto il problema di acquisizione delle immagini di Alps k61v1_basic_ref. Le immagini JPEG acquisite da HAL hanno metadati EXIF errati. I metadati Exif non hanno il tag 0xffd9 o 0xffda per consentire a
ExifInterface
di analizzare correttamente gli attributi. Acquisisci le immagini in formato YUV e poi comprimile in immagini di output JPEG per risolvere il problema. (I45abb)
Versione 1.2.0-alpha04
27 luglio 2022
androidx.camera:camera-*:1.2.0-alpha04
viene rilasciato. La versione 1.2.0-alpha04 contiene questi commit.
Modifiche all'API
- Rinomina
ImageAnalysis.Analyzer#getTargetResolutionOverride()
inImageAnalysis.Analyzer#getDefaultTargetResolution()
. Il comportamento viene modificato anche in modo che il valore restituito da questo metodo possa essere sostituito dal valore diImageAnalysis#setTargetResolution()
. (If1d36) - API esposta per l'impostazione dei metadati della posizione nel video salvato. Un oggetto
android.location.Location
può essere impostato tramite la nuova APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
. (I313a0, b/204197544)
Correzioni di bug
- Risolvere il problema di acquisizione di foto con l'anteprima di scollegamento (Ie70b6, b/235119898)
- È stato corretto un arresto anomalo in
Recorder
quando si tenta di registrare quando l'origine audio non è disponibile. (I9f652)
Versione 1.2.0-alpha03
29 giugno 2022
androidx.camera:camera-*:1.2.0-alpha03
viene rilasciato. La versione 1.2.0-alpha03 contiene questi commit.
Modifiche all'API
- È stata rimossa l'annotazione sperimentale per
ImageAnalysis.Analyzer
eMLKitAnalyzer
. (I0ff22)
Correzioni di bug
- È stato aggiunto il timeout predefinito per l'autofocus di 5000 ms che completa la parte di AF con
isFocusSuccessful
false seFocusMeteringAction
non viene annullato e la parte di AF non è convergente nella durata. (Ibc2e3) - Risolvere il problema di acquisizione di foto con l'anteprima di scollegamento (I1d3a2, b/235119898)
- È stata attivata l'implementazione di un'estensione avanzata e la versione dell'interfaccia delle estensioni di supporto di CameraX è stata aggiornata alla 1.2 (I92256)
Versione 1.2.0-alpha02
1° giugno 2022
androidx.camera:camera-*:1.2.0-alpha02
viene rilasciato. La versione 1.2.0-alpha02 contiene questi commit.
Nuove funzionalità
- Esporre l'API CameraX Zero-Shutter Lag come sperimentale.
Modifiche all'API
- Aggiungi la nuova modalità di acquisizione
CAPTURE_MODE_ZERO_SHUTTER_LAG
inImageCapture
eisZslSupported
inCameraInfo
per eseguire una query sulla funzionalità del dispositivo. La modalitàCAPTURE_MODE_ZERO_SHUTTER_LAG
mira a fornire la latenza minima per l'acquisizione istantanea. È implementato in base a un buffer circolare, che memorizza nella cache i risultati di acquisizione intermedi per il successivo rielaborarli quando l'utente preme i pulsanti per scattare foto. Se {@link VideoCapture} è associato, la modalità flash non è OFF o l'estensione OEM è ON, questa modalità verrà disattivata automaticamente. (I9ae74) - Aggiungi il metodo
ImageAnalysis.getBackgroundExecutor()
(Icc945)
Correzioni di bug
- È stato corretto il metodo
ImageCapture
takePicture che disattiva la torcia sui dispositivi segnalati. (Ib5eb5, b/228272227) - È stato corretto un bug per cui
AssertionError
non veniva gestito durante l'ottenimento della caratteristicaCONTROL_ZOOM_RATIO_RANGE
.(/Ia248a, b/231701345)
Versione 1.2.0-alpha01
18 maggio 2022
androidx.camera:camera-*:1.2.0-alpha01
viene rilasciato. La versione 1.2.0-alpha01 contiene questi commit.
Nuove funzionalità
- È stata lanciata la nuova libreria camera-mlkit-vision
Correzioni di bug
- È stato corretto il problema per cui
QualitySelector
non riesce a registrare un video UHD quando è attiva una strategia di riserva. Il problema si verifica quandoVideoCapture
è associato aImageCapture
e Anteprima su un dispositivo con videocamera a livello hardware FULL o superiore. Una strategia di riserva diQualitySelector
fa sì cheVideoCapture
ottenga erroneamente una risoluzione FHD. La risoluzione UHD è effettivamente supportata per questa combinazione di casi d'uso e dovrebbe essere adottata. (I0e788, b/230651237) NullPointerException
è stato corretto il giornoImageCapture.takePicture()
. (I92366, b/230454568, b/229766155)- Correggere il comportamento di messa in pausa asincrona di
androidx.camera.video.Recorder
(Ia8ce8)
Camera-Camera2, Camera-Core, Camera-Lifecycle e Camera-Video versione 1.1.0
Versione 1.1.0
29 giugno 2022
androidx.camera:camera-*:1.1.0
viene rilasciato. La versione 1.1.0 contiene questi commit.
Modifiche importanti dalla versione 1.0.0
- Le librerie Landed View, Estensione e Acquisizione video come prima versione RC. A partire dalla versione 1.1.0-beta01, tutte le librerie CameraX avranno lo stesso numero di versione. In questo modo, gli sviluppatori potranno monitorare le versioni molto più facilmente e ridurre la complessità delle matrici di compatibilità delle versioni di grandi dimensioni.
- Sono state introdotte nuove API e funzionalità pubbliche, tra cui:
- Aggiungi la raccolta video-fotocamera ufficiale per supportare i casi d'uso di acquisizione video.
- Funzionalità di conversione e rotazione da YUV a RGB (
ImageAnalysis.Builder.setOutputImageRotationEnabled
esetOutputImageFormat
) - Supporta la modalità multifinestra consentendo alle applicazioni CameraX di riprendere la fotocamera quando viene interrotta da un'altra app e il fuoco è di nuovo attivo.
- Garantisce il corretto funzionamento di CameraX nei dispositivi pieghevoli risolvendo alcuni problemi di anteprima.
- È stata aggiunta un'API
CameraState
che verrà esposta tramite CameraInfo. - È stata aggiunta un'API
ProcessCameraProvider.getAvailableCameraInfos()
per recuperare direttamente le informazioni sulle videocamere disponibili - Formato JPEG di output per
ImageCapture#OnImageCapturedCallback
quando le estensioni sono attive. - È stata aggiunta un'API
isFocusMeteringSupported
inCameraInfo
che consente alle applicazioni di verificare se ilFocusMeteringAction
specificato è supportato sulla videocamera attuale. - È stata esposta l'API
getResolutionInfo
per fornire le informazioni sulla risoluzione per Anteprima,ImageCapture
eImageAnalysis
. - È stata aggiunta una nuova API
ImageCapture.Builder#setJpegQuality
per consentire di modificare la qualità di compressione delle immagini JPEG in uscita quando scatti foto. - È stato aggiunto
CameraSelector#filter
all'API pubblica per filtrare un elenco diCameraInfos
in base a unCameraSelector
. - È stato aggiunto
Camera2CameraControl.clearCaptureRequestOptions
per cancellare le opzioni di richiesta di acquisizione esistenti. - È stata aggiunta un'API sperimentale per l'utilizzo di
CameraController
con librerie di elaborazione delle immagini esterne, ad esempio MLKit - È stata aggiunta l'API sperimentale
CameraInfo#getCameraSelector()
che restituisce unCameraSelector
univoco per la videocamera - Sono state promosse diverse API sperimentali ad API pubbliche formali
- È stata sostituita l'annotazione
@Experimental
con@RequiresOptIn
per le API sperimentali. Per chiamare le API sperimentali, utilizza androidx.annotation.OptIn anziché androidx.annotation.experimental.UseExperimental, che è deprecato. - Sono state promosse a API ufficiali le seguenti API sperimentali:
CameraXConfig.Builder#setAvailableCamerasLimiter()
,CameraXConfig.Builder#setMinimumLoggingLevel()
,CameraXconfig.Builder#setSchedulerHandler()
,CameraXConfig#getAvailableCamerasLimiter()
,CameraXConfig#getMinimumLoggingLevel()
,CameraXConfig#getCameraExecutor()
,CameraXConfig#getSchedulerHandler()
, - API
@ExperimentalCameraFilter
- API sperimentali di compensazione dell'esposizione.
- È stata promossa l'API
UseCaseGroup
sperimentale per le API camera-core, camera-lifecycle e camera-video. Sono stati aggiuntiViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
eViewPort.Builder#setScaleType
per personalizzare il viewport. - È stata promossa la versione
ExperimentalUseCaseGroupLifecycle
alle API pubbliche formali. - Modifiche alle API esistenti
Renamed MediaStoreOutputOptions.getCollection
perMediaStoreOutputOptions.getCollectionUri
.ActiveRecording
è stato rinominato in "Registrazione" per ridurre la verbosità.- È stata modificata l'API per i creator di
QualitySelector
in un'API basata su elenco
Correzioni di bug
- È stato risolto il problema
YuvToJpegProcessor
EOFException
quando la modalità di estensione è attivata e la modalitàImageCapture#CAPTURE_MODE_MAX_QUALITY
è impostata. - La configurazione del codec fisso non è riuscita perché la registrazione video è in chiusura
- È stato corretto il problema di allungamento delle proporzioni dell'anteprima/del video durante la registrazione a FHD
- È stato corretto l'audio/video non sincronizzato dopo la messa in pausa e la ripresa su alcuni dispositivi
- È stato risolto il problema per cui il flash si attiva durante il tocco per mettere a fuoco (
startFocusAndMetering
) quando la modalità flash è automatica o always_on in ambienti con scarsa illuminazione.
Versione 1.1.0-rc02
1° giugno 2022
androidx.camera:camera-*:1.1.0-rc02
viene rilasciato. La versione 1.1.0-rc02 contiene questi commit.
Correzioni di bug
NullPointerException
è stato corretto il giornoImageCapture.takePicture()
. (I92366, b/230454568, b/229766155)- È stato corretto un bug per cui
AssertionError
non veniva gestito durante l'ottenimento della caratteristicaCONTROL_ZOOM_RATIO_RANGE
. (Ia248a, b/231701345)
Versione 1.1.0-rc01
11 maggio 2022
androidx.camera:camera-*:1.1.0-rc01
viene rilasciato. La versione 1.1.0-rc01 contiene questi commit.
Nuove funzionalità
- Rilacia la prima versione RC per camera-video, camera-view e camera-extension
Correzioni di bug
- È stato risolto un problema per cui il codec video non veniva rilasciato quando
VideoCapture<Recorder>
non era vincolato, causando l'interruzione degli utilizzi successivi diVideoCapture<Recorder>
durante la registrazione conMediaCodec.CodecException
, in particolare sui dispositivi con API 21-22. (Ie7f68) - Correggere le immagini acquisite di
CameraExtensionsActivity
in modo che non vengano eliminate inImageCaptureTest
Versione 1.1.0-beta03
6 aprile 2022
androidx.camera:camera-*:1.1.0-beta03
viene rilasciato. La versione 1.1.0-beta03 contiene questi commit.
Modifiche all'API
- Il costruttore
CaptureRequestOptions
è stato limitato. (I261b6) - È stata aggiunta un'API sperimentale per l'utilizzo di
CameraController
con librerie di elaborazione delle immagini esterne, ad esempio MLKit (I4ea71)
Correzioni di bug
- È stato risolto il problema per cui l'anteprima diventa laterale in
PreviewView
quando l'attività non viene riavviata dopo la rotazione dei dispositivi in multi-finestra. (I1ea36, b/223488673) - È stato risolto un problema relativo alle finestre multiple: quando lo stato attivo torna all'app, la fotocamera non viene riavviata quando (1) un'altra app ad alta priorità apre una fotocamera diversa (2) il dispositivo è Samsung Android 12. (I7e9f2)
- È stata inclusa una soluzione alternativa per i dispositivi che si arrestano in modo anomalo durante il controllo della disponibilità di Flash. Su questi dispositivi non sarà disponibile la torcia. (If26a3, b/216667482)
- È stato risolto il problema
AbstractMethodError
che si verificava quando le app utilizzano estensioni e attivano ProGuard. (I7cbaf, b/222726805) - Disattivare forzatamente la modalità di estensione bokeh sul dispositivo Motorola razr 5G, causando un problema con la schermata di anteprima nera. (I35d49)
- È stato corretto l'audio/video non sincronizzato dopo la messa in pausa e la ripresa su alcuni dispositivi Samsung precedenti all'API 29. (I64622, b/202798609, b/202798572)
- È stato risolto il problema di mancata sincronizzazione audio/video dopo la messa in pausa e la ripresa su Sony G3125. (I2a1a5, b/202799148)
- Risolto un arresto anomalo quando Registratore ha rilevato un
InvalidConfigException
. Tuttavia, questa correzione impedisce solo il blocco dell'app, ma non risolve la causa dell'erroreInvalidConfigException
. Se non è ancora possibile configurareRecorder
, le applicazioni riceveranno una chiamata di ritorno di errore all'avvio della registrazione. (I89c29, b/213617227)
Contributo esterno
- API :compose:ui:ui-test aggiornata (updateApi) a causa della migrazione di test-coroutines-lib (I3366d)
Versione 1.1.0-beta02
23 febbraio 2022
androidx.camera:camera-*:1.1.0-beta02
viene rilasciato. La versione 1.1.0-beta02 contiene questi commit.
Modifiche all'API
- Aggiungi la possibilità di specificare l'ID della videocamera fisica tramite Camera2Interop. (I5aed8)
Correzioni di bug
- È stato risolto il problema dell'anteprima allungata su Oppo Find N (I7d004)
- È stato risolto un problema relativo all'anteprima distorta del Galaxy J7 Prime. (I4c500)
- Utilizza una velocità in bit compatibile per trovare il codificatore video. (d969052)
Versione 1.1.0-beta01
26 gennaio 2022
androidx.camera:camera-*:1.1.0-beta01
viene rilasciato. La versione 1.1.0-beta01 contiene questi commit.
Nuove funzionalità
- A partire dalla versione 1.1.0-beta01, tutte le librerie CameraX avranno lo stesso numero di versione. In questo modo, gli sviluppatori potranno monitorare le versioni molto più facilmente e ridurre la complessità della matrice di compatibilità delle versioni di grandi dimensioni.
Modifiche all'API
- È stato aggiunto
Camera2CameraControl.clearCaptureRequestOptions
per cancellare le opzioni di richiesta di acquisizione esistenti. (Ifa07d)
Correzioni di bug
- È stato risolto l'arresto anomalo durante la registrazione del video su alcuni dispositivi precedenti ad Android O(API 26). (I88fdf, b/212328261)
- Risolto il problema della regione AF errata quando si utilizza
cameraControl#startFocusAndMetering()
sulla fotocamera anteriore rivolta verso l'obiettivo nei dispositivi Samsung (Ifbf59, b/210548792) - Usare la torcia come flash su Pixel 3a/Pixel 3a XL per migliorare la velocità e la qualità delle immagini acquisite in condizioni di scarsa illuminazione (Ib12b6, b/211474332)
- Consente alle applicazioni di riprendere la fotocamera quando viene interrotta da un'altra applicazione con priorità più alta nella modalità a più finestre e lo stato attivo torna all'applicazione. Tieni presente che potrebbe esserci un po' di latenza(da 1 a 10 secondi o più) tra le modifiche dell'effetto bokeh e la riapertura della fotocamera a causa di un problema del framework. (I4d092)
Versione 1.1.0-alpha12
15 dicembre 2021
androidx.camera:camera-*:1.1.0-alpha12
viene rilasciato. La versione 1.1.0-alpha12 contiene questi commit.
Modifiche all'API
- Sono state rimosse le annotazioni
@RequiresApi(21)
non necessarie dalle classi/interfacce interne. (I8e286, b/204917951) - Le costanti di qualità e le costanti della strategia di riserva di
QualitySelector
sono state modificate in modo da essere rappresentate da oggetti di classe. Ad esempio,QualitySelector.QUALITY_HD
viene modificato inQuality.HD
eQualitySelector.FALLBACK_STRATEGY_LOWER
viene modificato nell'istanza restituita daFallbackStrategy.lowerQualityOrHigherThan(Quality)
. L'API utilizzata per creareQualitySelector
è stata modificata in un'API basata su elenchi. La nuova APIQualitySelector.fromOrderedList(List<Quality>)
farà riferimento all'ordine dell'elenco di qualità di input anziché all'ordine creato daQualitySelector.Procedure
. Il corsoQualitySelector.Procedure
è stato rimosso. (I43343) PendingRecording.withEventListener()
è stato rimosso e il listener di eventi ora deve essere passato aPendingRecording.start()
. Questo requisito del listener di eventi ha lo scopo di incoraggiare la gestione degli errori asincroni segnalati nell'eventoVideoRecordEvent.Finalize
. (I1e71d)ActiveRecording
è stato rinominato inRecording
per ridurre la verbosità. (I77ceb)
Correzioni di bug
- È stato corretto il problema per cui le foto scattate in modalità
FLASH_AUTO
sono sottoesposte in condizioni di scarsa illuminazione su Pixel 3a e Pixel 3a XL (I13f19, b/205373142) - Utilizza sempre le dimensioni di visualizzazione più recenti per determinare l'anteprima
Resolution
. (I4a694) - Sono state escluse le videocamere che non dispongono di
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
. Le fotocamere conREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
dispongono del set minimo di funzionalità supportate da ogni dispositivo. La videocamera senzaREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
potrebbe essere una videocamera che supporta funzionalità speciali e non supporta l'uscita a colori standard.CameraX
non può supportare i casi d'usoPreview
,ImageCapture
,ImageAnalysis
oVideoCapture
per queste videocamere. Pertanto, queste videocamere devono essere filtrate per evitare un utilizzo errato. (Ib8cda) CameraSelector#filter
non genera più unIllegalArgumentException
quando il set di risultati è vuoto. (I27804)- Ora vengono utilizzate strategie di euristica più intelligenti per selezionare le impostazioni del codificatore in base ai profili specificati dall'OEM. (Iaeef0)
- L'anteprima fissa avrà linee di colore interlacciate dopo l'avvio della registrazione video UHD su Pixel 1. (I833c6, b/205340278)
Versione 1.1.0-alpha11
17 novembre 2021
androidx.camera:camera-*:1.1.0-alpha11
viene rilasciato. La versione 1.1.0-alpha11 contiene questi commit.
Modifiche all'API
- È stato aggiunto CameraSelector#filter all'API pubblica per filtrare un elenco di CameraInfo in base a un CameraSelector. (I105d0)
Aggiungi l'API setOutputImageRotationEnabled per la configurazione di ImageAnalysis. L'utente può attivare la rotazione per il buffer di immagini YUV/RGB. Il grado di rotazione è una rotazione relativa calcolata in base alla rotazione del sensore e alla rotazione del target per mantenere l'immagine in primo piano.
Aggiungi l'API setOutputImageRotationEnabled per la configurazione di ImageAnalysis. L'utente può attivare la rotazione per il buffer di immagini YUV/RGB. Il grado di rotazione è una rotazione relativa calcolata in base alla rotazione del sensore e alla rotazione del target per mantenere l'immagine in primo piano.
Aggiungi l'API
getSensorToBufferTransformMatrix
in ImageInfo. La matrice restituita è una mappatura dalle coordinate del sensore alle coordinate del buffer, ovvero dal valore diCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
a(0, 0, image.getWidth, image.getHeight)
. La matrice può essere utilizzata per mappare le coordinate da un {UseCase} a un altro. Ad esempio, mappare le coordinate del volto rilevato con ImageAnalysis in Anteprima. (I9ff1e)È stata aggiunta una nuova API ImageCapture.Builder#setJpegQuality per consentire di modificare la qualità di compressione delle immagini JPEG in uscita durante lo scatto. (I8dcf4)
È stato rinominato MediaStoreOutputOptions.getCollection in MediaStoreOutputOptions.getCollectionUri. (I16639)
Correzioni di bug
- È stato risolto il problema relativo all'attivazione del flash durante la messa a fuoco con tocco (startFocusAndMetering) quando la modalità flash è automatica o sempre_on in ambienti con scarsa illuminazione. (Id4c11)
- È stata disattivata la funzionalità HDR+ su Pixel 2 XL / Pixel 3 XL in modalità MINIMIZZA_LATENCY per ridurre la latenza. (Ib6270, b/203505523)
Contributo esterno
Versione 1.1.0-alpha10
13 ottobre 2021
androidx.camera:camera-*:1.1.0-alpha10
viene rilasciato. La versione 1.1.0-alpha10 contiene questi commit.
Nuove funzionalità
- È stata rilasciata ufficialmente la prima versione alpha di
androidx.camera:camera-video:1.1.0-alpha10
per Video. Esistono diversi problemi noti che verranno risolti nelle release successive.
Modifiche all'API
- È stata aggiunta l'annotazione
@RequiresApi(21)
a tutte le classi CameraX ed è stato rimosso il valore minSdkVersion da AndroidManifest.xml. In questo modo, camera-core potrà essere facilmente integrato nelle applicazioni con una versione minSdk inferiore a 21, ma che vogliono utilizzare in modo condizionale i percorsi di codice che si basano sull'API 21 e versioni successive. Per qualsiasi applicazione con minSdkVersion 21 o successive, questa modifica non richiede alcuna azione. (Ie7f2e, b/200599470)
Correzioni di bug
- Lancia un'eccezione InitializationException per consentire all'app di gestire in modo elegante l'errore AssertionError che si è verificato durante la creazione di CameraCharacteristics. (Ibec79)
Versione 1.1.0-alpha09
29 settembre 2021
androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
e androidx.camera:camera-lifecycle:1.1.0-alpha09
vengono rilasciati. La versione 1.1.0-alpha09 contiene questi commit.
Modifiche all'API
- L'annotazione ExperimentalUseCaseGroup è stata rimossa ora che le API non sono più sperimentali. (I01ef5)
Correzioni di bug
- È stato risolto il problema relativo alle foto acquisite sfocate
in modalità
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - È stato risolto un problema del Samsung Galaxy J5 per cui la fotocamera si blocca dopo aver scattato foto con il flash attivo/automatico in ambienti bui (I3aab9)
- Quando è necessario il ritaglio per ImageCapture, l'immagine ritagliata in uscita viene compressa con il livello di qualità JPEG specificato in base alla modalità di acquisizione impostata. Se la modalità di acquisizione è
CAPTURE_MODE_MINIMIZE_LATENCY
, la qualità di compressione JPEG sarà 95. Se la modalità di acquisizione èCAPTURE_MODE_MAXIMIZE_QUALITY
, la qualità di compressione JPEG sarà 100. (Ieb37c, b/142856426)
Versione 1.1.0-alpha08
18 agosto 2021
androidx.camera:camera-camera2:1.1.0-alpha08
, androidx.camera:camera-core:1.1.0-alpha08
e androidx.camera:camera-lifecycle:1.1.0-alpha08
vengono rilasciati. La versione 1.1.0-alpha08 contiene questi commit.
Nuove funzionalità
- Aggiungi l'API setOutputImageFormat per la configurazione dell'analisi delle immagini. L'utente può selezionare ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 o ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. Per impostazione predefinita, sarà selezionato ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888. (I7902d)
Modifiche all'API
- L'annotazione ExperimentalUseCaseGroupLifecycle è stata rimossa ora che le API non sono più sperimentali. (I17b85)
Correzioni di bug
- È stato corretto il problema relativo alla luminosità eccessiva della schermata di anteprima su Huawei P20 Lite. Questo problema si verifica solo quando vengono utilizzate determinate risoluzioni di anteprima speciali insieme a un valore di zoom in elevato. (Idefce, b/192129158)
- È stato risolto un problema per cui il flash non funziona su alcuni dispositivi quando si imposta la modalità flash su FLASH_MODE_ON poco dopo aver scattato foto. (Ieb49b)
- È stato risolto il problema per cui Anteprima si arrestava per un po' di tempo quando si scattavano foto se VideoCapture, ImageCapture e Anteprima erano associati. (I56197, b/193864120)
- Consente a ImageAnalysis di selezionare una risoluzione superiore a 1080p. Un dispositivo di livello superiore a LIMITED può supportare una risoluzione delle dimensioni RECORD per ImageAnalysis quando è associato a Anteprima e Acquisizione di immagini. Il compromesso è che la risoluzione selezionata per ImageCapture dovrà essere anche una risoluzione di dimensioni RECORD. Per selezionare correttamente una risoluzione delle dimensioni RECORD per ImageAnalysis, è necessario impostare una risoluzione target delle dimensioni RECORD sia su ImageCapture che su ImageAnalysis. Ciò indica che l'applicazione comprende chiaramente il compromesso e preferisce che ImageAnalysis abbia una risoluzione maggiore anziché che ImageCapture abbia una risoluzione MASSIMA. Per le definizioni delle dimensioni RECORD e MAXIMUM e per ulteriori dettagli, visita la pagina https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. La dimensione RECORD si riferisce alla risoluzione di registrazione massima supportata dal dispositivo della videocamera, come determinata da CamcorderProfile. La dimensione MASSIMA si riferisce alla risoluzione di output massima del dispositivo della fotocamera per quel formato o target da StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
- Aggiungi le informazioni Exif all'immagine acquisita. (I01ff0, b/193342619)
- In ImageCapture, restituisce l'URI dell'immagine salvata se la posizione di salvataggio è File. (Ib5b49, b/149241379)
- È stato risolto un problema per cui le immagini acquisite con il flash erano scure su molti dispositivi. (I4e510)
Versione 1.1.0-alpha07
21 luglio 2021
androidx.camera:camera-camera2:1.1.0-alpha07
, androidx.camera:camera-core:1.1.0-alpha07
e androidx.camera:camera-lifecycle:1.1.0-alpha07
vengono rilasciati. La versione 1.1.0-alpha07 contiene questi commit.
Correzioni di bug
- È stato risolto un problema del Samsung Galaxy Note 5 per cui la fotocamera si blocca dopo aver scattato foto con il flash attivo/automatico in ambienti bui (If6871)
- È stato risolto il problema
YuvToJpegProcessor
EOFException quando la modalità di estensione è attivata e la modalitàImageCapture#CAPTURE_MODE_MAX_QUALITY
è impostata. (I538bd, b/192017012)
Versione 1.1.0-alpha06
30 giugno 2021
androidx.camera:camera-camera2:1.1.0-alpha06
, androidx.camera:camera-core:1.1.0-alpha06
e androidx.camera:camera-lifecycle:1.1.0-alpha06
vengono rilasciati. La versione 1.1.0-alpha06 contiene questi commit.
Modifiche all'API
- Promuovere le API di compensazione dell'esposizione sperimentali per camera-core (I08ee8)
- È stata aggiunta un'API isFocusMeteringSupported in CameraInfo che consente alle applicazioni di verificare se l'azione di misurazione della messa a fuoco specificata è supportata o meno sulla fotocamera attuale. (Ib45ae, b/188606490)
- È stata esposta l'API getResolutionInfo per fornire le informazioni sulla risoluzione per Anteprima, Acquisizione di immagini e Analisi di immagini. (I2b613, b/188600718)
- Le seguenti API sperimentali sono state promosse ad API ufficiali: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
- È stata esposta l'interfaccia CameraProvider per fornire l'accesso a un insieme di fotocamere. (I1a7b1)
- Promuovi l'API UseCaseGroup sperimentale per camera-core, camera-lifecycle e camera-video. Sono stati aggiunti
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
eViewPort.Builder#setScaleType
per personalizzare il viewport. (I7cee8)
Versione 1.1.0-alpha05
2 giugno 2021
androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
e androidx.camera:camera-lifecycle:1.1.0-alpha05
vengono rilasciati. La versione 1.1.0-alpha05 contiene questi commit.
Modifiche all'API
- Corso
Camera2CameraFilter
rimosso. Suggerire di selezionare la videocamera tramite CameraFilter e recuperare CameraCharacteristics o altre informazioni relative a Camera2 tramite Camera2CameraInfo, se necessario. (Ib887c) - Le API
ExperimentalCameraFilter
non sono più in fase sperimentale e diventano API formali. Possono essere utilizzati senza attivazione annotata. (I4bc94) - È stata aggiunta l'API dello stato della videocamera esposta tramite
CameraInfo#getCameraState()
. (Ia86b4) - È stata aggiunta l'API sperimentale
CameraInfo#getCameraSelector()
che restituisce un selettore della videocamera univoco per la videocamera (I77f9f)
Correzioni di bug
- È stato risolto il problema per cui ListenableFuture restituito in setZoomRatio e setLinearZoom non può essere completato su alcuni dispositivi Android 11 (I716d7)
- Accelerare il passaggio da una videocamera all'altra e ridurre la frequenza di errori del dispositivo della videocamera (I34c99)
- È stato sostituito ExperimentalUseCaseGroupLifecycle con ExperimentalUseCaseGroup. (I3b2ef, b/159033688)
Versione 1.1.0-alpha04
21 aprile 2021
androidx.camera:camera-camera2:1.1.0-alpha04
, androidx.camera:camera-core:1.1.0-alpha04
e androidx.camera:camera-lifecycle:1.1.0-alpha04
vengono rilasciati. La versione 1.1.0-alpha04 contiene questi commit.
Correzioni di bug
- È stata corretta una perdita di memoria causata da più thread che accedevano contemporaneamente alla stessa raccolta. La perdita di memoria potrebbe causare la conservazione dell'attività o del frammento da parte di un'istanza di Anteprima. (I7b4b8)
- È stata sostituita l'annotazione
@Experimental
con@RequiresOptIn
per le API sperimentali. Per chiamare le API sperimentali, utilizzaandroidx.annotation.OptIn
anzichéandroidx.annotation.experimental.UseExperimental
deprecato. (Iff226) - La funzionalità di acquisizione di immagini fisse con flash On/Auto scatta immagini sbiadite su Samsung Galaxy S7. (I30001)
- È stata aggiunta un'API CameraState che verrà esposta tramite CameraInfo. (I75392)
Versione 1.1.0-alpha03
24 marzo 2021
androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
e androidx.camera:camera-lifecycle:1.1.0-alpha03
vengono rilasciati. La versione 1.1.0-alpha03 contiene questi commit.
Correzioni di bug
- Formato JPEG di output per
ImageCapture#OnImageCapturedCallback
quando le modalità Estensioni sono attive. (I0d7b1) - È stato corretto l'errore di inizializzazione sui dispositivi UMIDIGI BISON (I57d9e, b/180818665)
- È stata corretta l'anteprima allungata del Samsung A3 in PreviewView. (Iacb30, b/180121821)
Versione 1.1.0-alpha02
24 febbraio 2021
androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
e androidx.camera:camera-lifecycle:1.1.0-alpha02
vengono rilasciati. La versione 1.1.0-alpha02 contiene questi commit.
Modifiche all'API
- È stata aggiunta un'API
ProcessCameraProvider.getAvailableCameraInfos()
per recuperare direttamente le informazioni sulle videocamere disponibili, che possono essere tutte le videocamere del dispositivo o quelle selezionate dall'CameraSelector
fornito inCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
. (Ieac08)
Correzioni di bug
- Ora CameraX tenta di aprire forzatamente una fotocamera al primo tentativo, il che potrebbe comportare il furto della fotocamera da parte di altri client della fotocamera quando la sua app ha una priorità più alta. (Iab069, b/175820568)
- È stato corretto l'errore del test Robolectric quando viene utilizzato setAvailableCamerasLimiter in CameraXConfig. (Ice307)
- Questa modifica rileva l'eccezione quando la coda di immagini è al massimo in ImageAnalysis. Pertanto, anziché arrestarsi in modo anomalo, potresti notare che altri casi d'uso sono bloccati o rallentati, ad esempio l'anteprima bloccata/rallentata. (Ic12da, b/175851631)
- È stato corretto ExtensionsErrorListener per segnalare gli errori quando è associato solo Anteprima o ImageCapture. (I5ae39)
- È stata corretta la regressione del rendimento di ImageCapture rimuovendo la convalida della posizione di salvataggio delle immagini prima di scattare una foto. Dopo aver apportato questa modifica, se la destinazione di salvataggio non è valida, ci vorrà più tempo per ricevere la risposta di errore perché verrà tentata la salvataggio dell'immagine dopo lo scatto della foto. (I1fd4e, b/177061560)
- È stata corretta la regressione delle prestazioni di ImageCapture con OutputFileOptions di tipo "File". (I5164a, b/177061560)
- La documentazione è stata aggiornata per sconsigliare l'utilizzo di
ProcessCameraProvider.configureInstance(...)
dal codice della libreria. (Ib8a9f)
Versione 1.1.0-alpha01
27 gennaio 2021
androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
e androidx.camera:camera-lifecycle:1.1.0-alpha01
vengono rilasciati. La versione 1.1.0-alpha01 contiene questi commit.
Correzioni di bug
- È stata inclusa una soluzione alternativa per i dati delle immagini corrotti intermittenti nei file JPEG sulla fotocamera posteriore del SM-G930T. (I52001, b/159831206)
- È stato risolto il problema
IllegalArgumentException
che si verificava quando tutte le dimensioni supportate per l'anteprima erano inferiori a 640 x 480 e le dimensioni di visualizzazione erano superiori a 640 x 480. (I2a63c, b/150506192) - Le risorse nelle librerie senza risorse pubbliche dichiarate esplicitamente (ad es. tramite public.xml) ora sono private per impostazione predefinita. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core e Camera-Lifecycle versione 1.0.2
Versione 1.0.2
29 settembre 2021
androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
e androidx.camera:camera-lifecycle:1.0.2
vengono rilasciati. La versione 1.0.2 contiene questi commit.
Correzioni di bug
- È stato risolto il problema relativo alle foto acquisite sfocate
in modalità
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - È stato risolto un problema per cui l'immagine acquisita con il flash è scura su molti dispositivi. (I4e510)
Camera-Camera2, Camera-Core e Camera-Lifecycle versione 1.0.1
Versione 1.0.1
21 luglio 2021
androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
e androidx.camera:camera-lifecycle:1.0.1
vengono rilasciati. La versione 1.0.1 contiene questi commit.
Correzioni di bug
È stato risolto il problema per cui
ListenableFuture
restituito insetZoomRatio
esetLinearZoom
non può essere completato su alcuni dispositivi Android 11 (I716d7)È stato risolto il problema per cui la videocamera si blocca nello stato di chiusura della videocamera su alcuni dispositivi e causa un'anteprima nera. (I34c99)
Versione 1.0.0 di Camera-Camera2, Camera-Core e Camera-Lifecycle
Versione 1.0.0
5 maggio 2021
androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
e androidx.camera:camera-lifecycle:1.0.0
vengono rilasciati. La versione 1.0.0 contiene questi commit.
Funzionalità principali della versione 1.0.0
- CameraX supporta Preview, ImageCapture e Analysis
- CameraX gestisce il ciclo di vita della fotocamera all'interno di un'API facile da usare
- L'obiettivo di CameraX è fornire un livello di compatibilità che risolva molti problemi nell'ecosistema delle fotocamere Android
Problemi noti
- Consulta l'elenco dei problemi noti
Versione 1.0.0-rc05
21 aprile 2021
androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
e androidx.camera:camera-lifecycle:1.0.0-rc05
vengono rilasciati. La versione 1.0.0-rc05 contiene questi commit.
Correzioni di bug
- La funzionalità di acquisizione di immagini fisse con flash On/Auto scatta immagini sbiadite su Samsung Galaxy S7. (I30001)
Versione 1.0.0-rc04
24 marzo 2021
androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
e androidx.camera:camera-lifecycle:1.0.0-rc04
vengono rilasciati. La versione 1.0.0-rc04 contiene questi commit.
Correzioni di bug
- È stato corretto l'errore di inizializzazione sui dispositivi UMIDIGI BISON (I57d9e, b/180818665)
Versione 1.0.0-rc03
24 febbraio 2021
androidx.camera:camera-camera2:1.0.0-rc03
, androidx.camera:camera-core:1.0.0-rc03
e androidx.camera:camera-lifecycle:1.0.0-rc03
vengono rilasciati. La versione 1.0.0-rc03 contiene questi commit.
Correzioni di bug
- Correggi l'errore di formato nel documento di
ProcessCameraProvider#getInstance
- È stato corretto l'errore del test Robolectric quando viene utilizzato setAvailableCamerasLimiter in CameraXConfig.
- È stata corretta la regressione del rendimento di ImageCapture rimuovendo la convalida della posizione di salvataggio delle immagini prima di scattare una foto. Dopo aver apportato questa modifica, se la destinazione di salvataggio non è valida, ci vorrà più tempo per ricevere la risposta di errore perché verrà tentata la salvataggio dell'immagine dopo lo scatto della foto
- Questa modifica rileva l'eccezione quando la coda di immagini è al massimo in ImageAnalysis. Pertanto, anziché un arresto anomalo, potresti notare che altri casi d'uso sono bloccati o lenti, ad esempio l'anteprima bloccata/lenta.
- È stata inclusa una soluzione alternativa per i dati delle immagini corrotti intermittenti nei file JPEG sulla fotocamera posteriore del SM-G930T. (I52001, b/159831206)
- Questa modifica rileva l'eccezione quando la coda di immagini è al massimo in ImageAnalysis. Pertanto, anziché arrestarsi in modo anomalo, potresti notare che altri casi d'uso sono bloccati o rallentati, ad esempio l'anteprima bloccata/rallentata. (Ic12da, b/175851631)
- È stato corretto l'errore del test Robolectric quando viene utilizzato setAvailableCamerasLimiter in CameraXConfig. (Ice307)
- È stata corretta la regressione del rendimento di ImageCapture rimuovendo la convalida della posizione di salvataggio delle immagini prima di scattare una foto. Dopo aver apportato questa modifica, se la destinazione di salvataggio non è valida, ci vorrà più tempo per ricevere la risposta di errore perché verrà tentata la salvataggio dell'immagine dopo lo scatto della foto. (I1fd4e, b/177061560)
- È stata corretta la regressione delle prestazioni di ImageCapture con OutputFileOptions di tipo "File". (I5164a, b/177061560)
Versione 1.0.0-rc02
27 gennaio 2021
androidx.camera:camera-camera2:1.0.0-rc02
, androidx.camera:camera-core:1.0.0-rc02
e androidx.camera:camera-lifecycle:1.0.0-rc02
vengono rilasciati. La versione 1.0.0-rc02 contiene questi commit.
Correzioni di bug
- È stato risolto il problema IllegalArgumentException che si verificava quando tutte le dimensioni supportate per l'anteprima erano inferiori a 640 x 480 e la dimensione di visualizzazione era superiore a 640 x 480. (b/150506192)
Limita il numero di tentativi di riapertura della fotocamera. Durante il tentativo di recupero da determinati problemi di apertura della fotocamera, CameraX non tenterà più di riaprirla a tempo indeterminato, ma si fermerà dopo aver riprovato per 10 secondi.I435d2
È stato risolto il problema
IllegalArgumentException
che si verificava quando tutte le dimensioni supportate per l'anteprima erano inferiori a 640 x 480 e le dimensioni di visualizzazione erano superiori a 640 x 480. (I2a63c, b/150506192)
Versione 1.0.0-rc01
16 dicembre 2020
androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
e androidx.camera:camera-lifecycle:1.0.0-rc01
vengono rilasciati. La versione 1.0.0-rc01 contiene questi commit.
Modifiche all'API
- Sono stati modificati CameraFilter e Camera2Filter in modo da includere CameraInfo. (I6883d)
- È stata aggiunta la classe sperimentale Camera2CameraControl per consentire l'interoperabilità con le API Camera2 dinamicamente. (I45cf3)
- È stato rinominato Camera2CameraInfo#fromCameraInfo in #from. (Ia2bd6)
- È stata aggiunta un'API sperimentale setAvailableCamerasLimiter a CameraXConfig per consentire alle app di ottimizzare la latenza di inizializzazione evitando di inizializzare le fotocamere inutilizzate. (I6cf88)
- È stato aggiunto il metodo sperimentale
CameraXConfig.Builder#setMinimumLoggingLevel()
per consentire l'impostazione di un livello minimo di logging per i log di CameraX. Se non è impostato, il valore predefinito èLog#DEBUG
. (Ic3245)
Correzioni di bug
- È stata inclusa una soluzione alternativa per i dati delle immagini corrotti intermittenti nei file JPEG sulla fotocamera posteriore del SM-G930V. (I5aca5, b/159831206)
- È stato risolto il problema per cui non vengono ricevuti risultati quando si scattano foto con il flash sempre attivo/acceso e l'ambiente è buio sui dispositivi Samsung SM-A716. (If98b2, b/172036589)
- È stato risolto il problema per cui l'anteprima non può essere interrotta chiamando
Preview.setSurfaceProvider(null)
. (I3ac18) - È stato risolto il problema di orientamento durante l'acquisizione di immagini 4:3 su alcuni dispositivi. (I0e3fb, b/171492111)
Versione 1.0.0-beta12 di Camera, Camera2, Core e Lifecycle
11 novembre 2020
androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
e androidx.camera:camera-lifecycle:1.0.0-beta12
vengono rilasciati. La versione 1.0.0-beta12 contiene questi commit.
Correzioni di bug
- È stato disattivato il flash automatico sui dispositivi Samsung A3 per correggere l'arresto anomalo durante lo scatto di una foto con la modalità AE con flash automatico sui dispositivi Samsung A3. (Ia5fe3, b/157535165)
- È stato risolto un problema per cui l'anteprima veniva allungata sui dispositivi Nexus 4 con Android L (livelli API 21 e 22). (I4d407, b/158749159)
- L'implementazione della classe base
OnImageCapturedCallback#onCaptureSuccess
non chiude più l'immagine. Questo serve a evitare comportamenti inaspettati per gli sviluppatori. Gli sviluppatori non devono fare affidamento su super.onCaptureSuccess per chiudere l'immagine. (Ifbf9c) - La variante androidx dell'annotazione sperimentale è stata ritirata per garantire la parità con Kotlin. È stata sostituita dall'annotazione RequiresOptIn e il linter rivolto a Java è stato aggiornato per supportare sia la nuova annotazione Kotlin sia la nuova variante androidx. (I52495, b/151331381)
Camera-Camera2 versione 1.0.0-beta11
14 ottobre 2020
androidx.camera:camera-camera2:1.0.0-beta11
viene rilasciato. La versione 1.0.0-beta11 contiene questi commit.
Nuove funzionalità
- Supporta l'API
CONTROL_ZOOM_RATIO
di Android 11 per lo zoom su dispositivi Android 11 o versioni successive contenentiCONTROL_ZOOM_RATIO_RANGE
valido. (I62cc6)
Correzioni di bug
- È stato risolto il problema NumberFormatException che si verifica quando l'ID videocamera non è un numero intero. (Ib2228)
- È stata migliorata la latenza dell'inizializzazione di CameraX e di bindToLifecycle (I61dc5)
- La creazione di UseCases non richiede l'inizializzazione di CameraX per essere completata. Tutte le configurazioni specifiche dell'implementazione vengono impostate su UseCase una volta che è associato a un'istanza Camera, che per l'API pubblica è
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
restituiràSurface.ROTATION_0
se viene chiamato prima di essere associato a un'istanza Camera, a meno che non sia stata impostata una rotationTarget su Builder o UseCase. (I80fcd)
Camera-Core versione 1.0.0-beta11
14 ottobre 2020
androidx.camera:camera-core:1.0.0-beta11
viene rilasciato. La versione 1.0.0-beta11 contiene questi commit.
Nuove funzionalità
- Supporta l'API CONTROL_ZOOM_RATIO
di Android 11 per lo zoom su
dispositivi Android 11 o versioni successive contenenti CONTROL_ZOOM_RATIO_RANGE
valido. (I62cc6)
Correzioni di bug
- È stato risolto il problema NumberFormatException che si verifica quando l'ID videocamera non è un numero intero. (Ib2228)
- La creazione di UseCases non richiede l'inizializzazione di CameraX per essere completata. Tutte le configurazioni specifiche dell'implementazione vengono impostate su UseCase una volta che è associato a un'istanza Camera, che per l'API pubblica è
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
restituiràSurface.ROTATION_0
se viene chiamato prima di essere associato a un'istanza Camera, a meno che non sia stata impostata una rotationTarget su Builder o UseCase. (I80fcd)
Camera-Core versione 1.0.0-beta10
23 settembre 2020
androidx.camera:camera-core:1.0.0-beta10
viene rilasciato. La versione 1.0.0-beta10 contiene questi commit.
Correzioni di bug
- Correzione di un bug nella convalida della destinazione di salvataggio dei file per l'acquisizione di immagini (I8c565, b/167697553)
Camera-Camera2 versione 1.0.0-beta10
23 settembre 2020
androidx.camera:camera-camera2:1.0.0-beta10
viene rilasciato. La versione 1.0.0-beta10 contiene questi commit.
Correzioni di bug
- Uscita per il supporto di Camera-Core 1.0.0-beta10
Camera-Camera2 versione 1.0.0-beta09
16 settembre 2020
androidx.camera:camera-camera2:1.0.0-beta09
viene rilasciato. La versione 1.0.0-beta09 contiene questi commit.
Modifiche all'API
- Anziché fornire metodi statici, Camera2CameraInfo prende un'istanza di CameraInfo al momento della creazione per recuperare le informazioni relative a Camera2. (I5b844)
Correzioni di bug
- È stato risolto un problema relativo alle proporzioni del target sui dispositivi tablet. Quando le proporzioni target sono impostate su
AspectRatio.RATIO_16_9
, deve essere selezionata una dimensione 16:9. (Ib7fcf, b/151969438) - Lancia un
InitializationException
per consentire all'app di gestire in modo elegante l'errore AssertionError che si è verificato durante la creazione di CameraCharacteristics. (I89c8c, b/160524721) - Sono state aggiunte interfacce sperimentali per ExposureCompensation (If96c7)
Camera-Core versione 1.0.0-beta09
16 settembre 2020
androidx.camera:camera-core:1.0.0-beta09
viene rilasciato. La versione 1.0.0-beta09 contiene questi commit.
Modifiche all'API
- È stato corretto il bug per cui l'area visibile è contrassegnata come non null in UseCaseGroup. Gli sviluppatori dovrebbero essere in grado di creare un viewport senza impostarne uno. (Ie3d2e)
- Sono state aggiunte interfacce sperimentali per
ExposureCompensation
(If96c7) - Consenti la rotazione arbitraria del target per l'anteprima. Le informazioni sulla trasformazione vengono calcolate e restituite all'utente in tempo reale tramite un nuovo
TranformationInfoListener
callback. (I21470)
Correzioni di bug
- È stato risolto il problema per cui il flash su alcuni dispositivi non si spegneva. Il problema si verifica quando la modalità flash è impostata su
FLASH_MODE_ON
per scattare una foto e viene modificata inFLASH_MODE_OFF
quando viene attivato il flash. Il sintomo è simile alla modalità torcia attivata. (Ib4451, b/162568128) - Forza PreviewView a utilizzare TextureView se l'effetto di estensione è attivato e l'implementazione della libreria del fornitore deve eseguire una procedura speciale sulla superficie di output. (I0c3cc)
- È stato corretto la perdita di attività/frammenti quando un contesto di attività/frammento viene passato a
ProcessCameraProvider.getInstance(Context)
.
Problemi noti
- Quando ViewPort è impostato, il rettangolo di ritaglio di ImageCapture potrebbe non essere corretto sui dispositivi che ruotano il buffer immagine in HAL. Questo problema verrà risolto nella prossima release.
Camera-Camera2 versione 1.0.0-beta08
19 agosto 2020
androidx.camera:camera-camera2:1.0.0-beta08
viene rilasciato. La versione 1.0.0-beta08 contiene questi commit.
Correzioni di bug
- È stato ottimizzato bindToLifecycle per l'esecuzione rapida nel thread principale. (I1d57e)
- DisplayOrientedMeteringPointFactory riceve un'istanza CameraInfo anziché un CameraSelector, quindi esiste una mappatura diretta della videocamera per la quale la factory genererà i punti. Tutte le classi che utilizzano DisplayOrientedMeteringPointFactory accettano anche un'istanza CameraInfo invece di CameraSelector. (I400c1)
- È stato risolto il problema di raggruppamento delle dimensioni delle proporzioni della risoluzione automatica per cui viene selezionata una dimensione 16:9 mod16 (864 x 480) quando l'impostazione della risoluzione target è 2016 x 1080 ed è supportata un'altra dimensione 16:9 di 1920 x 1080. (I53167, b/159363774)
- Risolvere il problema di CameraControl che non funziona a causa di una condizione di gara (I2279f, b/152333890, b/160714166)
Camera-Core versione 1.0.0-beta08
19 agosto 2020
androidx.camera:camera-core:1.0.0-beta08
viene rilasciato. La versione 1.0.0-beta08 contiene questi commit.
Modifiche all'API
DisplayOrientedMeteringPointFactory
accetta un'istanzaCameraInfo
anzichéCameraSelector
, quindi esiste una mappatura diretta della videocamera per la quale la factory genererà i punti. Tutte le classi che utilizzanoDisplayOrientedMeteringPointFactory
accettano anche un'istanzaCameraInfo
anzichéCameraSelector
. (I400c1)
Correzioni di bug
- Per l'acquisizione di immagini, sovrascrivi il flag di rotazione orizzontale nei metadati in base alla direzione della fotocamera. (I28499)
- L'inizializzazione non dovrebbe più arrestarsi in modo anomalo quando si utilizza un contesto
che non restituisce un oggetto Application da
Context.getApplicationContext()
. (I3d3c9, b/160817073)
Camera-Camera2 versione 1.0.0-beta07
22 luglio 2020
androidx.camera:camera-camera2:1.0.0-beta07
viene rilasciato. La versione 1.0.0-beta07 contiene questi commit.
Correzioni di bug
- È stato risolto il problema relativo all'allungamento dell'anteprima sui dispositivi precedenti con Android 5.0. (I0c03a)
- Sono stati esclusi alcuni formati JPEG supportati che causano problemi WYSIWYG su alcuni dispositivi. (Ib5128)
Camera-Core versione 1.0.0-beta07
22 luglio 2020
androidx.camera:camera-core:1.0.0-beta07
viene rilasciato. La versione 1.0.0-beta07 contiene questi commit.
Modifiche all'API
- Unisci lo stile di adattamento
FIT_CENTER
,FIT_START
eFIT_END
conFIT
.FIT
significa che il rettangolo di ritaglio restituito sarà il rettangolo del sensore massimo possibile. (Ia73c3) - Il rettangolo di ritaglio dell'anteprima è configurato in base all'area visibile. Solo l'area coperta dal rettangolo di ritaglio deve essere visibile agli utenti finali. (I142a4)
Correzioni di bug
- È stato risolto il problema relativo all'allungamento dell'anteprima sui dispositivi precedenti con Android 5.0. (I0c03a)
- È stato risolto il problema relativo all'eccezione
ConcurrentModificationException
durante lo scollegamento dei casi d'uso. (I371c0)
Camera-Camera2 versione 1.0.0-beta06
24 giugno 2020
androidx.camera:camera-camera2:1.0.0-beta06
viene rilasciato. La versione 1.0.0-beta06 contiene questi commit.
Modifiche all'API
- Sono state aggiunte interfacce sperimentali per filtrare le videocamere in base all'ID e alle caratteristiche della videocamera. (I28f61)
Correzioni di bug
- È stato risolto il problema per cui startFocusAndMetering non riesce a mettere a fuoco correttamente su Samsung Galaxy S7. (If3be7, b/159039233)
- Correggere il problema relativo alla chiusura della videocamera dopo l'uscita dall'app. (I7a7b3)
- Correggere i problemi di interruzione dell'anteprima dovuti a cambi di fotocamera ripetuti quando si utilizza l'implementazione di PreviewView di SurfaceView (I920ce)
CameraControl#startFocusAndMetering
non andrà a buon fine se nessuno dei MeteringPoint specificati può generare rettangoli di misurazione validi. (Id53ce)
Camera-Core versione 1.0.0-beta06
24 giugno 2020
androidx.camera:camera-core:1.0.0-beta06
viene rilasciato. La versione 1.0.0-beta06 contiene questi commit.
Modifiche all'API
- Sono state aggiunte interfacce sperimentali per filtrare le videocamere in base all'ID e alle caratteristiche della videocamera. (I28f61)
Correzioni di bug
- Ora CameraX può essere configurato con
ProcessCameraProvider#configureInstance()
prima di chiamareProcessCameraProvider#getInstance()
. Ciò consente di personalizzareCameraXConfig
senza dover implementareCameraXConfig.Provider
nella classe Application dell'app. (Ia1a8d) CameraControl#startFocusAndMetering
non andrà a buon fine se nessuno dei MeteringPoint specificati può generare rettangoli di misurazione validi. (Id53ce)
Camera-Camera2 versione 1.0.0-beta05
10 giugno 2020
androidx.camera:camera-camera2:1.0.0-beta05
viene rilasciato. La versione 1.0.0-beta05 contiene questi commit.
Correzioni di bug
- Correzione dell'arresto anomalo all'avvio dell'app durante l'inizializzazione di CameraX quando lo smartphone è in modalità Non disturbare. Un
InitializationException
contiene unCameraUnavailableException
che verrà impostato sulListenableFuture
del risultato dell'inizializzazione anziché causare l'arresto anomalo dell'applicazione. (I9909a, b/149413835) - È stato corretto l'arresto anomalo durante la chiamata a
startFocusAndMetering
sui dispositivi in cuiCONTROL_AF_STATE
è nullo. (Ife55e, b/157084254)
Camera-Core versione 1.0.0-beta05
10 giugno 2020
androidx.camera:camera-core:1.0.0-beta05
viene rilasciato. La versione 1.0.0-beta05 contiene questi commit.
Modifiche all'API
- Risolvere l'arresto anomalo all'avvio dell'app durante l'inizializzazione di CameraX quando lo smartphone è in modalità Non disturbare. Un
InitializationException
contenente unCameraUnavailableException
verrà impostato sulListenableFuture
del risultato dell'inizializzazione anziché arrestare in modo anomalo l'applicazione. (I9909a, b/149413835)
Correzioni di bug
- Sono stati aggiornati i file Javadoc di
setTargetResolution
esetTargetRotation
. (Iae16f)
Camera-Camera2 versione 1.0.0-beta04
27 maggio 2020
androidx.camera:camera-camera2:1.0.0-beta04
viene rilasciato. La versione 1.0.0-beta04 contiene questi commit.
Correzioni di bug
- Consentiva alle applicazioni di impostare qualsiasi parametro di richiesta di acquisizione camera2 tramite
Camera2Interop
senza causare un arresto anomalo. Tieni presente che se si verificano problemi a causa dell'override dei parametri. La stabilità e il comportamento non sono garantiti quando si sostituiscono i parametri utilizzando Camera2Interop. (Ibe5a1, b/149103700) - L'inizializzazione automatica viene corretta quando si utilizza un'app su un dispositivo che utilizza un pseudo-codice lingua. (I3bef3, b/154767663)
- Il log degli errori relativo al caso d'uso scollegato è stato convertito in un log di debug su Camera2CameraImpl. (I1a565, b/154422490)
- È stato risolto il problema a causa del quale l'immagine scattata a volte risultava troppo scura anche se il flash era attivo. (I5d9fa, b/149729613)
- È stato corretto un bug a causa del quale il buffer in
ImageProxy
daImageCapture
non veniva riavvolto (I0c455, b/153249512) - Sono stati risolti i problemi relativi al binding di ImageCapture solo: (1) Impossibile scattare foto con MAX_QUALITY; (2) Generazione di una qualità dell'immagine scadente perché l'esposizione automatica non funziona. (I17782, b/145326998)
- È stata migliorata l'affidabilità della riapertura della fotocamera quando CameraX viene disconnesso da un altro processo o percorso di codice che ruba la fotocamera (I1fbc3, b/153714651)
Camera-Core versione 1.0.0-beta04
27 maggio 2020
androidx.camera:camera-core:1.0.0-beta04
viene rilasciato. La versione 1.0.0-beta04 contiene questi commit.
Modifiche all'API
- Aggiunge un'API sperimentale,
CameraXConfig.Builder#setSchedulerHandler()
, per impostare il gestore utilizzato internamente dallo stack della fotocamera CameraX. Questa nuova API, insieme aCameraXConfig.Builder#setCameraExecutor()
, dovrebbe consentire il controllo completo dei thread utilizzati dallo stack della fotocamera CameraX. (I7bf32, b/121160431)
Correzioni di bug
- Corregge l'arresto anomalo in
ImageAnalysis
quando si accede aImageProxy
dopo la chiusura diImageReaderProxy
. In questo modo, tutti iImageProxy
ricevuti dalAnalyzer
devono essere chiusi prima della chiusura delImageReaderProxy
. (I4b299, b/145956416, b/154155377, b/156357269) - Il parametro
CameraInfo
è stato rimosso daPreviewView#createSurfaceProvider()
,PreviewView
ora lo recupera internamente daSurfaceRequest
. (If18f0, b/154652477) - L'inizializzazione automatica viene corretta quando si utilizza un'app su un dispositivo che utilizza una pseudo-lingua. (I3bef3, b/154767663)
- È stato risolto il problema a causa del quale l'immagine scattata a volte risultava troppo scura anche se il flash era attivo. (I5d9fa, b/149729613)
- È stato risolto un problema relativo a
ImageAnalysis
per cui più chiamate a setAnalyzer/clearAnalyzer impedivano all'analizzatore di ricevere le immagini da analizzare. (I6169f, b/151605317, b/153514544) - È stato corretto un bug a causa del quale il buffer in
ImageProxy
daImageCapture
non veniva riavvolto (I0c455, b/153249512) - È stato risolto il problema per cui la prima videocamera nell'elenco supportato di
CameraManager
non viene sempre selezionata per l'utilizzo. (I4c624, b/153418028) - È stato corretto un arresto anomalo intermittente causato dall'impostazione
Preview.SurfaceProvider
che non rilascia la superficie richiesta in precedenza.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
(I8e4e7, b/155936225)
Camera-Camera2 Versione 1.0.0-beta03
15 aprile 2020
androidx.camera:camera-camera2:1.0.0-beta03
viene rilasciato. La versione 1.0.0-beta03 contiene questi commit.
Correzioni di bug
- Correzioni per supportare il rilascio di
camera-core
Camera-Core versione 1.0.0-beta03
15 aprile 2020
androidx.camera:camera-core:1.0.0-beta03
viene rilasciato. La versione 1.0.0-beta03 contiene questi commit.
Correzioni di bug
- È stata corretta la regressione dalla versione beta03 in cui la chiamata a
bindToLifecycle()
con zeroUseCase
provocava un'eccezione. Ciò ha impedito il recupero di unCamera
senza l'associazione di unUseCase
.
Camera-Camera2 versione 1.0.0-beta02
1° aprile 2020
androidx.camera:camera-camera2:1.0.0-beta02
viene rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Correzioni di bug
- È stato corretto il valore
ImageInfo.getRotationDegrees()
delImageProxy
prodotto daImageCapture
in modo che corrisponda al valore di rotazione dell'orientamento EXIF. (Id4281, b/150802561) - L'ordinamento esplicito delle dipendenze di CameraX all'interno di
build.gradle
non è più necessario per utilizzare l'implementazione predefinita di CameraX/Camera2. Nei casi in cui sia richiesta la dichiarazione di dipendenze rigorose, ora tutte le dipendenze di CameraX possono essere incluse nel file di compilazione. (I46e88) - È stato risolto il problema
IllegalArgumentException
riscontrato sui dispositivi con dimensioni dello schermo inferiori a 640 x 480. (Ife3f2, b/150506192) - È stato corretto
bindToLifecycle
in modo che modifichi l'UseCase solo se si esegue il binding correttamente. In precedenza, quando si chiamavabindToLifecycle
per eseguire i calcoli della risoluzione, l'UseCase veniva aggiornato. Ora non è più necessario aggiornare l'UseCase per eseguire i calcoli (I78d9e)
Camera-Core versione 1.0.0-beta02
1° aprile 2020
androidx.camera:camera-core:1.0.0-beta02
viene rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Correzioni di bug
- È stato corretto il valore
ImageInfo.getRotationDegrees()
delImageProxy
prodotto daImageCapture
in modo che corrisponda al valore di rotazione dell'orientamento EXIF. (Id4281, b/150802561) - È stato corretto
bindToLifecycle
in modo che modifichi l'UseCase solo se si lega correttamente. In precedenza, quando si chiamavabindToLifecycle
per eseguire i calcoli della risoluzione, l'UseCase veniva aggiornato. Ora non è più necessario aggiornare l'UseCase per eseguire i calcoli (I78d9e) - È stato risolto un problema per cui la sessione di acquisizione del caso d'uso
Preview
non veniva aggiornata quando la superficie di anteprima cambiava dopo aver chiamatoPreview.setSurfaceProvider()
più volte.
Camera-Camera2 versione 1.0.0-beta01
26 febbraio 2020
androidx.camera:camera-camera2:1.0.0-beta01
viene rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Correzioni di bug
SurfaceRequest.setSurface(Surface)
rinominato inSurfaceRequest.provideSurface(Surface)
eSurfaceRequest.setWillNotComplete()
inSurfaceRequest.willNotProvideSurface()
. (I224fe)- È stato risolto un problema relativo alla proporzione di un'immagine salvata non corretta
dopo aver modificato il valore di rotazione target utilizzando
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - È stata corretta l'inizializzazione delle varianti dell'app con ProGuard abilitato preservando il flag che imposta il provider
CameraXConfig
predefinito. (I2d6c1)
Camera-Core versione 1.0.0-beta01
26 febbraio 2020
androidx.camera:camera-core:1.0.0-beta01
viene rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Modifiche all'API
ListenableFuture
suSurfaceRequest.provideSurface()
sostituito conExecutor
eCallback
. In questo modo, l'API viene semplificata perché non richiede più la gestione delle eccezioni suprovideSurface()
e impone che il callback diprovideSurface()
non possa essere annullato. Questo serve a evitare arresti anomali sui dispositivi meno recenti causati dal rilascio prematuro delle piattaforme. L'oggettoSurfaceRequest.Result
viene ora utilizzato per monitorare il modo in cui unSurfaceRequest
utilizza ilSurface
fornito. (I7854b)SurfaceRequest.setSurface(Surface)
è stato rinominato inSurfaceRequest.provideSurface(Surface)
eSurfaceRequest.setWillNotComplete()
inSurfaceRequest.willNotProvideSurface()
. (I224fe)
Correzioni di bug
- È stato risolto un problema relativo alla proporzione di un'immagine salvata non corretta
dopo aver modificato il valore di rotazione target utilizzando
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - È stata corretta l'inizializzazione delle varianti dell'app con ProGuard abilitato preservando il flag che imposta il provider
CameraXConfig
predefinito. (I2d6c1) - È stata aggiornata la documentazione per le API di modalità flash in modo da includere i possibili valori. (I4a3ec)
Camera-Camera2 versione 1.0.0-alpha10
10 febbraio 2020
androidx.camera:camera-camera2:1.0.0-alpha10
viene rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Correzioni di bug
- Stabilità migliorata sui dispositivi
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
garantendo che iSurface
vengano conservati solo per la durata dell'utilizzo da parte di Camera2. (I9dac2) - È stato risolto il problema di sottoesposizione dell'anteprima sui dispositivi LEGACY regolando correttamente
CONTROL_AE_TARGET_FPS_RANGE
. (1224638)
Camera-Core versione 1.0.0-alpha10
10 febbraio 2020
androidx.camera:camera-core:1.0.0-alpha10
viene rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Modifiche all'API
ImageCapture
è stato aggiornato per consentire il salvataggio delle immagini inUri
eOutputStream
. I metoditakePicture
sovraccaricati sono stati combinati in un unico metodo. L'app di test è stata aggiornata in modo da utilizzareUri
come esempio canonico. (Ia3bec)Preview.PreviewSurfaceProvider
è stato rinominato inPreview.SurfaceProvider
.SurfaceProvider
non richiede più agli sviluppatori di creare il proprioListenableFuture
e la fornitura di unSurface
ora avviene tramite un nuovo oggettoSurfaceRequest
. Il metodoPreview.getPreviewSurfaceProvider()
è stato rimosso a causa del potenziale uso improprio quandoPreview
è accoppiato ad altre classi comePreviewView
. (I20105)- Aggiunta di
getTargetRotation()
egetTargetName()
aPreview
. (Iceee7) - Aggiunti
getTargetRotation()
,getBackpressureStrategy()
egetImageQueueDepth()
inImageAnalysis
. (I9d6d9) getTargetRotation()
egetCaptureMode()
aggiunti inImageCapture()
(I5bc17)- Gli argomenti che in precedenza venivano passati in
ImageCapture.OnImageSavedCallback.onError()
eImageCapture.OnImageCapturedCallback.onError()
sono stati sostituiti da un unico argomentoImageCaptureException
, che contiene ancora tutte le informazioni passate in precedenza. - L'argomento file passato in precedenza in
ImageCapture.OnImageSavedCallback.onImageSaved()
è stato rimosso. (I750d2) - I corsi
Preview
eImageCapture
sono ora contrassegnati come finali. (I2500b) - API aggiornata, con i metodi
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
egetLinearZoom()
di unione diCameraInfo
ingetZoomState()
che restituisce un'istanzaZoomState
. (Ib19fe) - Sono stati rimossi i campi API
OPTION_TARGET_CLASS
eOPTION_TARGET_NAME
daCameraXConfig
in quanto sono destinati esclusivamente all'uso interno della libreria. Costruttore rimosso perCameraXConfig.Builder
. (I96912) - È stato rimosso il requisito che l'app debba estendere
Application
per inizializzare CameraX. Ora CameraX verrà inizializzato con una configurazione Camera2 predefinita, a condizione che l'elementocamera-camera2
sia incluso nelbuild.gradle
dell'applicazione. (I58ff5) (b/146923574)
Camera-Camera2 versione 1.0.0-alpha09
22 gennaio 2020
androidx.camera:camera-camera2:1.0.0-alpha09
viene rilasciato. La versione 1.0.0-alpha09 contiene questi commit.
Modifiche all'API
Aggiungi il percorso di interoperabilità camera2 per estrarre un ID fotocamera Camera2. Puoi estrarre l'ID videocamera da
CameraInfo
utilizzandoCamera2CameraInfo.extractCameraId()
. Il seguente esempio di codice mostra come utilizzarlo:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
La classe
Camera2CameraInfo
richiede la classeExperimentalCamera2Interop
markerClass.
Camera-Core versione 1.0.0-alpha09
22 gennaio 2020
androidx.camera:camera-core:1.0.0-alpha09
viene rilasciato. La versione 1.0.0-alpha09 contiene questi commit.
Modifiche all'API
- Il parametro
SurfaceOrientedMeteringPointFactory
useCaseForSurface
è stato rinominato inuseCaseForAspectRatio
e la documentazione di riferimento è stata ampliata. - I metodi
FocusMeteringAction.Builder.from()
vengono sostituiti dai costruttoriFocusMeteringAction.Builder()
. DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
rimosso. Le applicazioni devono utilizzare il costruttore che accetta un parametroDisplay
e deve passare la visualizzazione corrente.- Miglioramenti ai Javadoc per le API di messa a fuoco e misurazione relativi ai flag
MeteringMode
e 3A e all'utilizzo del parametroDisplay
. - È stata ampliata la documentazione di riferimento per
setZoomRatio
esetLinearZoom
.
Correzioni di bug
- Sono stati risolti i problemi relativi alla chiusura e all'apertura delle videocamere che causavano un errore di controllo "Condizione preliminare".
- È stato corretto un
ConcurrentModificationException
che poteva verificarsi durante l'utilizzo delle API torcia e zoom. - È stato risolto il problema relativo alla selezione di risoluzioni più vicine a quella richiesta quando è disponibile una dimensione delle dimensioni mod16.
- Le API
startFocusMetering
ecancelFocusMetering
ora si comportano come descritto, con tempistiche corrette e potenzialmente restituendo errori quando si verificano. - È stato risolto il problema relativo alla richiesta di una risoluzione target specifica con un formato di ritaglio su un dispositivo che non supporta queste dimensioni. Ora, se disponibile, verrà selezionata una dimensione non ritagliata con una risoluzione sufficiente per delimitare la richiesta originale.
Camera-Camera2 versione 1.0.0-alpha08
18 dicembre 2019
androidx.camera:camera-camera2:1.0.0-alpha08
viene rilasciato. La versione 1.0.0-alpha08 contiene questi commit.
Problemi noti
- Non tutte le opzioni di richiesta di acquisizione Camera2 funzionano quando si utilizza l'interoperabilità Camera2. Se l'opzione richiesta non è supportata, la sessione non si avvia e potrebbe verificarsi un errore come questo:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
Correzioni di bug
- È stato risolto un problema per cui si verificava una schermata nera di anteprima dopo aver ruotato o cambiato la fotocamera per i livelli API 21 e 22.
Modifiche all'API
- Sperimentale: è stato aggiunto un percorso di interoperabilità camera2 per l'estrazione dell'ID fotocamera.
Camera-Core versione 1.0.0-alpha08
18 dicembre 2019
androidx.camera:camera-core:1.0.0-alpha08
viene rilasciato. La versione 1.0.0-alpha08 contiene questi commit.
Problemi noti
- Le app che utilizzano
PreviewView
oCameraView
potrebbero avere un'anteprima delle proporzioni sbagliata. Questo accade dopo la messa in pausa o la ripresa su alcuni dispositivi FULL, come Pixel 2.
Correzioni di bug
- Aggiornata la documentazione per
FocusMeteringAction
eCameraControl
. - È stata implementata la funzionalità
TorchControl
perenableTorch()
egetTorchState()
.
Modifiche all'API
- Sono state nascoste le IntDef e le costanti IntDef sono state spostate all'esterno della definizione IntDef.
- Elemento
rotationDegrees
spostato dal corsoOnImageCaptureCallback
al corsoImageInfo
. - Elemento
rotationDegrees
spostato dal corsoAnalyzer
al corsoImageInfo
.
Camera-Camera2 versione 1.0.0-alpha07
4 dicembre 2019
androidx.camera:camera-camera2:1.0.0-alpha07
viene rilasciato. La versione 1.0.0-alpha07 di camera-camera2 contiene questi commit
Camera2Config
è ora disponibile per l'utilizzo con l'inizializzazione e la configurazione di un'implementazione basata su Camera2 per CameraX. Ulteriori dettagli su come utilizzarlo durante l'inizializzazione sono disponibili nella sezione camera-core delle note di rilascio.- La funzionalità di interoperabilità camera2 è ora contrassegnata come sperimentale e spostata in un pacchetto separato,
androidx.camera.camera2.interop.
Camera-Core versione 1.0.0-alpha07
4 dicembre 2019
androidx.camera:camera-core:1.0.0-alpha07
viene rilasciato. La versione 1.0.0-alpha07 di camera-core contiene questi commit
Tieni presente che in questa release alpha sono presenti alcune modifiche sostanziali in vista della versione beta. Ti consigliamo di esaminare le modifiche e di condividere eventuali feedback nel gruppo Google CameraX. Agli sviluppatori che utilizzano CameraX nelle app sul Play Store consigliamo di attendere la release beta ufficiale prima di eseguire l'upgrade della libreria all'interno delle applicazioni.
Modifiche all'API
Importante: l'inizializzazione di CameraX è cambiata. Le applicazioni devono implementare
CameraXConfig.Provider
e utilizzare il valore predefinitoCamera2Config
fornito daandroidx.camera.camera2
. Un utilizzo tipico è:import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
La classe CameraX è stata rimossa.
bindToLifecycle()
,unbind()
,unbindAll()
,isBound()
ehasCamera()
precedentemente forniti dalla chiamata della classe CameraX sono ora disponibili tramiteProcessCameraProvider
.Un'istanza per processo di
ProcessCameraProvider
viene ottenuta in modo asincrono utilizzando il metodo staticoProcessCameraProvider.getInstance()
, che restituisce un futuro ascoltabile, che fornisceProcessCameraProvider
al termine. Qui è mostrato inonCreate()
per un utilizzo tipico. Puoi effettuare chiamate agetInstance()
in un secondo momento nel ciclo di vita dell'attività per posticipare la latenza di inizializzazione a un momento successivo (ad esempio quando un'azione dell'utente apre l'interfaccia utente della videocamera).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); }
È possibile aggiungere un ascoltatore al
ListenableFuture
restituito dagetInstance()
. In questo modo, il fornitore della videocamera può essere recuperato dalFuture
senza bloccarsi suFuture.get()
cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
La selezione della videocamera ora viene eseguita tramite un selettore della videocamera, anziché in base al caso d'uso
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
A
CameraProvider.bindToLifecycle
vengono assegnati il proprietario del ciclo di vita, il selettore della videocamera e i casi d'uso, che vengono poi associati al proprietario del ciclo di vita specificato ed eseguiti per la videocamera selezionata.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
Le classi "Config" del caso d'uso vengono rimosse. Crea invece direttamente i casi d'uso impostando le opzioni su ogni generatore di casi d'uso. Ad esempio:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
Il caso d'uso Anteprima è stato aggiornato per accettare una superficie creata e gestita dall'applicazione al fine di garantire le best practice per Android. Ti consigliamo vivamente di utilizzare la classe di visualizzazione
PreviewView
fornita nel pacchetto camera-view.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
Consulta la documentazione per l'attacco di una piattaforma gestita dall'app. In questi casi, l'app gestisce il ciclo di vita della piattaforma.
Importante: l'implementazione del metodo di analisi
ImageAnalysis
deve chiamareimage.close()
sulle immagini ricevute al termine del loro utilizzo. In caso contrario, le nuove immagini potrebbero non essere ricevute o la fotocamera potrebbe bloccarsi, a seconda dell'impostazione della contropressione. Per informazioni dettagliate, consulta le documentazioni di riferimento.ImageAnalysis ImageReaderMode
è ora impostato su una strategia di backpressureintdef
.ImageProxy.getImage()
è contrassegnato come sperimentale. Le applicazioni devono annotare l'utilizzo, ad esempio tramite@androidx.camera.core.ExperimentalGetImage
Il requisito di annotazione
UIThread
perAnalyzer
è stato rimosso.La funzione
ImageAnalysis.clearAnalyzer()
viene aggiunta per rimuovere un analizzatore.Gli ascoltatori con più di un metodo sono stati rinominati in Callback:
ImageCapture.OnImageCapturedListener
è diventataImageCapture.OnImageCapturedCallback
ImageCapture.OnImageSavedListener
è diventataImageCapture.OnImageSavedCallback
VideoCapture.OnVideoSavedListener
è diventataVideoCapture.OnVideoSavedCallback
Gli enum sono stati modificati in IntDef
Sono stati aggiunti i controlli zoom:
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
CameraInfo.hasFlashUnit()
viene aggiunto per determinare se è presente l'hardware della torcia/flash.CameraInfo.isFlashAvailable()
è stato rimosso. La torcia sostituisce la funzionalità del flash. Ulteriori dettagli sono inclusi nella documentazione di riferimento.I campi
ImageCapture.Metadata
vengono sostituiti da accessor get/set/is.startFocusMetering
ecancelFocusMetering
ora restituisconoListenableFutures
, che rappresenta l'operazione asincrona della chiamata.MeteringPoints
ora funzionano come handle per le azioni di misurazione e vengono prodotti dalle fabbriche. Le app devono utilizzare le fabbriche esistenti anziché quelle personalizzate.
Problemi risolti
- È stato risolto il problema relativo allo scatto di una foto al momento della ripresa (dopo una pausa precedente in cui erano state scattate foto in attesa di completamento).
- Problema noto:
CameraControl.enableTorch()
è funzionale, ma il valoreListenableFuture<Void>
restituito è sempre uncomplete(success)
futuro immediato, anche se non è presente un'unità flash. Le versioni future correggeranno questo problema ripristinando il comportamento finale: quando non è presente un'unità flash,enableTorch(true)
non va a buon fine immediatamente (non invia la richiesta aCaptureSession
) eTorchState
rimane Off. - Problema noto: i comandi
startFocusAndMetering
ecancelFocusAndMetering
avviano e annullano la misurazione della messa a fuoco, ma restituiscono un valorecompleted (success)
futuro immediato che non rappresenta il comportamento documentato.FocusMeteringResult
diListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
è un risultato falso cheisFocusSuccessful()
ed è sempre "false", diverso dal comportamento previsto e documentato. - Problema noto: è in fase di sviluppo un'azienda di punti di misurazione da utilizzare con gli eventi di tocco
PreviewView
. Per il momento, le app che connettono piattaforme gestite personalizzate possono utilizzare le factory di punti di misurazione esistenti e, in caso contrario, non è disponibile alcuna funzionalità di messa a fuoco tocco perPreviewView
.
Camera-Camera2 e Camera-Core versione 1.0.0-alpha06
9 ottobre 2019
androidx.camera:camera-camera2:1.0.0-alpha06
e androidx.camera:camera-core:1.0.0-alpha06
vengono rilasciati. Questi sono i commit inclusi in camera-camera2:1.0.0-alpha06
e questi sono i commit inclusi in camera-core:1.0.0-alpha06
.
Nuove funzionalità
Modifiche all'impostazione delle proporzioni:
- È stato aggiunto
setTargetAspectRatioMode()
, che accetta un argomento enum. Imposta la modalità Formato con le opzioniRATIO_4_3
oRATIO_16_9
anziché con un formato arbitrario. Questo avvicinamento riflette il fatto che la fotocamera fornisce solo determinate proporzioni, anziché qualsiasi proporzione arbitraria.- Al momento, gli unici rapporti disponibili sono 16:9 e 4:3. Nel caso del formato 1:1, solo alcuni dispositivi dispongono di questa opzione dalla fotocamera e solo a risoluzioni limitate. Le applicazioni che progettano un'interfaccia o un'elaborazione 1:1 devono utilizzare le opzioni più flessibili 16:9 o 4:3 e ritagliare il display o elaborare una sottoregione.
- Questi rapporti sono orientati all'utilizzo della massima area del sensore.
getTargetAspectRatio()
è stato aggiunto alle API di configurazione dei casi d'uso e restituisce il formato dell'output del caso d'uso di destinazione.- Il metodo
setTargetAspectRatio(Rational aspectRatio)
è stato modificato insetTargetAspectRatioCustom(Rational aspectRatio)
per ImageCapture. Se impostato, l'output di ImageCapture viene ritagliato di conseguenza.
API di esecuzione
- Le seguenti funzioni accettano un parametro di esecuzione, che consente all'app di controllare su quale esecuzione viene eseguita la funzione.
- API
Preview.setOnPreviewOutputUpdateListener()
. Se l'executor non è presente per quella funzione, viene eseguito nel thread principale. Preview.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
- API
CameraInfo aggiunto con le API di controllo della disponibilità del flash e della rotazione del sensore
È stato aggiunto un metodo
CameraInfo
e un metodogetCameraInfo
che consente alle app di verificare se è disponibile un obiettivo rivolto verso CameraInfo e se è disponibile un flash su quella fotocamera. Ad esempio: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); }
Membri aggiunti:
CameraInfo.getSensorRotationDegrees()
Fornisce l'orientamento del sensore della fotocamera rispetto all'orientamento naturale del dispositivo o, per comodità, rispetto a un orientamento descritto da una rotazione della superficie (che descrive un orientamento rispetto all'orientamento naturale).
Modifiche all'API e correzioni di bug
- Formati: per ogni caso d'uso, le applicazioni devono chiamare solo
setTargetResolution()
osetTargetAspectRatio()
. Se li chiami entrambi nello stesso generatore, viene restituito un errore.- In genere, è consigliabile utilizzare
setTargetAspectRatio()
in base al design dell'interfaccia utente dell'applicazione. Le risoluzioni specifiche si basano sul caso d'uso. Ad esempio, l'anteprima è vicina alle risoluzioni dello schermo e l'acquisizione di immagini fornisce foto ad alta risoluzione. Per ulteriori informazioni, consulta la tabella delle risoluzioni automatiche. - Utilizza
setTargetResolution()
per casi più specifici, ad esempio quando sono richieste risoluzioni minime (per risparmiare sui calcoli) o massime (per i dettagli di elaborazione).
- In genere, è consigliabile utilizzare
- API Executor: è stata rimossa la chiamata
setCallbackHandler()
dalle API di configurazione dei casi d'uso. Le applicazioni possono invece impostare l'executor come parametro in varie altre API che impostano un callback. - Sono state aggiornate le annotazioni null per varie funzioni.
- È stato risolto un problema che causava l'emissione di
java.lang.IllegalStateException at Camera$StateCallback.onError
all'apertura della fotocamera. - È stato risolto il problema relativo alla selezione di risoluzioni troppo piccole (inferiori a 640 x 480) quando l'app richiede risoluzioni più grandi o predefinite, con conseguente immagine di anteprima sgranata o sfocata. Le applicazioni che richiedono specificamente risoluzioni più piccole possono richiederle esplicitamente.
- È stato risolto un problema per cui la fotocamera mostrava una schermata nera (avvio non riuscito) dopo il ritorno da un'intent che aveva avviato un'altra applicazione di fotocamera.
- È stato corretto un bug che generava il seguente errore quando le app vengono avviate o arrestate ripetutamente:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- È stato corretto il seguente errore che si verifica quando viene disattivata la funzionalità ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- Sono stati aggiunti test aggiuntivi per il flusso di disconnessione della videocamera.
- È stata migliorata la robustezza del sistema di test quando vengono eseguiti test della fotocamera consecutivi.
Camera-Camera2 e Camera-Core versione 1.0.0-alpha05
5 settembre 2019
androidx.camera:camera-camera2:1.0.0-alpha05
e androidx.camera:camera-core:1.0.0-alpha05
vengono rilasciati. Questi sono i commit inclusi in camera-camera2:1.0.0-alpha05 e questi sono i commit inclusi in camera-core:1.0.0-alpha05.
Modifica all'API: sono state rinominate le variabili di errore del caso d'uso:
ImageCapture.UseCaseError
viene rinominatoImageCapture.ImageCaptureError
VideoCapture.UseCaseError
viene rinominatoVideoCapture.VideoCaptureError
È stata aggiunta l'API
CameraControl
con le API Tocca per mettere a fuocoÈ stata aggiunta l'API per ottenere un
CameraControl
da CameraX per una fotocamera selezionata in base alla posizione dell'obiettivo:CameraX.getCameraControl(LensFacing lensFacing)
Sono stati aggiunti
MeteringPointFactory
,MeteringPoint
,MeteringMode
eFocusMeteringAction
per eseguire la funzionalità Tocca per mettere a fuoco: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();
È stata aggiunta l'API per
CameraControl
per avviare e annullare la misurazione della messa a fuoco:getCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
Sono state aggiunte API per i Metering Point Factories che aiutano a tradurre le coordinate dei tap in coordinate del sensore, in base alle classi di visualizzazione:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
Imposta l'obbligo di chiamare i seguenti metodi nel thread principale (UI), generando un
IllegalStateException
se non lo sono. Le versioni future ne consentiranno l'utilizzo su altri thread e garantiranno la serializzazione.CameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
Diverse impostazioni di configurazione ora accettano parametri null e i getter corrispondenti possono restituire null.
È stato risolto un problema durante i test su emulatori che non supportano le impostazioni AF/AE/AWB.
È stato corretto un bug di arresto anomalo durante la rotazione durante l'analisi dell'immagine.
È stato corretto un bug per cui l'anteprima risultava nera all'avvio (nessun dato della fotocamera), dopo la rotazione o il passaggio dalla fotocamera anteriore a quella posteriore e viceversa.
Sono stati rimossi i test per più casi d'uso di analisi delle immagini simultanee. Per garantire la compatibilità, le applicazioni devono allegare un solo caso d'uso di analisi delle immagini.
Sono stati aggiunti i primi test robolectric per la videocamera falsa nella suite di test della videocamera (in corso di elaborazione).
Il test Camera2Inititalizer è stato rimosso perché la sua copertura non era chiara/fuorviante.
Camera-Camera2 e Camera-Core versione 1.0.0-alpha04
7 agosto 2019
androidx.camera:camera-camera2:1.0.0-alpha04
e androidx.camera:camera-core:1.0.0-alpha04
vengono rilasciati. La versione 1.0.0-alpha04 contiene questi commit.
Nuove funzionalità
Modifiche alla selezione delle proporzioni e della risoluzione
Lo scopo di CameraX è inizializzare correttamente una sessione della fotocamera. Ciò significa che CameraX scende a compromessi in termini di risoluzione/rapporto aspetto in base alle funzionalità del dispositivo, per avviare una sessione di acquisizione come primo obiettivo, pertanto le richieste esatte potrebbero non essere soddisfatte. Questo può essere dovuto a:
- Dispositivi che non supportano la risoluzione richiesta
- Problemi di compatibilità, ad esempio su dispositivi LEGACY in cui è necessario utilizzare determinate risoluzioni per il funzionamento corretto
- Su alcuni dispositivi, alcuni formati sono disponibili solo con determinate proporzioni
- Una preferenza per "nearest mod16" per la codifica JPEG o video. Consulta
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
Anche se CameraX crea e gestisce la sessione, devi sempre controllare le dimensioni delle immagini restituite nell'output del caso d'uso nel codice e modificarle di conseguenza.
Sono state apportate alcune modifiche per l'impostazione di risoluzioni e rapporti di aspetto, al fine di rendere l'API più chiara:
- Ora il caso d'uso di anteprima è considerato avere proporzioni predefinite di 4:3 se non ne sono impostate.
- Quando CameraX prende in considerazione internamente le modifiche alle risoluzioni e alle proporzioni richieste in base alle funzionalità del dispositivo, innanzitutto tenta di mantenere le stesse proporzioni (come stabilito da una delle chiamate
setTargetAspectRatio
osetTargetResolution
). - Una versione "Nearest mod16" della risoluzione è considerata la stessa proporzione.
Modalità non bloccante di ImageAnalysis
- Il comportamento di
ImageReaderMode.ACQUIRE_LATEST_IMAGE
ora non è bloccante. Acquisisce l'immagine più recente nella coda, ma elimina continuamente le immagini inutilizzate per evitare il blocco della pipeline della videocamera. - L'analizzatore può conservare una singola immagine a tempo indeterminato senza bloccare la pipeline.
- Se l'applicazione fornisce un'istruzione che si blocca, il caso d'uso ImageAnalysis si blocca.
- L'executor predefinito impostato internamente si comporta come un executor non bloccante.
Correzioni di bug
- Sono stati risolti i problemi di timeout in attesa della convergenza 3A durante l'acquisizione di immagini su dispositivi senza messa a fuoco automatica, esposizione automatica e bilanciamento del bianco automatico
- È stato risolto il problema relativo allo scatto di foto rapide con ImageCapture. Corregge l'errore:
java.lang.IllegalStateException: maxImages (2) has already been acquired
- È stato risolto un problema per cui
setLensFacing
non veniva chiamato per un caso d'uso, con conseguentejava.lang.IllegalArgumentException: Unable to get camera ID for use case
. - È stato risolto il problema per cui il dispositivo LEGACY richiedeva proporzioni specifiche come risoluzione JPEG massima
- È stato risolto un problema relativo all'inserimento dell'app in background durante l'apertura della fotocamera
- È stato risolto un problema relativo all'API precedente alla versione 25, rimuovendo l'errore
checkAndUpdateEglState: invalid current EGLDisplay
- È stato risolto il problema relativo allo scollegamento dell'anteprima dopo l'attivazione e l'avvio delle estensioni
- Gli elementi di compilazione per camera-view e camera-extensions vengono ora pubblicati come versioni alpha
Camera-Camera2 e Camera-Core versione 1.0.0-alpha03
2 luglio 2019
androidx.camera:camera-core:1.0.0-alpha03
e androidx.camera:camera-camera2:1.0.0-alpha03
vengono rilasciati. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche all'API
- È stato aggiunto un chiarimento javadoc per "target" nelle chiamate di configurazione setTarget
Camera-Core
- È stato corretto un arresto anomalo della superficie di input/output non configurata in caso di apertura/chiusura o associazione/disassociazione rapida
- Passare alle nuove implementazioni di Futures
- Correzioni dei test per test più affidabili
- Il test di integrazione di base ora mostra l'ora di acquisizione delle foto
- È stato sviluppato un'apposita classe di compatibilità interna per gli esecutori
- L'app di test del tempo di acquisizione delle immagini attende il completamento della precedente e migliora la stabilità
Estensioni
- Sono stati aggiunti controlli di versionamento
- Copertura di test aggiuntiva: callback degli eventi di estensione
- Miglioramenti per immagini e metadati corrispondenti internamente
- Correzioni al passaggio di modalità nell'app di test
Camera-Camera2 e Camera-Core versione 1.0.0-alpha02
5 giugno 2019
androidx.camera:camera-core:1.0.0-alpha02
e androidx.camera:camera-camera2:1.0.0-alpha02
vengono rilasciati. La versione 1.0.0-alpha02 contiene questi commit.
Correzioni di bug
- È stato risolto il problema di divisione per zero quando si utilizza l'emulatore
- È stato corretto l'errore NullPointerException/Surface Abandoned che si verificava su alcuni dispositivi quando si scattavano foto rapidamente scollegando e ricollegando rapidamente i casi d'uso.
- È stato risolto un problema interno per garantire che gli aggiornamenti delle richieste di acquisizione influiscano in modo coerente su tutte le piattaforme
- Miglioramenti alla stabilità al riavvio dei casi d'uso nelle nuove istanze di app
- Modifiche all'architettura interna per prepararsi a supportare gli esecutori nell'API
- Ulteriori chiarimenti Javadoc sulla classe CameraX e sulla gestione del ciclo di vita
- Sono stati aggiunti i test con strumenti per l'app di test delle prestazioni Antelope
- Rimuovere la necessità di "-keepattributes Signature" nella configurazione di Proguard dell'app
Camera-Camera2 e Camera-Core 1.0.0-alpha01
7 maggio 2019
androidx.camera:camera-core:1.0.0-alpha01
e
androidx.camera:camera-camera2:1.0.0-alpha01
vengono rilasciati. La versione 1.0.0-alpha01 contiene questi commit.
Camera-Lifecycle Version 1.0.0-beta11
14 ottobre 2020
androidx.camera:camera-lifecycle:1.0.0-beta11
viene rilasciato. La versione 1.0.0-beta11 contiene questi commit.
Correzioni di bug
<UseCase>.getTargetRotation()
restituiràSurface.ROTATION_0
se viene chiamato prima di essere associato a un'istanza Camera, a meno che non sia stata impostata una rotationTarget su Builder o UseCase. (I80fcd)
Camera-Lifecycle versione 1.0.0-beta10
23 settembre 2020
androidx.camera:camera-lifecycle:1.0.0-beta10
viene rilasciato. La versione 1.0.0-beta10 contiene questi commit.
Correzioni di bug
- Uscita per il supporto di Camera-Core 1.0.0-beta10
Versione del ciclo di vita della videocamera 1.0.0-beta09
16 settembre 2020
androidx.camera:camera-lifecycle:1.0.0-beta09
viene rilasciato. La versione 1.0.0-beta09 contiene questi commit.
Versione Camera-Lifecycle 1.0.0-beta08
19 agosto 2020
androidx.camera:camera-lifecycle:1.0.0-beta08
viene rilasciato. La versione 1.0.0-beta08 contiene questi commit.
Correzioni di bug
- L'inizializzazione non dovrebbe più arrestarsi in modo anomalo quando si utilizza un contesto
che non restituisce un oggetto Application da
Context.getApplicationContext()
. (I3d3c9, b/160817073)
Camera-Lifecycle Version 1.0.0-beta07
22 luglio 2020
androidx.camera:camera-lifecycle:1.0.0-beta07
viene rilasciato. La versione 1.0.0-beta07 contiene questi commit.
Camera-Lifecycle versione 1.0.0-beta06
24 giugno 2020
androidx.camera:camera-lifecycle:1.0.0-beta06
viene rilasciato. La versione 1.0.0-beta06 contiene questi commit.
Modifiche all'API
- Ora CameraX può essere configurato con ProcessCameraProvider#configureInstance() prima di chiamare ProcessCameraProvider#getInstance(). Ciò consente di personalizzare CameraXConfig senza richiedere l'implementazione di CameraXConfig.Provider nella classe Application dell'app. (Ia1a8d)
Camera-Lifecycle versione 1.0.0-beta05
10 giugno 2020
androidx.camera:camera-lifecycle:1.0.0-beta05
viene rilasciato. La versione 1.0.0-beta05 contiene questi commit.
Correzioni di bug
- Risolvere l'arresto anomalo all'avvio dell'app durante l'inizializzazione di CameraX quando lo smartphone è in modalità Non disturbare. Un
InitializationException
contenente unCameraUnavailableException
verrà impostato sulListenableFuture
del risultato dell'inizializzazione anziché arrestare in modo anomalo l'applicazione. (I9909a, b/149413835)
Camera-Lifecycle Versione 1.0.0-beta04
27 maggio 2020
androidx.camera:camera-lifecycle:1.0.0-beta04
viene rilasciato. La versione 1.0.0-beta04 contiene questi commit.
Camera-Lifecycle Versione 1.0.0-beta03
15 aprile 2020
androidx.camera:camera-lifecycle:1.0.0-beta03
viene rilasciato. La versione 1.0.0-beta03 contiene questi commit.
Correzioni di bug
- È stata corretta la regressione dalla versione beta03 in cui la chiamata a
bindToLifecycle()
con zeroUseCase
provocava un'eccezione. Ciò ha impedito il recupero di unCamera
senza l'associazione di unUseCase
. - Correzioni per supportare il rilascio di
camera-core
Camera-Lifecycle Versione 1.0.0-beta01
26 febbraio 2020
androidx.camera:camera-lifecycle:1.0.0-beta01
viene rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Correzioni di bug
- È stata corretta la documentazione per indicare che, quando si ottiene un
ProcessCameraProvider
durante l'inizializzazione, viene utilizzata una configurazione predefinita e che l'estensione diApplication
è facoltativa. (I5e395)
Camera-Lifecycle versione 1.0.0-beta02
1° aprile 2020
androidx.camera:camera-lifecycle:1.0.0-beta02
viene rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Correzioni di bug
- Aggiornamento per supportare le correzioni di bug negli elementi
camera-camera2:1.0.0-beta02
ecamera-core:1.0.0-beta02
.
Camera-Lifecycle Versione 1.0.0-alpha10
10 febbraio 2020
androidx.camera:camera-lifecycle:1.0.0-alpha10
viene rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Modifiche all'API
- È stata aggiunta l'annotazione
@MainThread
ai metodi BindToLifecycle, unbind e unbindAll. (I990d2)
Versione Camera-Lifecycle 1.0.0-alpha03
22 gennaio 2020
androidx.camera:camera-lifecycle:1.0.0-alpha03
viene rilasciato. La versione 1.0.0-alpha03 contiene questi commit.
regolari
- Vari fix e aggiornamenti per supportare le modifiche di Camera Core e Camera2.
Versione Camera-Lifecycle 1.0.0-alpha02
18 dicembre 2019
androidx.camera:camera-lifecycle:1.0.0-alpha02
viene rilasciato. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche alle dipendenze
- Aggiornamento per l'utilizzo di
androidx.camera:camera-core:1.0.0-alpha08
.
Versione Camera-Lifecycle 1.0.0-alpha01
4 dicembre 2019
androidx.camera:camera-lifecycle:1.0.0-alpha01
viene rilasciato. La versione 1.0.0-alpha01 di camera-lifecycle contiene questi commit
Note sull'API
- Viene aggiunto l'elemento camera-lifecycle, che fornisce l'interfaccia
LifeCycleCameraProvider
e un'implementazione chiamataProcessCameraProvider
che fornisce molte delle funzioni della precedente classe CameraX nel nucleo ed è ottenuta tramite un metodogetInstance()
. - Le app devono includere la libreria camera-lifecycle per utilizzare CameraX.
- Consulta le note nella sezione camera-core per scoprire come eseguire l'inizializzazione di CameraX utilizzando un
ProcessCameraProvider
.
Estensioni della fotocamera e Visualizzazione della fotocamera versione 1.0.0
Versione 1.0.0-alpha32
15 dicembre 2021
androidx.camera:camera-extensions:1.0.0-alpha32
e androidx.camera:camera-view:1.0.0-alpha32
vengono rilasciati. La versione 1.0.0-alpha32 contiene questi commit.
Modifiche all'API
- Sono state rimosse le annotazioni
@RequiresApi(21)
non necessarie dalle classi/interfacce interne. (I8e286, b/204917951) - Aggiorna i file API per l'elemento camera-extensions. (If683a, b/161377155)
Correzioni di bug
- Non consentire all'app di attivare le modalità di estensione durante il binding di
VideoCapture
. Le estensioni CameraX supportano soloImageCapture
ePreview
.VideoCapture
non è ancora supportato. Se l'app esegue il binding diVideoCapture
e abilita qualsiasi modalità di estensione, verrà generato unIllegalArgumentException
. (I0d87b) CameraSelector#filter
non genera più unIllegalArgumentException
quando il set di risultati è vuoto. (I27804)- L'API
ExtensionsManager#getInstance
è stata rinominata ingetInstanceAsync
perché restituisceListenableFuture
. Il suffisso Async del nome della funzione può indicare chiaramente che si tratta di una funzione asincrona. (I279d2) - Rimuovi il parametro di risoluzione dall'API
ExtensionsManager#getEstimatedCaptureLatencyRange
, poiché gli utenti non possono sapere quali dimensioni sono supportate per il caso d'usoImageCapture
e non possono distinguere se le informazioni sulla latenza restituite si riferiscono alle dimensioni massime dell'output di acquisizione o al parametro di risoluzione di input. (I74bb2) - Sposta il parametro
CameraProvider
delle funzioniExtensionsManager
nell'APIgetInstance()
. In questo modo, gli utenti non devono inserire il parametroCameraProvider
ogni volta che chiamano le funzioniExtensionsManager
. (Ic7e48)
Versione 1.0.0-alpha31
17 novembre 2021
androidx.camera:camera-extensions:1.0.0-alpha31
e androidx.camera:camera-view:1.0.0-alpha31
vengono rilasciati. La versione 1.0.0-alpha31 contiene questi commit.
Modifiche all'API
- È stato aggiunto CameraSelector#filter all'API pubblica per filtrare un elenco di CameraInfo in base a un CameraSelector. (I105d0)
Correzioni di bug
- È stato corretto un arresto anomalo durante il passaggio rapido dalla modalità Estensioni su alcuni dispositivi. (Iebbef)
Versione 1.0.0-alpha30
13 ottobre 2021
androidx.camera:camera-extensions:1.0.0-alpha30
e androidx.camera:camera-view:1.0.0-alpha30
vengono rilasciati. La versione 1.0.0-alpha30 contiene questi commit.
Modifiche all'API
- È stata aggiunta l'annotazione @RequiresApi(21) a tutte le classi CameraX ed è stato rimosso il valore minSdkVersion da AndroidManifest.xml. In questo modo, camera-core potrà essere facilmente integrato nelle applicazioni con una versione minSdk inferiore a 21, ma che vogliono utilizzare in modo condizionale i percorsi di codice che si basano sull'API 21 e versioni successive. Per qualsiasi applicazione con minSdkVersion 21 o successive, questa modifica non richiede alcuna azione. (Ie7f2e, b/200599470)
Correzioni di bug
- È stato risolto il problema AbstractMethodError che si verifica quando ProGuard è attivo. (Iae468, b/201177844)
Versione 1.0.0-alpha29
29 settembre 2021
androidx.camera:camera-extensions:1.0.0-alpha29
e androidx.camera:camera-view:1.0.0-alpha29
vengono rilasciati. La versione 1.0.0-alpha29 contiene questi commit.
Modifiche all'API
- L'annotazione ExperimentalUseCaseGroup è stata rimossa ora che le API non sono più sperimentali. (I01ef5)
- rimuovi
RotationProvider#removeAllListeners()
. Utilizza inveceRotationProvider#removeListener(...)
. (Id9d4a) - Aggiornamento della classe RotationReceiver: modifica dell'impostazione/dell'eliminazione dell'ascoltatore in aggiunta/rimozione/rimozione di tutti, rimozione della variante setListener che utilizza il thread principale per impostazione predefinita e aggiunta dell'annotazione dei metodi. (Ib1669)
Correzioni di bug
- È stato rinominato ExtensionMode#BEAUTY in FACE_RETOUCH per presentare correttamente ciò che viene fatto dalla modalità di estensione. (I61f54, b/198515274)
- È stato risolto il problema per cui la fotocamera si chiude in modo imprevisto quando in un'attività vengono utilizzati più CameraController e PreviewView. (Ibfd18, b/197539358)
Versione 1.0.0-alpha28
18 agosto 2021
androidx.camera:camera-extensions:1.0.0-alpha28
e androidx.camera:camera-view:1.0.0-alpha28
vengono rilasciati. La versione 1.0.0-alpha28 contiene questi commit.
Modifiche all'API
- L'annotazione ExperimentalUseCaseGroupLifecycle è stata rimossa ora che le API non sono più sperimentali. (I17b85)
- è stato sottoposto a refactoring di RotationListener e rinominato in RotationProvider. Continua a fornire la stessa funzionalità con un'API leggermente diversa. (Idffc5)
- Rinomina TAP_TO_FOCUS_UNSUCCESSFUL in TAP_TO_FOCUS_NOT_FOCUSED e TAP_TO_FOCUS_SUCCESSFUL in TAP_TO_FOCUS_FOCUSED. OutputSize è stato impostato come valore finale (I099fa)
Correzioni di bug
- Sono stati rimossi i classi
<EffectName><UseCase>Extender
deprecati, ExtensionsErrorListener e le API ExtensionsManager correlate. (I3b8c3)
Versione 1.0.0-alpha27
21 luglio 2021
androidx.camera:camera-extensions:1.0.0-alpha27
e androidx.camera:camera-view:1.0.0-alpha27
vengono rilasciati. La versione 1.0.0-alpha27 contiene questi commit.
Modifiche all'API
- L'API Viewport non è più sperimentale. Rimuovi l'annotazione sperimentale dell'API. (I717ea)
- Rinomina di
CoordinateTransform#getTransform
inCoordinateTransform#transform
e aggiornamento della documentazione JavaDoc (I864ae)
Correzioni di bug
- È stato risolto il problema di allungamento della modalità
PreviewView PERFORMANCE
quando viene utilizzata insieme all'interfaccia utente di Scrivi. (Ie1137, b/183864890)
Versione 1.0.0-alpha26
30 giugno 2021
androidx.camera:camera-extensions:1.0.0-alpha26
e androidx.camera:camera-view:1.0.0-alpha26
vengono rilasciati. La versione 1.0.0-alpha26 contiene questi commit.
Modifiche all'API
- Aggiungi un nuovo metodo
CameraController#getTapToFocusState()
che esponga l'ultimo risultato di tocco per mettere a fuoco. (Iaccb0) - aggiunta di altre funzionalità di base della fotocamera a CameraController: getter/setter per formato dell'inquadratura target, risoluzione target, modalità di acquisizione, CameraControl ed esecutori personalizzati. (Iea8f2)
- Aggiungi una classe RotationReceiver che riceve le modifiche alla rotazione del Surface. Può essere utilizzato per impostare la rotazione target quando il dispositivo è in modalità verticale/orizzontale fissa. (Ib278f)
- Sono state esposte nuove API pubbliche getEstimatedCaptureLatencyRange nella classe ExtensionsManager. (I6a8ec)
- È stato ritirato ExtensionsErrorListener. Al momento, questa interfaccia viene utilizzata solo per monitorare se manca un'anteprima o un'acquisizione di immagini quando vengono attivate le modalità di estensione. CameraX aggiungerà automaticamente un'altra istanza di Preview o ImageCapture per garantire il corretto funzionamento delle funzioni di estensione. Dopodiché, non verrà segnalato alcun errore tramite questa interfaccia. (I47d9e)
- Sono state esposte le nuove API pubbliche ExtensionsManager getInstance, isExtensionAvailable e getExtensionEnabledCameraSelector e sono state ritirate le vecchie classi
<EffectName><UseCase>Extender
e le API correlate. (I329e6)
Versione 1.0.0-alpha25
2 giugno 2021
androidx.camera:camera-extensions:1.0.0-alpha25
e androidx.camera:camera-view:1.0.0-alpha25
vengono rilasciati. La versione 1.0.0-alpha25 contiene questi commit.
Modifiche all'API
- Le API ExperimentalCameraFilter non sono più sperimentali e diventano API formali. Possono essere utilizzati senza attivazione annotata. (I4bc94)
- Aggiungi un'utilità che trasformi le coordinate tra i casi d'uso. Esempio di utilizzo: trasformazione delle coordinate rilevate nel caso d'uso ImageAnalysis ed evidenziazione dell'oggetto rilevato nell'anteprima. (I63ab1, b/137515129)
CameraView
rimosso.CameraView
è stato sostituito daCameraController
. Per scoprire come eseguire la migrazione, consulta la guida alla migrazione. (Id5005)
Correzioni di bug
ExperimentalUseCaseGroupLifecycle
sostituito conExperimentalUseCaseGroup
. (I3b2ef, b/159033688)
Versione 1.0.0-alpha24
21 aprile 2021
androidx.camera:camera-extensions:1.0.0-alpha24
e androidx.camera:camera-view:1.0.0-alpha24
vengono rilasciati. La versione 1.0.0-alpha24 contiene questi commit.
Correzioni di bug
- È stata sostituita l'annotazione
@Experimental
con@RequiresOptIn
per le API sperimentali. Per chiamare le API sperimentali, utilizzaandroidx.annotation.OptIn
anzichéandroidx.annotation.experimental.UseExperimental
deprecato. (Iff226) - È stato risolto il problema di allungamento di PreviewView su Samsung J5 Prime (Ib10b6)
Estensioni della videocamera e visualizzazione, versione 1.0.0-alpha23
24 marzo 2021
androidx.camera:camera-extensions:1.0.0-alpha23
e androidx.camera:camera-view:1.0.0-alpha23
vengono rilasciati. La versione 1.0.0-alpha23 contiene questi commit.
Modifiche all'API
- CameraView è in fase di ritiro. Utilizza invece
LifecycleCameraController
. Consulta la guida alla migrazione (Idac2c) - È stata aggiunta l'annotazione FloatRange a setLinearZoom() (I69971)
Correzioni di bug
- Le dipendenze della visualizzazione della videocamera bloccate devono fare affidamento sugli elementi 1.0.0. La dipendenza da camera-view non causerà più la risoluzione delle dipendenze di Gradle per eseguire automaticamente l'upgrade di camera-core, camera-camera2 e camera-lifecycle alle ultime versioni 1.1.0 degli elementi, anche se camera-view è ancora compatibile con questi elementi se sono impostati esplicitamente per utilizzare la versione 1.1.0. (Ic8fa1, b/181599852)
- È stata corretta l'anteprima allungata del Samsung A3 in PreviewView. (Iacb30, b/180121821)
- È stato risolto il problema per cui il selettore della videocamera non può essere impostato prima dell'inizializzazione della videocamera. (Ic8bd0)
Estensioni e visualizzazione della videocamera, versione 1.0.0-alpha22
24 febbraio 2021
androidx.camera:camera-extensions:1.0.0-alpha22
e androidx.camera:camera-view:1.0.0-alpha22
vengono rilasciati. La versione 1.0.0-alpha22 contiene questi commit.
Modifiche all'API
- Aggiungi un getter CameraInfo a CameraController. (Ib8138, b/178251727)
Correzioni di bug
- È stato corretto ExtensionsErrorListener per segnalare gli errori quando è associato solo Anteprima o ImageCapture. (I5ae39)
Estensioni e visualizzazione della videocamera, versione 1.0.0-alpha21
27 gennaio 2021
androidx.camera:camera-extensions:1.0.0-alpha21
e androidx.camera:camera-view:1.0.0-alpha21
vengono rilasciati. La versione 1.0.0-alpha21 contiene questi commit.
Rilasciata per supportare altri elementi della raccolta di fotocamere.
Estensioni della videocamera e visualizzazione, versione 1.0.0-alpha20
16 dicembre 2020
androidx.camera:camera-extensions:1.0.0-alpha20
e androidx.camera:camera-view:1.0.0-alpha20
vengono rilasciati. La versione 1.0.0-alpha20 contiene questi commit.
Rilasciata per supportare altri elementi della raccolta di fotocamere.
Camera-Extensions e Camera-View versione 1.0.0-alpha19
11 novembre 2020
androidx.camera:camera-extensions:1.0.0-alpha19
e androidx.camera:camera-view:1.0.0-alpha19
vengono rilasciati. La versione 1.0.0-alpha19 contiene questi commit.
Correzioni di bug
- L'annotazione
@ExperimentalVideo
è stata introdotta nella visualizzazione della fotocamera. Questa annotazione indica le API che espongono funzionalità video sperimentali, che sono soggette a modifiche man mano che le funzionalità vengono sviluppate completamente. Qualsiasi metodo che utilizza queste API deve utilizzare l'annotazione@UseExperimental
conExperimentalVideo
comemarkerClass
. (I6d729)
Camera-Extensions versione 1.0.0-alpha18
14 ottobre 2020
androidx.camera:camera-extensions:1.0.0-alpha18
viene rilasciato. La versione 1.0.0-alpha18 contiene questi commit.
Correzioni di bug
- È stata migliorata la latenza dell'inizializzazione di CameraX e di bindToLifecycle (I61dc5)
<UseCase>.getTargetRotation()
restituiràSurface.ROTATION_0
se viene chiamato prima di essere associato a un'istanza Camera, a meno che non sia stata impostata una rotationTarget su Builder o UseCase. (I80fcd)
Versione Camera-View 1.0.0-alpha18
14 ottobre 2020
androidx.camera:camera-view:1.0.0-alpha18
viene rilasciato. La versione 1.0.0-alpha18 contiene questi commit.
Rilasciata per supportare altri elementi della raccolta di fotocamere.
Camera-Extensions versione 1.0.0-alpha17
23 settembre 2020
androidx.camera:camera-extensions:1.0.0-alpha17
viene rilasciato. La versione 1.0.0-alpha17 contiene questi commit.
Correzioni di bug
- Uscita per il supporto di Camera-Core 1.0.0-beta10
Versione Camera-View 1.0.0-alpha17
23 settembre 2020
androidx.camera:camera-view:1.0.0-alpha17
viene rilasciato. La versione 1.0.0-alpha17 contiene questi commit.
Correzioni di bug
- Uscita per il supporto di Camera-Core 1.0.0-beta10
Estensioni della fotocamera versione 1.0.0-alpha16
16 settembre 2020
androidx.camera:camera-extensions:1.0.0-alpha16
viene rilasciato. La versione 1.0.0-alpha16 contiene questi commit.
Correzioni di bug
- È stato aggiunto un metodo in
ExtensionsManager
per ottenere un oggettoExtensions
che viene utilizzato per attivare ed eseguire query sulle estensioni nelle istanze di Camera (I4fb7e)
Versione Camera-View 1.0.0-alpha16
16 settembre 2020
androidx.camera:camera-view:1.0.0-alpha16
viene rilasciato. La versione 1.0.0-alpha16 contiene questi commit.
Modifiche all'API
PreviewView#setDeviceRotationForRemoteDisplayMode()
ePreviewView#getDeviceRotationForRemoteDisplayMode()
sono stati rimossi. I due metodi sono per personalizzare la rotazione dell'anteprima, quando la rotazione desiderata non è la rotazione del display, ad esempio il display remoto. Per gestire la rotazione dell'anteprima non in visualizzazione, imposta la rotazione desiderata conPreview#setTargetRotation()
e il nuovoPreviewView#getViewPort(targetRotation)
aggiunto. (Ib62cc)createSurfaceProvider()
rinominato ingetSurfaceProvider()
. Il metodo restituirà sempre la stessa istanza di Preview.SurfaceProvider. (Iff83c)
Correzioni di bug
- Forza PreviewView a utilizzare TextureView se l'effetto di estensione è attivato e l'implementazione della libreria del fornitore deve eseguire una procedura speciale sulla superficie di output. (I0c3cc)
- Consenti la rotazione arbitraria del target per l'anteprima. Le informazioni sulla trasformazione vengono calcolate e restituite all'utente in tempo reale tramite un nuovo
TranformationInfoListener
callback. (I21470)
Problemi noti
- In PreviewView,
OnClickListener#onClick()
non viene invocato quando l'utente finale fa clic su PreviewView. L'evento tocco viene erroneamente utilizzato da PreviewView#onTouchEvent(). Il problema verrà risolto nella prossima release. - Il punto di misurazione ottenuto da
PreviewView#getMeteringPointFactory()
potrebbe essere errato se ViewPort viene utilizzato con PreviewView.
Camera-Extensions versione 1.0.0-alpha15
19 agosto 2020
androidx.camera:camera-extensions:1.0.0-alpha15
viene rilasciato. La versione 1.0.0-alpha15 contiene questi commit.
Correzioni di bug
- Ora il metodo
ExtensionsManager.init()
accetta un contesto come parametro anziché non avere argomenti. (Ife754) L'inizializzazione non dovrebbe più arrestarsi in modo anomalo quando si utilizza un contesto che non restituisce un oggetto Application da
Context.getApplicationContext()
. (I3d3c9, b/160817073)Versione Camera-View 1.0.0-alpha15
19 agosto 2020
androidx.camera:camera-view:1.0.0-alpha15
viene rilasciato. La versione 1.0.0-alpha15 contiene questi commit.
Correzioni di bug
DisplayOrientedMeteringPointFactory
accetta un'istanzaCameraInfo
instead of aCameraSelector
, quindi esiste una mappatura diretta per la Camera per la quale la factory genererà i punti. Tutte le classi che utilizzanoDisplayOrientedMeteringPointFactory
accettano anche un'istanzaCameraInfo
anzichéCameraSelector
. (I400c1)TextureViewMeteringPointFactory
rimosso.PreviewView
fornisce un'API pubblica (createMeteringPointFactory()
) per creare una factory di punti di misurazione, indipendentemente dall'utilizzo diTextureView
oSurfaceView
. (Ide693)- Rinomina le modalità di implementazione
SURFACE_VIEW
/TEXTURE_VIEW
di PreviewView inPERFORMANCE
/COMPATIBLE
.PERFORMANCE
è la vecchia modalitàSURFACE_VIEW
eCOMPATIBLE
è la vecchia modalitàTEXTURE_VIEW
. (I0edc2) - Per l'acquisizione di immagini, sovrascrivi il flag di rotazione orizzontale nei metadati in base alla direzione della fotocamera. (I28499)
Estensioni della fotocamera versione 1.0.0-alpha14
22 luglio 2020
androidx.camera:camera-extensions:1.0.0-alpha14
viene rilasciato. La versione 1.0.0-alpha14 contiene questi commit.
Versione Camera-View 1.0.0-alpha14
22 luglio 2020
androidx.camera:camera-view:1.0.0-alpha14
viene rilasciato. La versione 1.0.0-alpha14 contiene questi commit.
Estensioni-fotocamera versione 1.0.0-alpha13
24 giugno 2020
androidx.camera:camera-extensions:1.0.0-alpha13
viene rilasciato. La versione 1.0.0-alpha13 contiene questi commit.
Correzioni di bug
- Sono state aggiunte interfacce sperimentali per filtrare le videocamere in base all'ID e alle caratteristiche della videocamera. (I28f61)
Versione Camera-View 1.0.0-alpha13
24 giugno 2020
androidx.camera:camera-view:1.0.0-alpha13
viene rilasciato. La versione 1.0.0-alpha13 contiene questi commit.
Correzioni di bug
- CameraView non si arresta più in modo anomalo con un IllegalArgumentException quando viene associato a un LifecycleOwner il cui ciclo di vita passa allo stato DESTROYED poco dopo l'associazione. I cicli di vita di Binding in stato DESTROYED non tenteranno di aprire la videocamera. (I7c2b8)
- StreamState di PreviewView è ora disponibile tramite CameraView.getPreviewStreamState() (I21a2b)
Estensioni della videocamera versione 1.0.0-alpha12
10 giugno 2020
androidx.camera:camera-extensions:1.0.0-alpha12
viene rilasciato. La versione 1.0.0-alpha12 contiene questi commit.
Correzioni di bug
- Risolvere l'arresto anomalo all'avvio dell'app durante l'inizializzazione di CameraX quando lo smartphone è in modalità Non disturbare. Un
InitializationException
contenente unCameraUnavailableException
verrà impostato sulListenableFuture
del risultato dell'inizializzazione anziché arrestare in modo anomalo l'applicazione. (I9909a, b/149413835)
Versione Camera-View 1.0.0-alpha12
10 giugno 2020
androidx.camera:camera-view:1.0.0-alpha12
viene rilasciato. La versione 1.0.0-alpha12 contiene questi commit.
Correzioni di bug
- Aggiungi l'API
PreviewView#getBitmap()
che restituisce una rappresentazione bitmap dei contenuti visualizzati sulla piattaforma di anteprima. (I9b500, b/157659818)
Estensioni della fotocamera, versione 1.0.0-alpha11
27 maggio 2020
androidx.camera:camera-extensions:1.0.0-alpha11
viene rilasciato. La versione 1.0.0-alpha11 contiene questi commit.
Versione Camera-View 1.0.0-alpha12
10 giugno 2020
androidx.camera:camera-view:1.0.0-alpha12
viene rilasciato. La versione 1.0.0-alpha12 contiene questi commit.
Nuove funzionalità
Modifiche all'API
Correzioni di bug
- Aggiungi l'API
PreviewView#getBitmap()
che restituisce una rappresentazione bitmap dei contenuti visualizzati sulla piattaforma di anteprima. (I9b500, b/157659818)
Visualizzazione fotocamera, versione 1.0.0-alpha11
27 maggio 2020
androidx.camera:camera-view:1.0.0-alpha11
viene rilasciato. La versione 1.0.0-alpha11 contiene questi commit.
Modifiche all'API
- Aggiungi l'API
PreviewView#getPreviewStreamState
che consente alle app di osservare se l'anteprima è in streaming o meno. Quando PreviewView è in modalità TEXTURE_VIEW, lo stato STREAMING garantisce anche che l'immagine di anteprima sia visibile. (Ic0906, b/154652477) - È stata aggiunta l'API
PreviewView#setDeviceRotationForRemoteDisplayMode()
per fornire la rotazione del dispositivo per i calcoli di trasformazione se l'applicazione è in esecuzione in modalità di visualizzazione remota. (I59b95, b/153514525)
Correzioni di bug
- È stato risolto il problema di distorsione dell'anteprima sulle videocamere
FULL/LIMITED/LEVEL_3
con Android 7.0 e versioni precedenti. Utilizzo forzato della modalitàImplementationMode#TEXTURE_VIEW
quando la versione di Android è 7.0 o precedente. (I83e30, b/155085307) - Il parametro
CameraInfo
è stato rimosso daPreviewView#createSurfaceProvider()
,PreviewView
ora lo recupera internamente daSurfaceRequest
. (If18f0, b/154652477) - È stato corretto il formato video predefinito di VideoCapture in CameraView in modo che sia 16:9. (Ie6a7b, b/153237864)
- Risolvere i problemi di schermo nero
PreviewView
quando si rimuove il frammentoPreview
e si torna indietro in ViewPager2. È stato risolto anche il problema quandoremoveView(previewview)
e poiaddView(previewView)
. (Iab555, b/149877652, b/147354615) - Aggiorna l'API
CameraView#takePicture()
per consentire il salvataggio delle immagini inUri
eOutputStream
. Aggiorna l'app di test in modo da utilizzareUri
come esempio canonico. (Ia2459, b/153607583) - Puoi impostare il tipo di scala di PreviewView da un layout XML impostando l'attributo
ScaleType
. (I08565, b/153015659) CameraView.ScaleType
è stato rimosso. Utilizza invecePreviewView.ScaleType
per impostare/ottenere un tipo di scala con CameraView. (Ia8974, b/153014831)- Assegna un colore di sfondo a
PreviewView
per impostazione predefinita, se non ne ha già uno. In questo modo, i contenuti dietro non saranno visibili prima dell'inizio dello stream di anteprima. (I09fad)
Estensioni della fotocamera, versione 1.0.0-alpha10
15 aprile 2020
androidx.camera:camera-extensions:1.0.0-alpha10
viene rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Correzioni di bug
- Correzioni per supportare il rilascio di Camera-Core
Camera-View Versione 1.0.0-alpha10
15 aprile 2020
androidx.camera:camera-view:1.0.0-alpha010
viene rilasciato. La versione 1.0.0-alpha010 contiene questi commit.
Correzioni di bug
- È stato risolto un precedente problema noto per cui l'implementazione di SurfaceView di
PreviewView
non funzionava correttamente su alcuni dispositivi e causava l'arresto anomalo dell'app dopo la ripresa dell'anteprima. (I5ed6b)
Estensioni della fotocamera versione 1.0.0-alpha09
1° aprile 2020
androidx.camera:camera-extensions:1.0.0-alpha09
viene rilasciato. La versione 1.0.0-alpha09 contiene questi commit.
Correzioni di bug
- Aggiornamento per supportare le correzioni di bug negli elementi
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
ecamera-lifecycle:1.0.0-beta02
Versione Camera-View 1.0.0-alpha09
1° aprile 2020
androidx.camera:camera-view:1.0.0-alpha09
viene rilasciato. La versione 1.0.0-alpha09 contiene questi commit.
Problemi noti
- L'utilizzo di
ImplementationMode.SURFACE_VIEW
conPreviewView
potrebbe non funzionare bene su alcuni dispositivi, perché la superficie diSurfaceView
utilizzata per l'anteprima viene invalidata quando il ciclo di vita della finestra in cui si trova viene interrotto. Quando si riavvia, la videocamera viene riaperta e potrebbe tentare di riprendere l'anteprima prima che la superficie diSurfaceView
sia di nuovo valida. Per il momento, ti consigliamo di utilizzareImplementationMode.TEXTURE_VIEW
.
Modifiche all'API
PreviewView.setImplementationMode()
rinominato inPreviewView.setPreferredImplementationMode()
.PreviewView.getImplementationMode()
rinominato inPreviewView.getPreferredImplementationMode()
.PreviewView.getSurfaceProvider()
sostituito conPreviewView.createSurfaceProvider(CameraInfo)
, che accetta un'istanzaCameraInfo
nullable utilizzata per ottimizzare l'anteprima utilizzandoImplementationMode.SURFACE_VIEW
, se possibile. Se viene passata un'istanza null o se imposti la modalità di implementazione preferita suImplementationMode.TEXTURE_VIEW
, viene utilizzato internamenteImplementationMode.TEXTURE_VIEW
.Il seguente esempio di codice mostra come un caso d'uso di anteprima veniva utilizzato in precedenza con PreviewView.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
Al momento puoi scrivere quanto segue:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
L'annotazione
@UiThread
è stata aggiunta aPreviewView.getSurfaceProvider()
, il che significa che deve essere chiamata dal thread principale. (I192f3)È stato aggiunto
PreviewView.setScaleType()
che consente di impostare il tipo di scala dell'anteprima. Accetta uno dei valori inPreviewView.ScaleType
e il valore predefinito èPreviewView.ScaleType.FILL_CENTER
.PreviewView.getScaleType()
aggiunto.È stato rimosso il supporto per l'impostazione della modalità di implementazione di
PreviewView
in un layout XML utilizzando l'attributoimplementationMode
.Aggiungi l'API
createMeteringPointFactory()
a PreviewView per supportare la conversione di (x, y) inPreviewView
inMeteringPoint
. (Ib36d7)
Correzioni di bug
- Sono stati corretti i casi in cui viene visualizzata un'anteprima errata dopo la modifica delle dimensioni di
PreviewView
. (I71101)
Camera-Extensions versione 1.0.0-alpha08
26 febbraio 2020
androidx.camera:camera-extensions:1.0.0-alpha08
viene rilasciato. La versione 1.0.0-alpha08 contiene questi commit.
Versione Camera-View 1.0.0-alpha08
26 febbraio 2020
androidx.camera:camera-view:1.0.0-alpha08
viene rilasciato. La versione 1.0.0-alpha08 contiene questi commit.
Correzioni di bug
ListenableFuture
suSurfaceRequest.provideSurface()
sostituito conExecutor
eCallback
. In questo modo, l'API viene semplificata perché non richiede più la gestione delle eccezioni suprovideSurface()
e impone che il callback diprovideSurface()
non possa essere annullato. Questo serve a evitare arresti anomali sui dispositivi meno recenti causati dal rilascio prematuro delle piattaforme. L'oggettoSurfaceRequest.Result
viene ora utilizzato per monitorare il modo in cui unSurfaceRequest
utilizza ilSurface
fornito. (I7854b)SurfaceRequest.setSurface(Surface)
è stato rinominato inSurfaceRequest.provideSurface(Surface)
eSurfaceRequest.setWillNotComplete()
inSurfaceRequest.willNotProvideSurface()
. (I224fe)- È stata corretta l'inizializzazione delle varianti dell'app con ProGuard abilitato preservando il flag che imposta il provider
CameraXConfig
predefinito. (I2d6c1)
Estensioni della fotocamera, versione 1.0.0-alpha07
10 febbraio 2020
androidx.camera:camera-extensions:1.0.0-alpha07
viene rilasciato. La versione 1.0.0-alpha07 contiene questi commit.
Correzioni di bug
- Gli argomenti che in precedenza venivano passati in
ImageCapture.OnImageSavedCallback.onError()
eImageCapture.OnImageCapturedCallback.onError()
sono stati sostituiti da un unico argomentoImageCaptureException
, che contiene ancora tutte le informazioni passate in precedenza. - L'argomento file passato in precedenza in
ImageCapture.OnImageSavedCallback.onImageSaved()
è stato rimosso. (I750d2)
Camera-View Versione 1.0.0-alpha07
10 febbraio 2020
androidx.camera:camera-view:1.0.0-alpha07
viene rilasciato. La versione 1.0.0-alpha07 contiene questi commit.
Modifiche all'API
- L'implementazione di
TextureView
diPreviewView
ora imposta le dimensioni diTextureView
sulle dimensioni di output del sensore della fotocamera prima di ridimensionarlo per riempire ilPreviewView
principale. Se vuoi che l'anteprima della fotocamera riempia un'intera parte dell'interfaccia utente (ad esempio l'intero schermo), non devi impostare le dimensioni diPreviewView
su un valore fisso o applicare il rientro dei contenuti (ad esempio utilizzando l'attributo "wrap_content
"). In questo modo, l'anteprima della fotocamera potrebbe riempire solo una parte diPreviewView
(se le dimensioni di output del sensore della fotocamera sono inferiori). Devi invece impostarePreviewView
come grande quanto l'elemento principale (ad esempio utilizzando l'attributo "match_parent
"). (1204869)
Correzioni di bug
ImageCapture
è stato aggiornato per consentire il salvataggio delle immagini inUri
eOutputStream
. I metoditakePicture
sovraccaricati sono stati combinati in un unico metodo. L'app di test è stata aggiornata in modo da utilizzareUri
come esempio canonico. (Ia3bec)Preview.PreviewSurfaceProvider
è stato rinominato inPreview.SurfaceProvider
.SurfaceProvider
non richiede più agli sviluppatori di creare il proprioListenableFuture
e la fornitura di unSurface
ora avviene tramite un nuovo oggettoSurfaceRequest
. Il metodoPreview.getPreviewSurfaceProvider()
è stato rimosso a causa del potenziale uso improprio quandoPreview
è accoppiato ad altre classi comePreviewView
. (I20105)- Gli argomenti che in precedenza venivano passati in
ImageCapture.OnImageSavedCallback.onError()
eImageCapture.OnImageCapturedCallback.onError()
sono stati sostituiti da un unico argomentoImageCaptureException
, che contiene ancora tutte le informazioni passate in precedenza. - L'argomento file passato in precedenza in
ImageCapture.OnImageSavedCallback.onImageSaved()
è stato rimosso. (I750d2) - L'API è stata aggiornata con l'unione dei metodi
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
egetLinearZoom()
diCameraInfo
ingetZoomState()
, che restituisce un'istanzaZoomState
. (Ib19fe)
Camera-Extensions versione 1.0.0-alpha06
22 gennaio 2020
androidx.camera:camera-extensions:1.0.0-alpha06
viene rilasciato. La versione 1.0.0-alpha06 contiene questi commit.
regolari
- Vari fix e aggiornamenti per supportare le modifiche di Camera Core e Camera2.
Versione Camera-View 1.0.0-alpha06
22 gennaio 2020
androidx.camera:camera-view:1.0.0-alpha06
viene rilasciato. La versione 1.0.0-alpha06 contiene questi commit.
regolari
- Vari fix e aggiornamenti per supportare le modifiche di Camera Core e Camera2.
Camera-Extensions versione 1.0.0-alpha05
18 dicembre 2019
androidx.camera:camera-extensions:1.0.0-alpha05
viene rilasciato. La versione 1.0.0-alpha05 contiene questi commit.
Correzioni di bug
- Aggiornato in base alle API Camera Core interne.
Versione Camera-View 1.0.0-alpha05
18 dicembre 2019
androidx.camera:camera-view:1.0.0-alpha05
viene rilasciato. La versione 1.0.0-alpha05 contiene questi commit.
Problemi noti
- Le proporzioni potrebbero non essere corrette quando si utilizza PreviewView (b/146215202).
Nuove funzionalità
- È stata implementata una nuova classe denominata
PreviewView.TextureViewImplementation
che sincronizza il ciclo di vita di SurfaceTexture con l'utilizzo della superficie di TextureView da parte della fotocamera.
Estensioni della fotocamera versione 1.0.0-alpha04
4 dicembre 2019
androidx.camera:camera-extensions:1.0.0-alpha04
viene rilasciato. La versione 1.0.0-alpha04 di camera-extensions contiene questi commit
Modifiche all'API
Il controllo della disponibilità e dell'attivazione di un'estensione ora accetta un
CameraSelector
come parametro di input. Deve essere lo stessoCameraSelector
utilizzato per l'associazione del caso d'uso.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)
Devi inizializzare le estensioni prima di utilizzare la libreria delle estensioni.
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() )
Versione Camera-View 1.0.0-alpha04
4 dicembre 2019
androidx.camera:camera-view:1.0.0-alpha04
viene rilasciato. La versione 1.0.0-alpha04 di camera-view contiene questi commit
Modifiche all'API
- È fornita una classe
PreviewView
per visualizzare facilmente l'output del caso d'uso Anteprima in un'applicazione. PreviewView
può essere incluso nel layout:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
fornisce unPreviewSurfaceProvider
per collegare facilmente un caso d'uso di Anteprimapreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
"
ZoomLevel
" ora è "ZoomRatio
" nella denominazione delle APILa nullabilità di alcuni parametri di metodo è cambiata
Estensioni della videocamera e Visualizzazione della videocamera versione 1.0.0-alpha03
9 ottobre 2019
androidx.camera:camera-extensions:1.0.0-alpha03
e androidx.camera:camera-view:1.0.0-alpha03
vengono rilasciati. Questi sono i commit inclusi in camera-extensions:1.0.0-alpha03
e questi sono i commit inclusi in camera-view:1.0.0-alpha03
.
Nuove funzionalità
- È stato aggiunto l'inizializzatore di contesto per le estensioni. Versione delle estensioni incrementata a 1.1.0
Estensioni della fotocamera e Visualizzazione della fotocamera versione 1.0.0-alpha02
5 settembre 2019
androidx.camera:camera-extensions:1.0.0-alpha02
e
androidx.camera:camera-view:1.0.0-alpha02
vengono rilasciati. Questi sono i
commit inclusi in camera-extensions:1.0.0-alpha02
e questi sono i commit inclusi
camera-view:1.0.0-alpha02.
- Sono stati aggiunti test per verificare che
PreviewImageProcessorImpl
abbia implementato correttamente i timestamp. - Correggi l'errore di test
ExtensionTest
su Nexus 5 (livello API 21) e assicurati che l'anteprima sia disponibile.
Estensioni della videocamera e Visualizzazione videocamera versione 1.0.0-alpha01
7 agosto 2019
androidx.camera:camera-extensions:1.0.0-alpha01
e
androidx.camera:camera-view:1.0.0-alpha01
vengono rilasciati.
Questi sono i
commit inclusi in camera-extensions:1.0.0-alpha01
e questi sono i commit inclusi
camera-view:1.0.0-alpha01
- Nuova libreria per le future Estensioni della fotocamera per accedere agli effetti sui dispositivi supportati. Questa raccolta è in fase di sviluppo.
- Nuova classe di visualizzazione della videocamera. Questa raccolta è in fase di sviluppo.