CameraX
La seguente tabella elenca tutti gli elementi nel gruppo androidx.camera.
| Artefatto | Release stabile | Candidato per la release | Release beta | Release alpha |
|---|---|---|---|---|
| camera-camera2 | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-core | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-compose | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-effects | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-extensions | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-feature-combination-query | - | - | - | 1.5.0-alpha06 |
| camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha06 |
| camera-lifecycle | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-mlkit-vision | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-view | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
| camera-video | 1.6.2 | 1.7.0-rc01 | - | - |
Test dei dispositivi
CameraX viene testato su molti dispositivi nel nostro lab. Per visualizzare un elenco dei dispositivi attualmente nel lab, consulta Dispositivi testati in laboratorio con CameraX.
Dichiara le dipendenze
Per aggiungere una dipendenza da CameraX, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti 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.7.0-rc01" // 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.7.0-rc01" // 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 segnalare un nuovo problema, 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 saperne di più, consulta la documentazione di Issue Tracker.
Camera Viewfinder Compose versione 1.0
Versione 1.0.0-alpha02
12 giugno 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha02 è stato 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 è stato rilasciato. La versione 1.0.0-alpha01 contiene questi commit.
Nuove funzionalità
- Nuova raccolta. Questa libreria introduce un composable Viewfinder nativo di Compose, che può essere utilizzato con CameraX e Camera2. Il Viewfinder componibile supporta diversi formati e la gestione degli eventi touch.
Versione 1.4 di Camera Viewfinder
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 sono state rilasciate. 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 sono state rilasciate. La versione 1.4.0-alpha06 contiene questi commit.
Modifiche alle API
- Rinomina gli enum
ImplementationModediViewfinderper riflettere meglio le implementazioni sottostanti e aggiungi costanti fisse perTransformationInfo.sourceRotation. (Ic6149) - È stato aggiunto
ZoomGestureDetector.ZoomEventper incapsulare gli stati di un gesto di zoom. (I84cdf)
Versione 1.7
Versione 1.7.0-rc01
21 ottobre 2026
androidx.camera:camera-*:1.7.0-rc01 è stato rilasciato. La versione 1.7.0-rc01 contiene questi commit.
Modifiche alle API
UseCaseCamera2Interop,ImageCaptureCamera2Interop,SessionConfigCamera2InteropeCameraControlCamera2Interopsono state convertite da interfacce in classi astratte. (If654e)- Risolto il problema di ambiguità di Camera2Interop V2 (I1bbe5)
Correzioni di bug
- Risolto un arresto anomalo nativo di
SIGSEGVnel threadCameraXOpenGLquando unSurfaceProcessorrilasciava unSurfaceTexturedi input il cuiSurfaceRequestveniva sottoposto a garbage collection prima del completamento. (I76f73, b/563673593) - Risolto un problema di perdita di superficie e un arresto anomalo nativo di
OpenGLche poteva verificarsi durante la garbage collection quando l'esecutore di unCameraEffectoHandlerThreadveniva arrestato prima della chiusura diSurfaceOutputdell'effetto. (Ifcc19, b/558819242) - Miglioramento del comportamento della modalità Luce scarsa: la modalità Luce scarsa e la torcia ora seguono una policy "vince l'ultima impostazione", in base alla quale l'attivazione di una disattiva automaticamente l'altra, anziché rifiutare la richiesta. Inoltre, ora il flash può attivarsi durante l'acquisizione di immagini mentre è attiva la funzionalità Luce scarsa +. (Ie583f)
- La dipendenza
androidx.lifecycle:lifecycle-runtimeè stata aggiornata alla versione 2.10.0. Questa versione è necessaria per eseguire i controlli lint del runtime del ciclo di vita in bundle con AGP versione 9.5.0-alpha04 o successive. (I99bfd, b/556807521) - Supporto per l'ottenimento di
CameraSelectorsu fotocamere fisiche daCameraInfo.getPhysicalCameraInfos()e l'associazione diUseCasesa fotocamere fisiche. La query diCameraInfocon unCameraSelectorfisico ora restituisce ilCameraInfofisico anziché ilCameraInfologico. (Ibe7f2) - Chiarito il Javadoc
OutputOptions.Builder.setLocationche solo la latitudine e la longitudine sono memorizzate nei metadati del video. (I77d3b, b/551348846) - Risolto un bug in
ImageAnalysisper cui la modifica dinamica della rotazione dell'output o l'annullamento dell'associazione del caso d'uso poteva causare una perdita di risorse Surface/ImageReader. (I25cef) CameraInfo.getIntrinsicZoomRatio()ora arrotonda il rapporto restituito a due cifre decimali. (Ibe9a8)- È stato reso meno rigido il controllo
HardwareBuffer.isSupportedper il formatoPRIVATEinImageAnalysisper evitare errori di falsi negativi su alcuni dispositivi. (I347a4, b/545866947) - È stato corretto un arresto anomalo della compilazione sulle versioni più recenti di JDK durante la risoluzione delle annotazioni dei tipi JSpecify importate in modo transitivo sui campi interni di
CameraX. (I00bb4, b/543937345)
Versione 1.7.0-alpha03
12 agosto 2026
androidx.camera:camera-*:1.7.0-alpha03 è stato rilasciato. La versione 1.7.0-alpha03 contiene questi commit.
Modifiche alle API
- Sono state ritirate le API Camera2Interop legacy (
Camera2Interop.Extender,Camera2CameraControl,Camera2CameraInfoeCaptureRequestOptions) a favore dei metodi di configurazione di fabbricaCamera2Interope delle funzioni di estensione Kotlin. (Ib0845, b/529609261) - Sono stati aggiunti i blocchi di estensione Kotlin DSL
camera2Interopperpreview,imageAnalysis,videoCapture,imageCaptureeSessionConfig.Builder, nonché la funzione di estensioneCameraControl.applyCamera2InteropAsync. (I51af9, b/529609261) - Sono stati aggiunti nuovi metodi factory del configuratore
Camera2Interop(forUseCase,forImageCapture,forSessionConfig,forCameraControl) e i metodisetInterop/applyInteropAsynccorrispondenti suPreview.Builder,ImageCapture.Builder,ImageAnalysis.Builder,VideoCapture.Builder,SessionConfig.BuildereCameraControl. (I0007b, b/529609261) - Sono stati aggiunti metodi helper a
Camera2Interope proprietà di estensione Kotlin equivalenti (CameraInfo.cameraId,CameraInfo.cameraCharacteristicseString.toCameraSelector()) per recuperare l'ID e le caratteristiche della fotocamera Camera2 daCameraInfo. (I11803, b/529609261) - Sono stati aggiunti
Preview.setMirrorMode,Preview.getMirrorModeeVideoCapture.setMirrorModealle API pubbliche ed è stata rimossa l'annotazioneExperimentalMirrorMode. (I4ed60, b/519794349, b/470629643) - Sono stati aggiunti i builder Kotlin DSL
preview{ … },imageCapture{ … },imageAnalysis{ … } evideoCapture{ … } per la creazione diUseCases. (I91df9, b/530013719) - Modificato ImagePlane.buffer in modo che sia un ByteBuffer non nullable. (I98593)
- Sono stati ritirati i getter delle proprietà su
SessionConfig.Builder,HighSpeedVideoSessionConfig.BuildereExtensionSessionConfig.Builderin Kotlin DSL per applicare le proprietà di sola scrittura. (I2875b, b/534570559)
Correzioni di bug
- Risolto un problema per cui l'associazione di più casi d'uso
Previewcon unOverlayEffectcausava un errore di pubblicazione dello stream di anteprima. (I7a383, b/532577546, b/532924417) - Risolto un problema per cui
Recording.pause()eRecording.resume()non funzionavano quando si cambiava videocamera durante una registrazione video persistente. (I71004, b/532327691, b/367121726) - Sono stati corretti gli arresti anomali di HAL quando si utilizza Zero-Shutter Lag (ZSL) durante lo zoom oltre i limiti della fotocamera fisica su dispositivi con più fotocamere. (I1c374, b/527782712, b/514757157)
- Risolto un problema per cui la registrazione di video HDR poteva non riuscire sui dispositivi Samsung Galaxy S25, S26 e Fold 7. (Ic0827, b/529618629)
Versione 1.7.0-alpha02
1° luglio 2026
androidx.camera:camera-*:1.7.0-alpha02 è stato rilasciato. La versione 1.7.0-alpha02 contiene questi commit.
Modifiche alle API
CameraXViewfinderora supporta i gesti integrati per pizzicare per aumentare lo zoom e toccare per mettere a fuoco, oltre ad aggiungere il supporto per il flash dello schermo e lo stato dello stream.FocusStateè ora pubblico in viewfinder-core per consentire il monitoraggio dei risultati della messa a fuoco con tocco. (I66a17, b/522549890)- È stato aggiunto
isAutoRotationEnabledaSessionConfig.Builder,HighSpeedVideoSessionConfig.Builder,ExtensionSessionConfig.Buildere sono state introdotte le funzioni di factory Kotlin DSL per questi elementi. In questo modo, la rotazione appropriata viene impostata automaticamente in base ai sensori del dispositivo. (I5b4a3, b/510752515) - È stata aggiunta la proprietà
TransformationModeaTransformationInfoper supportare le app nell'utilizzo della pipelineOpenGLin modalitàEMBEDDED. (Id1de1, b/487826941) - Aggiunta di
isNightModeIndicatorSupported()egetNightModeIndicator()aCameraInfoper determinare quando le condizioni ambientali soddisfano i criteri per la modalità notturna. (Iae47b, b/499389465) - ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE e ImageProxy.getHardwareBuffer() sono stati esposti come API pubblica per supportare ImageAnalysis basata su GPU. (I41cb3, b/496022391, b/492934501)
- ExtensionsManager#getExtensionEnabledCameraSelector è ora deprecato. Utilizza la nuova API ExtensionSessionConfig per attivare le modalità di estensione. (I2b336, b/473715607)
- Aggiunto il supporto per lo stile visivo dei frame della fotocamera durante la composizione simultanea della fotocamera. Ora puoi personalizzare:
- Angoli arrotondati: utilizza setRoundedCornerRatio(float) per applicare l'arrotondamento normalizzato (da 0,0 a 1,0) ai bordi del frame.
- Bordi: utilizza setBorderWidthRatio(float) e setBorderColor(int) per aggiungere una cornice decorativa con uno spessore coerente (I18a07, b/366349205)
- Aggiornato CompositionSettings per applicare un ordine z non negativo e aggiunta la convalida a ConcurrentCamera.setCompositionSettings per garantire che venga chiamato con il numero corretto di impostazioni in una modalità di composizione valida. (If660d, b/496951658)
- Sono stati aggiunti getNightModeIndicator() e isNightModeIndicatorAvailable() a CameraExtensionsInfo per consentire alle applicazioni di monitorare se l'ambiente corrente è in modalità notturna quando si utilizzano le estensioni della fotocamera. (I62bb4, b/499389465)
- È stato aggiunto il supporto per la qualità video
QHDin VideoCapture. (I0ac20, b/501305592) - Sono stati aggiunti
Recorder.Builder.setTargetAudioChannelCount(int)eRecorder.getTargetAudioChannelCount()per consentire agli sviluppatori di impostare un numero esplicito di canali audio. (I6bee0, b/441895100) - Aggiunto
Recorder.Builder.setTargetAudioEncodingBitRate(int)per consentire l'impostazione di un bitrate di codifica audio target. (I29062, b/241151504) - È stata aggiunta l'API ConcurrentCamera.setCompositionSettings per consentire alle app di aggiornare dinamicamente la composizione della fotocamera corrente dopo l'associazione del ciclo di vita. Inoltre, una nuova API setZOrder in CompositionSettings.Builder consente un controllo preciso sull'ordine di rendering degli stream della videocamera sovrapposti. (I90528, b/473702287)
- Sono state introdotte API per il controllo granulare dei formati di codifica. Gli sviluppatori ora possono scoprire i formati supportati dal dispositivo utilizzando
Recorder.getSupportedVideoMimeTypes()egetSupportedAudioMimeTypes(), che sono attualmente sperimentali. I formati preferiti possono essere configurati esplicitamente tramiteRecorder.Builder.setVideoMimeType()esetAudioMimeType(). Inoltre,Recorder.getVideoCapabilities(CameraInfo, String)consente di eseguire query sulle funzionalità specifiche della fotocamera, come le qualità e le gamme dinamiche supportate, per un codec scelto. (I4620e, b/491319384) - È stato aggiunto CameraController.setAutoRotationEnabled(boolean) per consentire la disattivazione del listener di rotazione automatica del dispositivo. (Ia0c03, b/449573627)
- Aggiunto il supporto del blocco AE/AWB in FocusMeteringAction tramite una nuova API setLockingMode. In questo modo è anche possibile aggiornare le regioni 3A senza bloccare la messa a fuoco, consentendo alla fotocamera di rimanere in modalità di messa a fuoco automatica continua durante l'aggiornamento dell'area di messa a fuoco. (I6416f, b/481624745)
Correzioni di bug
- Rimuovi il requisito per
compileSdk 37(If78b4) - Risolti
CameraXViewfinderproblemi di trasformazione in modalitàEMBEDDEDquando la pipelineOpenGLè attivata daCameraXper l'associazione di piùUseCaseso l'elaborazione della superficie. (I3e637, b/487826941) - Aggiornamento di test e attività per l'utilizzo di ExtensionSessionConfig anziché dell'API getExtensionEnabledCameraSelector deprecata. (I765d8, b/473715607)
- Risolto un errore di compilazione "Impossibile accedere alla classe 'ListenableFuture'". (Ic8cba, b/497571473)
- Aggiornamento di compileSdk di Compose all'API 37. Ciò significa che, se utilizzi Compose, è richiesta una versione minima di AGP 9.2.0. (Id45cd, b/413674743)
Versione 1.7.0-alpha01
11 marzo 2026
androidx.camera:camera-*:1.7.0-alpha01 è stato rilasciato. La versione 1.7.0-alpha01 contiene questi commit.
Modifiche alle API
- Esposta l'API
CameraController.setSessionConfig(). In questo modo è possibile fornire unSessionConfigpersonalizzato per configurazioniUseCaseavanzate non esposte direttamente daCameraController. Quando unSessionConfigè attivo, gli altri metodi di configurazione suCameraControllersono disattivati.(I35cf1, b/448525636)
Correzioni di bug
- Sposta le librerie per utilizzare il target Java 11. Ciò significa che il bytecode prodotto sarà Java 11 (versione file di classe 55) e potrebbe richiedere il desugaring per utilizzare la libreria (If4c2a, b/457821470)
- È stato corretto un bug in
ImageAnalysisper cui le immagini non venivano ruotate correttamente quando la rotazione dell'immagine di output è attiva e la rotazione relativa iniziale è di 0 gradi. (Id46c2, b/487160584)
Versione 1.6 della videocamera
Versione 1.6.2
26 agosto 2026
androidx.camera:camera-*:1.6.2 è stato rilasciato. La versione 1.6.2 contiene questi commit.
Correzioni di bug
- È stato corretto un arresto anomalo della compilazione sulle versioni più recenti di JDK durante la risoluzione delle annotazioni dei tipi JSpecify importate in modo transitivo sui campi interni di
CameraX. (I00bb4, b/543937345)
Versione 1.6.1
6 maggio 2026
androidx.camera:camera-*:1.6.1 è stato rilasciato. La versione 1.6.1 contiene questi commit.
Correzioni di bug
- È stato corretto un errore di compilazione "Impossibile accedere alla classe
ListenableFuture" quando si utilizza CameraX 1.6.0. (Ic8cba, b/497571473)
Versione 1.6.0
25 marzo 2026
androidx.camera:camera-*:1.6.0 è stato rilasciato. La versione 1.6.0 contiene questi commit.
Modifiche importanti dalla versione 1.5.0:
1. Migrazione a uno stack di fotocamere unificato ad alte prestazioni
- CameraX ora utilizza
CameraPipe, lo stesso stack moderno e ad alte prestazioni che alimenta la fotocamera Pixel. Questa transizione semplifica l'efficienza dell'architettura e fornisce una base scalabile per portare funzionalità avanzate di fotografia computazionale nell'ecosistema degli sviluppatori.
2. Integrazione di Media3 Muxer
- CameraX ora integra il muxer Media3 per impostazione predefinita nell'API VideoCapture. Questa migrazione offre diversi vantaggi:
- Prestazioni migliorate: elaborazione e muxing dei video più efficienti.
- Resilienza agli arresti anomali:protezione migliorata contro il danneggiamento dei file video, per garantire la conservazione dei dati anche se l'applicazione si arresta in modo anomalo durante la registrazione.
3. Miglioramento del gruppo di caratteristiche
- L'API Feature Group ora supporta la stabilizzazione video e la registrazione in 4K.
GroupableFeaturesincludeVIDEO_STABILIZATION,UHD_RECORDINGper consentire alle app di attivarli insieme ad altre funzionalità.CameraEffecteImageAnalysisinSessionConfigsono supportati quando il gruppo di funzionalità è abilitato.
4. API SessionConfig stabilizzata
SessionConfigè passata da sperimentale ad API pubblica completamente stabile, tra cuiSessionConfigeHighSpeedVideoSessionConfig. Le estensioni CameraX ora possono essere implementate con una nuova APIExtensionSessionConfig. È stata introdotta una nuova APIisSessionConfigSupported, che consente agli sviluppatori di verificare se una combinazione specifica di casi d'uso e funzionalità (come HDR, stabilizzazione, risoluzioni specifiche, estensioni CameraX o slow motion) è supportata dal dispositivo prima di eseguire l'associazione al ciclo di vita.
Correzioni di bug
- È stato corretto un arresto anomalo che si verifica su alcuni dispositivi Android 17 (API 37) o versioni successive. Quando questi dispositivi espongono nuovi profili di intervallo dinamico (ad es. STANDARD_SMPTE_2094_50(ID 8192)) sconosciuti alla versione 1.5.1 e precedenti di CameraX, la libreria in precedenza non riusciva a gestire questi ID in modo appropriato, causando un
NullPointerExceptiono unIllegalArgumentExceptionduranteProcessCameraProvider.bindToLifecycle(). Questa correzione consente a CameraX di ignorare correttamente i profili di intervallo dinamico non riconosciuti, evitando l'arresto anomalo e mantenendo la compatibilità con le versioni successive. Aggiorna la dipendenza CameraX alla versione 1.5.2 o 1.6.0 (o successive) per evitare questo problema sui dispositivi che espongono questi nuovi profili. Per maggiori dettagli, consulta il problema 519796838. (Ibd7b5) - L'API Groups ora fornisce risultati coerenti quando
PREVIEW_STABILIZATIONviene utilizzato conVideoCapture. In questo modo viene corretto un bug che causava risultati incoerenti quando un caso d'uso di Anteprima non era attivo. (Ifed82, b/449913903) - Risolto un problema per cui le funzionalità preferite non supportate venivano rese disponibili per errore. Le funzionalità ora vengono filtrate correttamente quando i casi d'uso richiesti non vengono soddisfatti. (I38db8, b/449532342)
- Risolto il problema dei risultati video instabili su Samsung Galaxy S6. (I612d9, b/235127608)
- Risolto un problema per cui
CameraInfo#isFeatureGroupSupportedpoteva restituire erroneamente true perPREVIEW_STABILIZATIONseSessionConfignella query era già configurato con altre funzionalità. (I2c355c, b/437816469) - Sono state escluse le dimensioni di output problematiche del formato YUV dal dispositivo Samsung Z Fold 4. Le immagini ricevute presentano un problema di distorsione quando vengono utilizzate queste dimensioni di output. (I776bf, b/460322307)
- Risolto un problema specifico del dispositivo Samsung A53 per cui l'acquisizione di immagini con la torcia attivata a volte non andava a buon fine se era associato il caso d'uso
VideoCapture. (I0f183, b/458197367) - Risolve un problema su alcuni dispositivi per cui l'utilizzo del flash con la fotocamera ultrawide potrebbe causare immagini sottoesposte. (Ib7530, b/444590340)
- Aggiornata la dipendenza
ExifInterfaceper includere una correzione per l'analisi dei JPEG con spaziatura interna0xFF, che risolve gli errori di acquisizione delle immagini sui dispositivi in cui l'encoder JPEG aggiunge byte di riempimento prima degli indicatori. (I0eb49)
Versione 1.6.0-rc01
25 febbraio 2026
androidx.camera:camera-*:1.6.0-rc01 è stato rilasciato. La versione 1.6.0-rc01 contiene questi commit.
Versione 1.6.0-beta02
11 febbraio 2026
androidx.camera:camera-*:1.6.0-beta02 è stato rilasciato. La versione 1.6.0-beta02 contiene questi commit.
Correzioni di bug
- Risolto il problema relativo all'acquisizione in memoria di
ImageCaptureOUTPUT_FORMAT_RAW_JPEGIllegalArgumentException. (Id4eec, b/479990902) - Migrazione al muxer AndroidX Media3. In questo modo sono stati risolti: 1: il danneggiamento dei video durante interruzioni impreviste o la chiusura dell'app e 2: gli arresti anomali durante il salvataggio dei video nei descrittori dei file proxy. (I23b63, b/433649708, b/264812009, b/475750115)
Versione 1.6.0-beta01
28 gennaio 2026
androidx.camera:camera-*:1.6.0-beta01 è stato rilasciato. La versione 1.6.0-beta01 contiene questi commit.
Correzioni di bug
- Risolto il problema relativo al tipo corrente
CameraExtensionsInfoin CameraX 1.6.0-alpha per cui l'oggetto LiveData non può ricevere i dati del tipo aggiornato. (I2c7a5) - Aggiornata la dipendenza ExifInterface per includere una correzione per l'analisi dei JPEG con spaziatura interna 0xFF, che risolve gli errori di acquisizione delle immagini sui dispositivi in cui il codificatore JPEG aggiunge byte di riempimento prima degli indicatori. (I0eb49)
Versione 1.6.0-alpha02
17 dicembre 2025
androidx.camera:camera-*:1.6.0-alpha02 è stato rilasciato. La versione 1.6.0-alpha02 contiene questi commit.
Nuove funzionalità
- È stata aggiunta una funzionalità raggruppabile per indicare la funzionalità di stabilizzazione video in una configurazione della sessione. Ora gli sviluppatori possono richiedere la stabilizzazione video come funzionalità obbligatoria o preferita, allineandola ad altre funzionalità raggruppabili come UHD_RECORDING, PREVIEW_STABILIZATION. (Ic6757, b/419766630)
- Sono state aggiunte funzionalità raggruppabili per indicare la qualità della registrazione video in una configurazione della sessione. Gli sviluppatori ora possono richiedere una qualità specifica (ad es. UHD, FHD) come funzionalità obbligatoria o preferita, allineandola ad altre funzionalità raggruppabili come HDR e 60 FPS. (Ib5cd3, b/437820285)
- Aggiunto il supporto per l'utilizzo sia di
CameraEffectsia dell'API dei gruppi di caratteristiche inSessionConfig. (I17f18, b/406370934) - Aggiunto il supporto per l'utilizzo sia di
ImageAnalysissia dell'API dei gruppi di caratteristiche inSessionConfig. (I87833, b/406371720)
Modifiche alle API
- Aggiunta la funzione di impostazione
addUseCaseperExtensionSessionConfig.Buildere aggiunti i getter mancanti perExtensionSessionConfig. (I71e07, b/453988621) - È stata aggiunta l'API
ExtensionsManager.getInstance, che è una versione di sospensione diExtensionsManager.getInstanceAsync(I3a0a9, b/452208792) isFeatureGroupSupportedè stato rinominato inisSessionConfigSupportede ora supporta tutti i tipi diSessionConfig. (I21616, b/448781299)ExtensionsManagerconvertito in implementazione Kotlin. (I73091, b/452208792)- È stato aggiunto
CameraProvider#getCameraInfo(CameraSelector, SessionConfig)per recuperareCameraInfoquandoSessionConfigpuò influire sulla selezione della fotocamera. Ad esempio, quando utilizzi unExtensionSessionConfig. (Ic548c, b/451891648) - API
ExtensionSessionConfigesposta. Le app possono creare unExtensionSessionConfige utilizzarlo per creare una sessione di estensioni ora. (I6354c, b/448524373) - L'API
androidx.camera.video.HighSpeedVideoSessionConfignon è più sperimentale ed è ora un'API pubblica completamente stabile. (I492d4, b/447558239) - L'API
androidx.camera.core.SessionConfignon è più sperimentale ed è ora un'API pubblica completamente stabile. (Idc87a, b/447558437)
Correzioni di bug
- Risolto un arresto anomalo dovuto a un
IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object:su Android 17 o versioni successive. (Ibd7b5, b/463465353) - Sono state escluse le dimensioni di output problematiche del formato YUV dal dispositivo Samsung Z Fold 4. Le immagini ricevute presentano un problema di distorsione quando vengono utilizzate queste dimensioni di output. (I776bf, b/460322307)
- È stato risolto il problema per cui
CaptureRequest.FLASH_MODEnon veniva applicato se impostato tramite l'APICamera2Interop. (I0004c, b/459608684) - Risolto un problema specifico del dispositivo Samsung A53 per cui l'acquisizione di immagini con la torcia attivata a volte non andava a buon fine se era associato il caso d'uso
VideoCapture. (I0f183, b/458197367) - Risolve un problema su alcuni dispositivi per cui l'utilizzo del flash con la fotocamera ultrawide potrebbe causare immagini sottoesposte. (Ib7530, b/444590340)
Versione 1.6.0-alpha01
22 ottobre 2025
androidx.camera:camera-*:1.6.0-alpha01 è stato rilasciato. La versione 1.6.0-alpha01 contiene questi commit.
Nuove funzionalità
- CameraX è stato migrato a uno stack della fotocamera unificato e ad alte prestazioni, utilizzato anche dall'app Fotocamera Pixel. Questo nuovo stack, noto come
CameraPipe, è il risultato di una collaborazione tra i team di CameraX e Fotocamera Pixel. In questo modo, tutti i miglioramenti vengono condivisi, a vantaggio sia degli utenti di CameraX sia dell'app Fotocamera Pixel.
Modifiche alle API
- Sono state aggiunte nuove API per il rilevamento dinamico dell'aggiunta/rimozione della fotocamera. Per ulteriori dettagli, consulta l'API
CameraPresenceListener. (I41ead, b/427182232, b/419441394)
Correzioni di bug
- L'API Groups ora fornisce risultati coerenti quando
PREVIEW_STABILIZATIONviene utilizzato conVideoCapture. In questo modo viene corretto un bug che causava risultati incoerenti quando non era attivo anche un caso d'usoPreview. (Ifed82, b/449913903) - Risolto un problema per cui le funzionalità preferite non supportate venivano rese disponibili per errore. Le funzionalità ora vengono filtrate correttamente quando i casi d'uso richiesti non vengono soddisfatti. (I38db8, b/449532342)
- Risolto il problema dei risultati video instabili su Samsung Galaxy S6. (I612d9, b/235127608)
- Risolto un problema per cui
CameraInfo#isFeatureGroupSupportedpoteva restituire erroneamente true perPREVIEW_STABILIZATIONseSessionConfignella query era già configurato con altre funzionalità. (I2c355c, b/437816469)
Versione 1.5 della fotocamera
Versione 1.5.3
28 gennaio 2026
androidx.camera:camera-*:1.5.3 è stato rilasciato. La versione 1.5.3 contiene questi commit.
Correzioni di bug
- Aggiornata la dipendenza ExifInterface alla versione 1.4.2. In questo modo viene corretto un errore di acquisizione delle immagini che si verifica sui dispositivi che producono JPEG con byte 0xFF aggiuntivi (e consentiti) prima di un indicatore. (I16df4)
Versione 1.5.2
4 dicembre 2025
androidx.camera:camera-*:1.5.2 è stato rilasciato. La versione 1.5.2 contiene questi commit.
Correzioni di bug
- Risolto un arresto anomalo dovuto a un
IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object:su Android 17 o versioni successive. (Ic9184) - Risolto un bug che causava risultati incoerenti dell'API Groups quando la caratteristica
PREVIEW_STABILIZATIONveniva aggiunta con il caso d'usoVideoCapture, ma senza il caso d'usoPreview. (Ifed82) - È stato risolto il problema per cui le funzionalità preferite non venivano filtrate nonostante non fossero presenti i casi d'uso richiesti per il supporto delle funzionalità. (I38db8)
Versione 1.5.1
8 ottobre 2025
androidx.camera:camera-*:1.5.1 è stato rilasciato. La versione 1.5.1 contiene questi commit.
Correzioni di bug
- Supporto di
CameraEffectin modalità di composizione della videocamera simultanea. L'effetto verrà applicato all'output della composizione. Tieni presente chemirrorModeinVideoCaptureverrà ignorato quando l'effetto è impostato in modalità di composizione della videocamera simultanea. (If3d00, b/425565129) - Risolto il problema per cui
mirrorModenon veniva applicato correttamente alla videocamera secondaria nella modalità di composizione della videocamera simultanea. (I686cd, b/446430827) - Supporta l'associazione di
Preview,ImageCaptureeVideoCapturein modalità non composizione della fotocamera simultanea. (Ib410a, b/443009871) - Risolto un problema per cui UseCase come
ImageCaptureeVideoCaptureperdevano le informazioni sulla rotazione target se venivano ricreati. Ciò potrebbe causare un orientamento errato delle immagini o dei video se un'impostazione comeimageCaptureModeè stata modificata dopo la rotazione del dispositivo. (I477c8, b/444734537) - Risolto un problema che impediva ad Anteprima di selezionare risoluzioni 16:9 e a
VideoCapturedi registrare con QUALITY_1080P. Questo problema si è verificato quando è stata utilizzata una configurazione predefinita della risoluzione di Preview mentre era attiva la funzionalità internaStreamSharing(ad esempio, quando quattro UseCase sono associati contemporaneamente). (I493cb, b/440364875) - È stato corretto l'arresto anomalo che si verificava quando l'effetto veniva attivato dopo l'arresto di
SurfaceProcessor(I2c450, b/414150174) - Risolto un bug in
CameraControllerche causava unIllegalStateExceptionquando un UseCase iniziale selezionava la risoluzione massima, impedendo successivamente l'associazione di altri UseCase. (Ifb758, b/440374234) - Esclude le dimensioni di output YUV_420_888 problematiche per Nokia 7 Plus che causano il problema di errore silenzioso senza che vengano segnalati messaggi di errore. (I3af47, b/436524501)
- Risolto un problema per cui
CameraInfo#isFeatureGroupSupportedpoteva restituire erroneamente true per la funzionalitàPREVIEW_STABILIZATION. Questo potrebbe verificarsi a volte quando si esegue una query con unSessionConfiggià configurato con altre funzionalità. (I2c355, b/437816469) - Stabilità di
CameraXViewfindermigliorata su livelli API precedenti e dispositivi con problemi diSurfaceViewutilizzandoTextureViewcome impostazione predefinita in questi scenari. Questo meccanismo di riserva è la nuova impostazione predefinita, ma può essere sottoposto a override in modo programmatico. (Ieb476, b/437496463) - Risolta una perdita di memoria in
PreviewViewche poteva impedire la garbage collection della relativa attività. Questo accade se un nuovoSurfaceRequestarriva prima che quello precedente venga gestito. (I4aa0b,b/443112512) - Risolto il problema per cui la registrazione ad alta velocità/in slow motion non riusciva su Huawei P smart, Infinix Hot 40i e Realme C53. (40a668e, b/442984200)
Versione 1.5.0
10 settembre 2025
androidx.camera:camera-*:1.5.0 è stato rilasciato. La versione 1.5.0 contiene questi commit.
Modifiche importanti dalla versione 1.4.0:
- Registrazione ad alta velocità e in slow motion: integra facilmente la registrazione di video ad alta velocità (120/240 f/s) e in slow motion con un codice minimo. Per maggiori dettagli, consulta
Recorder#getHighSpeedVideoCapabilities(CameraInfo)eHighSpeedVideoSessionConfig. - API
SessionConfigeFeatureGroup: la nuova APISessionConfigti consente di configurare la sessione della fotocamera e di attivare più funzionalità contemporaneamente in modo sicuro, tra cui HLG (HDR), Ultra HDR, 60 FPS e stabilizzazione dell'anteprima. Puoi anche impostare un gruppo di funzionalità preferibile con priorità, consentendo a CameraX di determinare la combinazione supportata ottimale. Per saperne di più, consultaSessionConfig.Builder#setPreferredFeatureGroup,SessionConfig.Builder#setRequiredFeatureGroupeCameraInfo#isFeatureGroupSupported(SessionConfig). - API Deterministic Frame Rate: risolvi le limitazioni precedenti con
setTargetFrameRateutilizzandoCameraInfo.getSupportedFrameRateRanges(sessionConfig)per eseguire query eSessionConfig.setExpectedFrameRateRangeper impostare frequenze fotogrammi precise e supportate. - Estensioni della fotocamera: il formato UltraHDR è ora supportato con le estensioni. Controlla
ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats()e attivalo inImageCapture.Builder.setOutputFormat. Le funzionalità di rapporto di zoom e stabilizzazione dell'anteprima ora vengono applicate quando le estensioni sono attive. - Intensità della torcia: regola l'intensità della torcia utilizzando
CameraControl.setTorchStrengthLevel. - Modalità Boost per luce scarsa: puoi attivare la modalità Boost per luce scarsa(
CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) tramite le seguenti API: consultaCameraInfo#isLowLightBoostSupported,CameraInfo#getLowLightBoostStateeCameraControl#enableLowLightBoostAsync. - Acquisizione video:
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEora viene attivato per spazio di archiviazione insufficiente durante la registrazione.PendingRecording.withAudioEnabled(boolean initialMuted)consente di controllare lo stato di disattivazione dell'audio iniziale per la registrazione audio. - Acquisizione di immagini: supporto dei formati DNG (RAW) e JPEG + DNG (RAW) in
ImageCapture. ControllaImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats()per il supporto RAW. Utilizza le APItakePicturein overload con piùOutputFileOptionsper l'acquisizione RAW+DNG. - Analisi delle immagini: supporto del formato NV21 in
ImageAnalysis. Attivalo conImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).
Versione 1.5.0-rc01
13 agosto 2025
androidx.camera:camera-*:1.5.0-rc01 è stato rilasciato. La versione 1.5.0-rc01 contiene questi commit.
Correzioni di bug
- Spostamento del valore minSdk predefinito dall'API 21 all'API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
- È stata rimossa la limitazione dell'output a 10 bit per la modalità di esposizione automatica con rafforzamento della luminosità. Le applicazioni ora possono attivare contemporaneamente entrambe le funzionalità sui dispositivi supportati. (I5a638)
- Risolto un problema che causava il blocco dei dispositivi con chipset
UniSocdurante l'acquisizione di un'immagine. Il problema si è verificato quandoVideoCapture,PrevieweImageCapturesono stati utilizzati contemporaneamente con tutti gli stream impostati su una risoluzione di 1280 x 720. (Ia00c4, b/380802479) - È stata corretta la schermata nera dell'anteprima quando non è impostata una frequenza fotogrammi ad alta velocità per la registrazione ad alta velocità/slow motion. (cdf0ff2e9)
- Migliora la gestione degli errori e il logging in
getViewportAspectRatioInt(82fca18)
Versione 1.5.0-beta02
16 luglio 2025
androidx.camera:camera-*:1.5.0-beta02 è stato rilasciato. La versione 1.5.0-beta02 contiene questi commit.
Modifiche alle API
- Sono state aggiunte nuove API per impostare o eseguire query su gruppi di funzionalità di alta qualità in modo più intuitivo e preciso, poiché queste funzionalità potrebbero non essere supportate come combinazione su tutti i dispositivi.
SessionConfigora contiene nuove API per indicare un gruppo di funzionalità come obbligatorie o preferite. L'APICameraInfo.isFeatureGroupSupportedconsente di sapere se un gruppo di funzionalità è supportato prima di associare unSessionConfig.SessionConfigconsente anche di impostare un listener per sapere quali funzionalità vengono infine selezionate quando viene associata una configurazione della sessione. (Ie4d60) - Sono state aggiunte le nuove API
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)eCameraInfo.getSupportedFrameRateRanges(SessionConfig), che consentono agli sviluppatori di eseguire query sulle frequenze fotogrammi supportate garantite limitate da unSessionConfigspecifico e quindi di applicare la frequenza fotogrammi suSessionConfig. (Ieacf7) - È stata introdotta la nuova API
SessionConfig, che include un'astrazione migliore per la configurazione di casi d'uso, parametri di sessione,CameraEffect,ViewPorte così via. L'associazione di unSessionConfiga un LifecycleOwner apre la sessione della fotocamera, la configura utilizzando i casi d'uso e i parametri di sessione specificati e applica iCameraEffecteViewPortdesignati. Quando aggiorni un nuovoSessionConfigallo stessoLifecycleOwner, puoi semplicemente associare un nuovoSessionconfigsenza dover prima richiamare unbind ounbindAll. (Iedfc3) - Sono state aggiunte nuove API per registrare video ad alta velocità/in slow motion. Per ulteriori dettagli, consulta l'API
HighSpeedVideoSessionConfig. (Ia16f3)
Correzioni di bug
- È stato corretto l'errore per cui l'API
ImageCaptureCapabilities#getSupportedOutputFormats()segnalava i formati RAW come supportati su alcuni dispositivi che in realtà non dispongono della funzionalità RAW. (Ibcadb) - È stata corretta la perdita di memoria che si verifica quando viene utilizzato
PreviewView,CameraEffectè abilitato o vengono associati 4 casi d'uso(StreamSharing) (I87468) - Risolto un arresto anomalo della registrazione video causato da
AssertionError: stato audio interno non valido: IDLING. (I38d4b, b/414259796) - Risolto il problema per cui, quando l'app viene eseguita su un display esterno e il dispositivo è in modalità Orizzontale, l'anteprima in
PreviewViewdiventa allungata o laterale (Ia917a) - Risolto il problema per cui le impostazioni di stabilizzazione dell'anteprima non venivano applicate correttamente quando lo stream della videocamera veniva condiviso tra Anteprima e VideoCapture.(I5430e)
CameraXViewfinderora gestisce correttamente la sostituzione della superficie nelViewfindersottostante. Ciò copre scenari come quando un mirinoEXTERNALsul livello API 28 o precedente si sposta fuori dallo schermo o se unCameraXViewfinder(con qualsiasiImplementationMode) fa parte dimoveableContentOf(). Nei casi in cui non è possibile mantenere attivo l'oggettoViewfinderSurfaceSessionsottostante, l'oggettoCameraXViewfinderinvaliderà l'oggettoSurfaceRequestCameraX corrente, consentendo a CameraX di utilizzare il nuovo oggettoSurface. (I79432)- Risolve un problema su Android 10/11 per cui
EXTERNALCameraXViewfinderpoteva apparire allungato o errato a causa di operazioni di trasformazione (come ridimensionamento o traslazione) applicate troppo presto. Il sistema ora attende la creazione della superficie prima di applicare queste trasformazioni nella fase di layout, garantendo un output corretto. (Icc77c) - Il composable
CameraXViewfinderora funziona correttamente conPagerdi Compose. Questa modifica garantisce che il Composable possa essere reimpostato correttamente implementando il callbackonResetdiAndroidView, supportando le implementazioni diEMBEDDEDeEXTERNAL. (I0d9be) - Risolto un leak del proprietario del ciclo di vita che si verifica quando si scollegano i casi d'uso da un proprietario del ciclo di vita senza arrestare il provider della fotocamera.
Versione 1.5.0-beta01
7 maggio 2025
androidx.camera:camera-*:1.5.0-beta01 è stato rilasciato. La versione 1.5.0-beta01 contiene questi commit.
Modifiche alle API
- I progetti rilasciati con Kotlin 2.0 richiedono KGP 2.0.0 o versioni successive per essere utilizzati (Idb6b5)
ContentScalee Alignment ora possono essere utilizzati nel mirino per ridimensionare e posizionare la superficie visualizzata all'interno del relativo contenitore, in modo simile al comportamento diandroidx.compose.foundation.Image. (Ibcea3)TransformationInfoora ha valori predefiniti per tutti gli argomenti. In questo modo, i Viewfinder verranno creati senzaTransformationInfo, che per impostazione predefinita avrà una rotazione dell'origine pari a 0, nessun mirroring dell'origine e nessun rettangolo di ritaglio. (I2b1b2)- È stato aggiunto
LifecycleCameraProvider, un fornitore di fotocamere di cui è possibile creare un'istanza con configurazioni diverse per funzionalità come l'accesso alla fotocamera di un dispositivo virtuale tramite la configurazione con un contesto personalizzato. (Ia2992)
Correzioni di bug
- Risolto il problema di blocco dell'anteprima quando si utilizza
ImageAnalysiscon un altro stream che utilizzaTEMPLATE_RECORDsul dispositivo Samsung SM-E556B. (Ic0e62, b/409478042) - Risolto il problema di blocco dell'anteprima quando si utilizza
ImageAnalysiscon un altro stream che utilizzaTEMPLATE_RECORDsul dispositivo Samsung SM-M556B. (Ic1a6a, b/395822788) - Risolto il problema relativo alla modalità notturna delle estensioni
AssertErrorsui dispositivi Pixel con Android 15 durante le operazioni relative allo zoom. (I27a5d, b/401460276) - È stato risolto il problema relativo alle coordinate errate del riquadro di delimitazione di ML Kit Analyzer quando si utilizza
CameraController. (Iae91b, b/409808510)
Versione 1.5.0-alpha06
26 febbraio 2025
androidx.camera:camera-*:1.5.0-alpha06 è stato rilasciato. La versione 1.5.0-alpha06 contiene questi commit.
Modifiche alle API
- Sono stati aggiunti
CameraInfo.getTorchStrengthLevel,CameraInfo.getMaxTorchStrengthLeveleCameraControl.setTorchStrengthLevelper consentire la personalizzazione della luminosità della torcia (I00878) - È stata aggiunta una nuova API
CameraController#setTapToFocusAutoCancelDurationper consentire agli utenti di controllare il comportamento di annullamento automatico per gli eventi di messa a fuoco con toccoPreviewView. Per impostazione predefinita, CameraX annulla gli eventi di messa a fuoco dopo 5 secondi (ovvero la messa a fuoco della fotocamera viene reimpostata) e questa API consente di modificare questa durata o di disattivare completamente l'annullamento automatico. (Icf59a) FLASH_STATE_READYè stato rinominato inNOT_FIREDe gli altri nomi delle costantiFlashStatesono stati semplificati per una migliore leggibilità. (I8771d)- API Low Light Boost esposta. I dispositivi con Android 15 o versioni successive possono fornire supporto per la modalità Luce scarsa. Questa funzionalità può regolare automaticamente la luminosità degli stream di anteprima, video o analisi delle immagini in condizioni di scarsa illuminazione. Le applicazioni possono utilizzare la nuova API per: 1. Utilizza
CameraInfo#isLowLightBoostSupportedper verificare la disponibilità della funzionalità. 2. UtilizzaCameraControl#enableLowLightBoostAsyncper attivare la modalità quando i dispositivi la supportano. 3. UtilizzaCameraInfo#getLowLightBoostStateper monitorare lo stato della modalità Luce scarsa. (I937ed) - Aggiungi classi di compatibilità per consentire query più rapide non relative a camera2 in camera-feature-combination-query. (Ie97ee)
- Per gli eventi di messa a fuoco con tocco
CameraController, una nuova APIgetTapToFocusInfoState()ora espone anche la posizione del tocco corrispondente restituendo unLiveDatadella classeTapToFocusInfo, mentre l'APILiveData<Integer>precedente che restituiscegetTapToFocusState()è deprecata a favore della nuova API. (I238d2)
Correzioni di bug
- Risolto il problema per cui la stabilizzazione dell'anteprima non veniva applicata quando era abilitata con le estensioni. (I24ad7)
- Risolto il problema per cui l'evento di stato attivo
CameraControllernon veniva reimpostato suTAP_TO_FOCUS_NOT_STARTEDquando CameraX annullava automaticamente un evento di messa a fuoco che si verifica dopo 5 secondi per impostazione predefinita. (I31954) - Risolto il problema del blocco dell'anteprima quando si utilizza Zero Shutter Lag (ZSL) dopo più acquisizioni a causa di risorse immagine non rilasciate. (Ic3c2a)
- Risolti i problemi per cui su alcuni dispositivi i video UHD avevano una tonalità rossa quando la pipeline coinvolgeva
OpenGL. (Idcedc)
Versione 1.5.0-alpha05
15 gennaio 2025
androidx.camera:camera-*:1.5.0-alpha05 è stato rilasciato. La versione 1.5.0-alpha05 contiene questi commit.
Modifiche alle API
- Aggiungi
VideoCapture.getSelectedQuality()per conoscere la qualità selezionata in base aQualitySelector. (I70508, b/204288986) - Quando viene richiamata un'acquisizione di immagini con l'API
ImageCapture.OnImageCapturedCallback, l'ImageInfo restituito inImageProxypuò ora essere utilizzato per sapere se il flash è stato attivato tramite la nuova APIImageInfo.getFlashState(). (Id2c61, b/380527406) - Aggiunto il supporto del formato di output
OUTPUT_IMAGE_FORMAT_NV21perImageAnalysis. (I484ab) - Rimuovi l'annotazione sperimentale dell'artefatto
featurecombinationquery(I4427f) - Regola l'intervallo del rapporto di zoom consentito per
CameraControlin base alle caratteristiche specifiche delle estensioni quando è attiva una modalità di estensione. (I85af1)
Correzioni di bug
compileSdkè stato aggiornato a 35 per l'utilizzo dell'API relativa ad Android 15. Anche le app che utilizzano le librerie CameraX dovranno eseguire l'upgrade dell'impostazione di configurazionecompileSdk. (Ic80cd)- Questa libreria ora utilizza le annotazioni di nullità JSpecify, che sono di tipo use. Gli sviluppatori Kotlin devono utilizzare il seguente argomento del compilatore per garantire un utilizzo corretto:
-Xjspecify-annotations=strict(questa è l'impostazione predefinita a partire dalla versione 2.1.0 del compilatore Kotlin). (Idc6c6, b/326456246)
Versione 1.5.0-alpha04
11 dicembre 2024
androidx.camera:camera-*:1.5.0-alpha04 è stato rilasciato. La versione 1.5.0-alpha04 contiene questi commit.
Modifiche alle API
ImageCapture.Builder#setOutputFormateImageCaptureCapabilities#getSupportedOutputFormatssono state esposte come API stabili (Ieb04a)- Aggiungi
VideoCapture.getResolutionInfo()per ottenere le informazioni sulla risoluzione quando unVideoCaptureè associato a un ciclo di vita. (Icb478) PreviewView.getScreenFlashePreviewView.setScreenFlashOverlayColoresposte come API stabili. (I74fee)
Correzioni di bug
- Risolto il problema di acquisizione non riuscita sul dispositivo Vivo 1610 durante lo scatto di foto con flash al buio. (I366f4)
- Risolto il problema per cui la torcia si spegneva in modo imprevisto dopo l'acquisizione di immagini su Redmi Note 6 Pro. (I2e0e8, b/377144569)
- Risolto un problema sui dispositivi Pixel con Android 15 per cui la modalità NOTTURNA nelle estensioni non riusciva ad acquisire immagini fisse finché la fotocamera non metteva a fuoco un oggetto vicino. (I228d4)
- Risolto il problema di malfunzionamento dell'acquisizione di immagini fisse quando le estensioni sono attive e
VideoCaptureè associato. (I5c745) - È stato attivato il supporto per l'acquisizione di immagini fisse
UltraHDRper le estensioni, se il dispositivo lo supporta. (I48300) - Risolto il problema di sincronizzazione del flash per l'acquisizione con flash con
CameraEffectche ha come target le acquisizioni di immagini sui dispositivi TCL. (I7698c)
Versione 1.5.0-alpha03
30 ottobre 2024
androidx.camera:camera-*:1.5.0-alpha03 è stato rilasciato. La versione 1.5.0-alpha03 contiene questi commit.
Modifiche alle API
- Aggiungi le API del formato di output per RAW e RAW + JPEG
ImageCapture, il controllo delle funzionalità del dispositivo è esposto inImageCaptureCapabilities#getSupportedOutputFormats.OUTPUT_FORMAT_RAWserve per acquisire un'immagine RAW, ovvero in formato Adobe DNG, mentreOUTPUT_FORMAT_RAW_JPEGserve per acquisire contemporaneamente immagini RAW e JPEG. La nuova APIImageCapture#takePictureviene utilizzata per l'acquisizione simultanea di immagini e deve fornire dueOutputFileOptions, la prima per l'immagine RAW e la seconda per l'immagine JPEG. (Ib0f3d)
Correzioni di bug
- Risolto il problema di sottoesposizione dell'anteprima e del video sui dispositivi TCL quando
VideoCaptureè attivo. (Id7a64) - Risolto il problema per cui il richiamo di
startFocusMeteringconPreviewView.getMeteringPointFactorynon otteneva le coordinate corrette del sensore quando veniva attivato un effetto o quando venivano associati 4 casi d'uso (condivisione dello stream). (I916c5, b/345993685) - Risolto il problema per cui l'evento
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEnon veniva attivato durante la registrazione di un video e lo spazio di archiviazione disponibile non era sufficiente. (I35779, b/356399842)
Versione 1.5.0-alpha02
2 ottobre 2024
androidx.camera:camera-*:1.5.0-alpha02 è stato 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, controllando se l'HDR e i 60 FPS possono essere attivati contemporaneamente. Include due artefatti: camera-feature-combination-query e camera-feature-combination-query-play-services.
Questa è una versione compatibile dell'API
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupporteddi camera2 con dati aggiuntivi forniti da Google Play Services.
Correzioni di bug
- Risolto il problema relativo alla frequenza fotogrammi target di
Preview/VideoCapturesui dispositivi di livello LEGACY. La frequenza fotogrammi target impostata tramite l'APIsetTargetFrameRateoCamera2Interopveniva sempre sovrascritta con il valore fornito daAeFpsRangeLegacyQuirk. Con questa correzione, la libreria CameraX rispetterà il valore impostato tramite l'APIsetTargetFrameRateoCamera2Interop. (Ie2d32) - Aggiunte le funzionalità flash/torcia/3A per le acquisizioni di immagini con
CameraEffect. Le acquisizioni di immagini conCameraEffectora dovrebbero avere le stesse elaborazioni pre-acquisizione e post-acquisizione (ad es. attivazione del flash, convergenza 3A e così via, se applicabile) dell'acquisizione di immagini senzaCameraEffect. (I5ff30) - Sono state escluse le dimensioni di output problematiche per
ImageAnalysissul dispositivo Samsung SM-A057G. QuandoImageAnalysisutilizza una risoluzione superiore o uguale a 1920 x 1440, si verifica il problema dell'anteprima nera. È stato applicatoExcludedSupportedSizesQuirkal dispositivo SM-A057G per evitare il problema. (I63dfe, b/365877975) - Risolto il problema relativo alla frequenza fotogrammi target di
Preview/VideoCapturequando il meccanismo di condivisione dello stream è attivato internamente per condividere uno stream conPrevieweVideoCapture. (I4fdac) - È stata attivata la soluzione alternativa per risolvere il problema dei 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 di Samsung A52s con 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)
- Risolto il problema per cui l'evento
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEnon veniva attivato durante la registrazione di un video e lo spazio di archiviazione disponibile non era 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 è stato rilasciato. La versione 1.5.0-alpha01 contiene questi commit.
Nuove funzionalità
- È stato rilasciato un nuovo artefatto,
camera-compose, per l'adattatore CameraX Viewfinder Compose, che mostra uno stream di anteprima da unSurfaceRequestCameraX dacamera-core. (I8666e) - È stato aggiunto un nuovo composable,
CameraXViewfinder, che funge da composable idiomatico che adatta iSurfaceRequestdi CameraX per il composableViewfinder. (I4770f)
Modifiche alle API
- Fornire un'API per configurare le impostazioni di composizione per l'acquisizione video con doppia fotocamera simultanea. Le impostazioni includono il valore alfa per la fusione, l'offset nelle coordinate x, y, la scala della larghezza e dell'altezza della finestra di visualizzazione del frame della videocamera. L'offset, la larghezza e l'altezza sono specificati in coordinate del dispositivo normalizzate. (Ia2b8a)
CameraProvider.getCameraInfoesposta come API formale. (I901cd)- Aggiunta l'API
PendingRecording.withAudioEnabled(boolean initialMuted)per controllare lo stato di disattivazione dell'audio iniziale. (I635c3, b/354829267)
Correzioni di bug
- È stato corretto l'arresto anomalo quando
bindToLifecycleviene richiamato con unLifecycleOwnereliminato. (I6e6d8) - Risolto il problema della schermata nera nell'anteprima della fotocamera anteriore durante l'accoppiamento con
VideoCapturesu Motorola Edge 20 Fusion. (I1fe88) - Ottimizzata la configurazione per il rilevamento dei gesti di zoom in
PreviewViewper migliorare la fluidità. (I04ffc)
Versione 1.4 della fotocamera
Versione 1.4.2
26 marzo 2025
androidx.camera:camera-*:1.4.2 è stato rilasciato. La versione 1.4.2 contiene questi commit.
Correzioni di bug
- Risolto il problema di blocco dell'anteprima quando si utilizza
ImageAnalysiscon un altro stream che utilizzaTEMPLATE_RECORDsu Samsung Galaxy M55. (Ic1a6a, b/395822788)
Versione 1.4.1
11 dicembre 2024
androidx.camera:camera-*:1.4.1 è stato rilasciato. La versione 1.4.1 contiene questi commit.
Correzioni di bug
- Risolto un problema sui dispositivi Pixel con Android 15 per cui la modalità NOTTURNA nelle estensioni non riusciva ad acquisire immagini fisse finché la fotocamera non metteva a fuoco un oggetto vicino. (I228d4)
- Risolto il problema di malfunzionamento di
ImageCapture#takePicturequando le estensioni sono attive eVideoCaptureè associato. (I5c745)
Versione 1.4.0
30 ottobre 2024
androidx.camera:camera-*:1.4.0 è stato rilasciato. La versione 1.4.0 contiene questi commit.
Modifiche importanti dalla versione 1.3.0
CameraX 1.4.0 è ricco di aggiornamenti entusiasmanti. Ecco un riepilogo:
Funzionalità principale: HDR a 10 bit:
- Acquisisci facilmente foto e video HDR straordinari.
- Supporta la codifica HLG e HEVC a 10 bit.
- Goditi l'anteprima HDR a 10 bit ed esegui query sulle funzionalità del dispositivo.
- Funziona con immagini
UltraHDRe video HDR su una gamma sempre più ampia di dispositivi.
Altre funzionalità interessanti:
- Estensioni Kotlin: aggiunte le funzioni di sospensione
takePictureeawaitInstance. - Effetti in tempo reale: applica effetti come filigrane ed evidenziazione degli oggetti.
- API CameraController: nuovi controlli per la configurazione dell'acquisizione video.
- Stabilizzazione dell'anteprima: esegui una query sulla funzionalità del dispositivo e attiva la stabilizzazione.
- Miglioramenti di VideoCapture: controllo più preciso della qualità e accesso a risoluzioni più elevate.
- Integrazione delle estensioni CameraX: integrazione perfetta con
VideoCapturee nuove funzionalità diImageCapture. - API Shutter Sound: controlla facilmente i requisiti regionali relativi al suono dell'otturatore.
- Flash dello schermo: foto migliori in condizioni di scarsa illuminazione per le fotocamere anteriori.
- API dei metadati delle estensioni della fotocamera: API di supporto per regolare l'intensità delle estensioni e ricevere notifiche 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 è stato rilasciato. La versione 1.4.0-rc04 contiene questi commit.
Correzioni di bug
- Risolto il problema per cui il richiamo di
startFocusMeteringconPreviewView.getMeteringPointFactorynon otteneva le coordinate corrette del sensore quando veniva attivato un effetto o quando venivano associati 4 casi d'uso (condivisione dello stream). (I916c5, b/345993685)
Versione 1.4.0-rc03
2 ottobre 2024
androidx.camera:camera-*:1.4.0-rc03 è stato rilasciato. La versione 1.4.0-rc03 contiene questi commit.
Correzioni di bug
- Aggiunte le funzionalità flash/torcia/3A per le acquisizioni di immagini con
CameraEffect. Le acquisizioni di immagini conCameraEffectora dovrebbero avere le stesse elaborazioni pre-acquisizione e post-acquisizione (ad es. attivazione del flash, convergenza 3A e così via, se applicabile) dell'acquisizione di immagini senzaCameraEffect. (I5ff30) - Ottimizzata la fluidità della funzionalità di pizzicamento per lo zoom in
PreviewView(I04ffc) - Disaccoppia Ultra HDR dalla funzionalità di output a 10 bit, poiché il supporto di Ultra HDR non richiede più che i dispositivi abbiano la funzionalità di output a 10 bit. (I96ff2, I0c3b3)
Versione 1.4.0-rc02
18 settembre 2024
androidx.camera:camera-*:1.4.0-rc02 è stato rilasciato. La versione 1.4.0-rc02 contiene questi commit.
Correzioni di bug
- È stato corretto l'arresto anomalo quando
bindToLifecycleviene richiamato con unLifecycleOwnereliminato. (I6e6d8) - È stata aggiunta l'animazione della visibilità in
ScreenFlashViewperScreenFlash#apply, che corregge anche i bug dovuti al completamento asincrono della modifica della luminosità dopo un po' di tempo. (I37cdb) - Miglioramento della 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 è stato rilasciato. La versione 1.4.0-rc01 contiene questi commit.
Nuove funzionalità
- Aggiunta la classe sperimentale
CameraInfo.getCameraInfoper fornire informazioni specifiche sulla fotocamera senza la necessità di associare i casi d'uso alla fotocamera. (I550d1)
Modifiche alle API
- Sono state aggiunte le API
PreviewView.getScreenFlashePreviewView.setScreenFlashOverlayColorper i casi in cuiScreenFlashViewnon viene aggiunto esplicitamente. (I43945)
Correzioni di bug
- Risolti i problemi di esposizione e tonalità di colore quando l'acquisizione di immagini veniva eseguita con il flash attivato in condizioni di scarsa illuminazione con il caso d'uso VideoCapture associato. (Ic9814)
- Risolto il problema per cui l'interruzione di una richiesta
takePicturecon le Estensioni attive poteva non generare risultati e la richiestatakePicturesuccessiva poteva non funzionare più. (Iae78f) - Risolto un problema di perdita di memoria che si verifica quando le estensioni sono attive. (Iab276)
- 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 di
Camera2OutputConfigImplin 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 è stato rilasciato. La versione 1.4.0-beta02 contiene questi commit.
Modifiche alle API
- Analogamente a
VideoCapture, aggiungisetMirrorModeper il caso d'uso Anteprima. Supporta la modalità Specchio ON e OFF per lo stream di anteprima tramiteOutputConfiguration.setMirrorModedall'API 33 e versioni successive. Per le API precedenti, non sarà operativa. (I821f4)
Correzioni di bug
- Risolto il problema per cui le app non riuscivano a scattare foto su Samsung Tab A8 quando
ImageCaptureselezionava 1920 x 1080 nella combinazionePreview+VideoCapture+ImageCaptureUseCase. (I5a463, b/336925549) - Risolto un problema per cui la registrazione continua poteva non continuare dopo il cambio di fotocamera. (Icb0a1)
Versione 1.4.0-beta01
14 maggio 2024
androidx.camera:camera-*:1.4.0-beta01 è stato rilasciato. La versione 1.4.0-beta01 contiene questi commit.
Modifiche alle API
- È stato aggiunto
ZoomGestureDetector.ZoomEventper incapsulare gli stati di un gesto di zoom. (I84cdf)
Correzioni di bug
- È stato corretto un bug per cui l'acquisizione di immagini fisse e la messa a fuoco con tocco non utilizzavano i valori della modalità di stabilizzazione/FPS della richiesta ripetuta, il che potrebbe ricreare la sessione di acquisizione e causare problemi di latenza o il blocco dell'anteprima in alcuni dispositivi. (I7dc0b)
- Risolto un bug per cui non era possibile selezionare risoluzioni elevate quando
CameraEffectera attivato su alcuni dispositivi. (ad es. 4000 x 3000 su Samsung A32 5G). (Ie3ed3, b/337336152) - Risolto un arresto anomalo che si verificava quando si scattava una foto con l'anteprima,
ImageCaptureeVideoCapture(UHD)sono associati su Pixel 4XL API29. (I5b288) - Supporto dei dispositivi virtuali: il contesto passato a
ProcessCameraProvidermanterrà l'ID dispositivo per garantire la funzionalità in un ambiente di dispositivi virtuali. (I5ba48)
Versione 1.4.0-alpha05
17 aprile 2024
androidx.camera:camera-*:1.4.0-alpha05 è stato rilasciato. La versione 1.4.0-alpha05 contiene questi commit.
Nuove funzionalità
ProcessCameraProviderconvertito in implementazione Kotlin. (I46d4f)- Sono state aggiunte funzioni di sospensione
ImageCapture.takePictureper consentire la chiamata in modo idiomatico di Kotlin. (I920be)
Modifiche alle API
- Aggiungi le API del formato di output a
ImageCapturee aggiungi il metodogetSupportedOutputFormatsaImageCaptureCapabilitiesper eseguire query sulle funzionalità del dispositivo. Il valore predefinito del formato di output èOUTPUT_FORMAT_JPEG, che acquisisce immagini SDR in formato JPEG. Quando il dispositivo supporta Ultra HDR e il formato di output è impostato suOUTPUT_FORMAT_JPEG_ULTRA_HDR, CameraX acquisisce immagini compresse Ultra HDR utilizzando il formato dell'immagine JPEG/R. Il formato è compatibile con le versioni precedenti del formato JPEG SDR e supporta il rendering HDR dei contenuti. Ciò significa che sulle app o sui dispositivi meno recenti le immagini vengono visualizzate senza problemi come normali JPEG, mentre sulle app e sui dispositivi aggiornati per supportare completamente il formato, le immagini vengono visualizzate in HDR. (I5de50) - Aggiunta di
PhysicalCameraInfoinCameraInfoper eseguire query sulle informazioni della fotocamera fisica e aggiunta del metodo di impostazione/recupero dell'ID della fotocamera fisica inCameraSelector(Ic5b90) - Sostituisci
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCEDconImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. Il valore della costante rimane invariato. In questo modo, tutte le costanti vengono raggruppate in un unico posto. (I890bb) - La nuova API
RetryPolicyconsente agli sviluppatori di personalizzare il comportamento dei nuovi tentativi per l'inizializzazione di CameraX. (I36dd2) - Abilita la creazione dell'oggetto
ImageCaptureLatencyEstimateper facilitare la testabilità (Iaba99) - Aggiungi un
ImageAnalysis#COORDINATE_SYSTEM_SENSOR. Quando viene utilizzato,MlKitAnalyzerrestituisce le coordinate nel sistema di coordinate del sensore della fotocamera. (I3ec61) - API dei metadati delle estensioni esposta. Le nuove interfacce
CameraExtensionsInfoeCameraExtensionsControlconsentono alle applicazioni di monitorare e regolare le impostazioni di intensità dell'estensione. Le applicazioni possono ottenere l'istanzaCameraExtensionsInfooCameraExtensionsControltramite i metodiExtensionsManager#getCameraExtensionsInfo()oExtensionsManager#getCameraExtensionsControl()appena aggiunti. (I28e1a) - Aggiunta di
ProcessCameraProvider.awaitInstance, che è una versione di sospensione diProcessCameraProvider.getInstance(Ib22b9) - Aggiungi un'API
PreviewView#getSensorToViewTransform(). La matrice rappresenta la trasformazione dalle coordinate del sensore della fotocamera alle coordinate diPreviewView. Può essere utilizzato per trasformare le coordinate da unUseCasea un altro. Ad esempio, trasformando le coordinate degli oggetti rilevati inImageAnalysisin un overlayPreviewView. (I947ab) - Rendi l'API
camera-viewfinder-corepiù generica in modo che possa essere utilizzata dacamera-viewfinderecamera-viewfinder-compose. (I1e295) - Aggiungi la funzione
getSurfaceaViewfinderSurfaceRequest. (I781a0) - Utilizza
camera-viewfinder-coreincamera-viewfindere ritiraViewfinderSurfaceRequesteCameraViewfinder. (I6198c) - È stato aggiunto
ZoomGestureDetector, che interpreta i gesti di ridimensionamento configurati specificamente per l'attività di pizzicamento per lo zoom. (Ifafbf)
Correzioni di bug
- Risolto il problema di selezione della risoluzione di
ImageAnalysisrelativo all'impostazione della risoluzione target predefinita dell'analizzatore: la risoluzione target veniva mantenuta erroneamente su 640 x 480 anche se le applicazioni avevano impostato una 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 versioni più recenti che contengono la soluzione, l'impostazione diretta di unResolutionSelectorcon la risoluzione preferita e unAspectRatioStrategycorrispondente aImageAnalysisUseCasepuò risolvere il problema. (I81f72, b/330091012) - Risolto un problema per cui l'esecuzione della richiesta
takePicturein coda poteva non riuscire se la richiesta corrente non andava 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 di dimensioni eccessive su questi dispositivi. (I82247, b/288828159)
- Risolto il problema dei metadati delle immagini JPEG errati sui dispositivi Samsung A24. Con la correzione, CameraX può salvare correttamente l'immagine JPEG oppure è possibile restituire oggetti Bitmap corretti quando si chiama 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 è superiore a 10 MB. In questo modo è possibile risolvere il problema delle immagini di dimensioni eccessive sui dispositivi Samsung. (Ic2a65, b/288828159)
- Rimosso il supporto di
ImageAnalysissulle estensioni CameraX, poiché molte implementazioni delle estensioni degli OEM non funzionano bene conImageAnalysise potrebbero causare problemi di incoerenza. (I2d926)
Versione 1.4.0-alpha04
24 gennaio 2024
androidx.camera:camera-*:1.4.0-alpha04 è stato rilasciato. La versione 1.4.0-alpha04 contiene questi commit.
Nuove funzionalità
- Nuovo artefatto: camera-effects: una libreria per applicare effetti in tempo reale all'output di CameraX, tra cui
Preview,VideoCapturee/oImageCapture. Questo artefatto contiene implementazioni OpenGL dell'APICameraEffectche 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 sugli output della fotocamera.- API
DynamicRangeper il caso d'uso Anteprima: ora è possibile impostare la gamma dinamica nel caso d'uso Anteprima, indipendentemente dal caso d'uso Video. In questo modo, sono consentite gamme dinamiche HDR come HLG10 solo per l'anteprima. InCameraInfosono disponibili anche nuove API per eseguire query sulle gamme dinamiche supportate da ogni fotocamera.
Modifiche alle API
ScreenFlashUiCompleterè stato rinominato inScreenFlashListenereScreenFlashUiCompleter#getExpirationTimeMillisè stato spostato nel parametroexpirationTimeMillisdiScreenFlash#apply. (I13944)- Sono state aggiunte nuove API per consentire l'impostazione della gamma dinamica nel caso d'uso Anteprima e per eseguire query sulle gamme dinamiche supportate da ciascuna fotocamera. In questo modo, le gamme dinamiche HDR, come HLG10, possono essere utilizzate solo con il caso d'uso Anteprima, senza più richiedere l'associazione contemporanea di un
VideoCapture. (If25e3) - Rinominato
getMirroring()inisMirroring()(I47063) - Aggiunto il supporto per la stima della latenza di acquisizione di immagini fisse 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 attuali dell'ambiente, dello stato della fotocamera e include il tempo impiegato per elaborare le richieste di acquisizione di più frame, oltre all'eventuale tempo aggiuntivo per la codifica dei buffer elaborati, se necessario. (I05c3a)
ScreenFlashUiControlè stato rinominato inScreenFlash,ScreenFlashUiControl#applyScreenFlashUiinScreenFlash#apply,ScreenFlashUiControl#clearScreenFlashUiinScreenFlash#cleared è stato aggiunto il metodogetScreenFlashUiApplyTimeoutSecondsanziché esporre direttamenteSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS. (Iccdd0)
Correzioni di bug
- Risolto un problema di perdita di memoria che impedisce il rilascio di attività o frammenti quando le estensioni sono abilitate (I14215)
- Risolto il problema per cui
getZoomRatiorestituiva erroneamente un valore ridotto quando veniva applicato un rapporto di zoom crescente. (I4aa0d, b/317543616) - L'evento
ImageCapture#ScreenFlash#clearviene richiamato immediatamente quandoImageCaptureviene slegato o la fotocamera viene chiusa. Inoltre, vengono corretti alcuni bug per cui non viene mai richiamato a causa di acquisizioni in questi scenari che non vengono completate correttamente. (If99f9) - È stato corretto l'arresto anomalo che si verifica quando il ciclo di vita viene interrotto prima del completamento della richiesta
takePicture(Idf017, b/306202751) - Risolto il problema per cui l'anteprima della fotocamera diventava nera quando le estensioni erano 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 è stato rilasciato. La versione 1.4.0-alpha03 contiene questi commit.
Nuove funzionalità
- È stato aggiunto
CameraInfo.mustPlayShutterSoundper fornire informazioni sull'eventuale riproduzione di un suono dell'otturatore in conformità alle limitazioni regionali. (Ifda84) - Sono stati aggiunti
OnImageCapturedCallback.onCaptureStartedeOnImageSavedCallback.onCaptureStartedper inviare una notifica quando la fotocamera ha iniziato a esporre un frame. A questo punto, ti consigliamo di riprodurre il suono o l'animazione dell'otturatore. (Ic49b3) - Aggiunto il supporto della funzionalità Flash dello schermo in CameraX per l'acquisizione di immagini con la fotocamera anteriore. CameraX si occuperà della gestione delle API lato framework e sincronizzerà i tempi con le modifiche alla UI dell'applicazione, se necessario (ad esempio, l'attivatore di pre-acquisizione AE dopo la modifica del colore/della luminosità dello schermo dell'app). Le app dovranno solo aggiungere le loro implementazioni lato UI nell'interfaccia
ScreenFlashUiControlfornita a CameraX. (I8ae84) - Aggiunto il supporto per l'implementazione lato UI della funzionalità Flash dello schermo in CameraX. Le app potranno ottenere un'implementazione di base di
ImageCapture.ScreenFlashUiControldaPreviewViewo dal nuovoScreenFlashView, che aggiungerà una visualizzazione in overlay monocolore e massimizzerà la luminosità dello schermo durante l'acquisizione di foto con il flash dello schermo. (I1810e)
Modifiche alle API
- Supporta le nuove funzionalità di Extensions(post-visualizzazione e avanzamento del processo di acquisizione): sono state aggiunte le API
ImageCapture#getImageCaptureCapabilities()per consentire alle app di eseguire query sulle funzionalità della post-visualizzazione e del callback dell'avanzamento del processo di acquisizione. Le app possono attivare la visualizzazione post-annuncio utilizzandoImageCapture.Builder#setPostviewEnabled(). La dimensione della visualizzazione post-clic può essere selezionata utilizzandoImageCapture.Builder#setPostviewResolutionSelector(). Quando richiamitakePicture(),onPostviewBitmapAvailableeonCaptureProcessProgressedpossono essere implementati inOnImageSavedCallbackoOnImageCapturedCallbackper ricevere la notifica di avanzamento della post-visualizzazione e del processo, 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)
- Esporre l'API per eseguire query su
PreviewCapabitlityin PreviewUseCase. (Ie5b6c) - Sono state aggiunte API per supportare più qualità per
VideoCapture.Recorder.Builder#setVideoCapabilitiesSource(int)può essere utilizzato conVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIESper creare un'istanzaRecorderche supporta più qualità rispetto aVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. Un caso d'uso comune è quando l'applicazione tenta di registrare video in UHD ogni volta che è possibile, ma ilCamcorderProfiledel dispositivo non include impostazioni UHD, anche se il codec è in grado di registrare video in UHD. (Iedbe2, b/263961771) - Aggiungi il getter/setter del formato di output
ImageAnalysisaCameraController. (I9a96c, b/308240643)
Correzioni di bug
- Da Fotocamera
1.3.1: miglioramento delle prestazioni diProcessCameraProvider#bindToLifecycle(). La modifica principale consiste nell'ottimizzare il processo di identificazione delle combinazioni di dimensioni più adatte perUseCases. I risultati ottimali variano in base alle combinazioni diUseCasespecifiche e al numero di dimensioni di output supportate per i dispositivi di destinazione. (I454f2) - Consenti l'utilizzo di
VideoCapturequando le estensioni sono attive. (I91f32) - Risolto il problema relativo alle immagini JPEG acquisite di grandi dimensioni sui dispositivi delle serie Samsung A71 e M51. Le immagini JPEG acquisite contengono dati di spaziatura interna con 0 ridondanti nel segmento di dati compressi JFIF. Le immagini acquisite hanno dimensioni del file estreme. I dati di spaziatura interna con gli 0 ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali. (I01afc, b/288828159)
- Disattiva il supporto di
ImageAnalysissu Pixel per evitare il bug su Pixel che restituisce accidentalmente le dimensioni supportate diImageAnalysisnon vuote. (I7ec31) - Risolto un problema di prestazioni per cui il carico della CPU e il consumo energetico aumentavano quando le estensioni erano attive. (Ibdccb)
- Aggiunto Snapdragon 480 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 viene compensato in base al 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 è stato rilasciato. La versione 1.4.0-alpha02 contiene questi commit.
Modifiche alle API
- Rinomina l'API in
setCameraOpenRetryMaxTimeoutInMillisWhileResuminge rinomina l'argomento. (I72370) - Aggiunta di API per eseguire query sulla funzionalità del dispositivo e attivare la stabilizzazione di video/anteprima. (I87544)
- Fornisce l'API per personalizzare il tempo di timeout massimo per i nuovi tentativi di apertura della fotocamera. (I0c642)
- È stata rilasciata l'API
ProcessCameraProvider.shutdownAsynccome 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 i test. (I9eca7) - Aggiungi API per configurare la gamma dinamica, la frequenza fotogrammi e la modalità Specchio dell'acquisizione video. (Ifb8f7)
- Ritira
OutputSizee sostituiscilo conResolutionSelector.ResolutionSelectorè un modo più completo per selezionare le risoluzioni ed è coerente con l'API camera-core. (I93abd, b/286801438)
Correzioni di bug
- Risolto il problema dell'anteprima nera su Samsung Galaxy S23 Ultra 5G quando le estensioni Bokeh o Ritocco viso sono attivate con
ImageAnalysissulla fotocamera posteriore. (I2e8b1) - Risolti i problemi di anteprima e di allungamento di
VideoCapturesu Moto E5 Play. (73dce2)
Versione 1.4.0-alpha01
20 settembre 2023
androidx.camera:camera-*:1.4.0-alpha01 è stato rilasciato. La versione 1.4.0-alpha01 contiene questi commit.
Modifiche alle API
- Aggiunta di una nuova API per accedere alle informazioni sull'ampiezza dell'audio durante la registrazione. (Id4925)
Correzioni di bug
- Miglioramento della stabilità delle estensioni assicurando che gli eventi di inizializzazione e deinizializzazione vengano attivati nell'ordine corretto. (Ib3b8e)
- Risolto l'errore di configurazione della sessione di acquisizione per il superamento della combinazione di superfici supportate a causa dell'aggiunta interna di una superficie ripetuta aggiuntiva. (Id718c)
- Risolto il problema relativo alle immagini JPEG acquisite di grandi dimensioni sul dispositivo Vivo S16. Le immagini JPEG acquisite contengono dati di spaziatura interna con 0 ridondanti nel segmento di dati compressi JFIF. Ciò comporta che le immagini acquisite abbiano dimensioni di file elevate. I dati di spaziatura interna con gli 0 ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali. (I79505, b/299069235)
- Risolto il problema per cui
ImageAnalysisnon può essere associato aImageCapturee Anteprima quando alcune modalità di estensione sono attive su alcuni dispositivi. La correzione restituirà il valore corretto quando le app eseguono query sulla disponibilità diImageAnalysistramiteExtensionsManager#isImageAnalysisSupported(). (I7d538) - Aggiorna JavaDoc in modo che corrisponda al comportamento. Anziché completare immediatamente l'operazione,
#setZoomRatio,#setLinearZoome#enableTorchattendono che la fotocamera sia pronta. Sono state aggiunte anche informazioni su come ottenere il campo visivo massimo con l'API#takePicture. (I23588)
Versione 1.3
Versione 1.3.4
12 giugno 2024
androidx.camera:camera-*:1.3.4 è stato rilasciato. La versione 1.3.4 contiene questi commit.
Correzioni di bug
- Risolto il problema per cui
getZoomRatiorestituiva erroneamente un valore ridotto quando veniva applicato un rapporto di zoom crescente. (I4aa0d, b/317543616) - Risolto il problema per cui l'acquisizione di immagini fisse/la messa a fuoco con un tocco non utilizzavano i valori della modalità di stabilizzazione/FPS della richiesta ripetuta, il che potrebbe ricreare la sessione di acquisizione e causare problemi di latenza o il blocco dell'anteprima in alcuni dispositivi. (I7dc0b)
- Risolto il problema per cui la frequenza fotogrammi veniva impostata su un valore inferiore quando si chiamava
setTargetFrameRateconFRAME_RATE_RANGE_UNSPECIFIED. (I78c61)
Versione 1.3.3
17 aprile 2024
androidx.camera:camera-*:1.3.3 è stato rilasciato. La versione 1.3.3 contiene questi commit.
Correzioni di bug
- Risolto il problema di selezione della risoluzione di
ImageAnalysisrelativo all'impostazione della risoluzione target predefinita dell'analizzatore: la risoluzione target veniva mantenuta erroneamente su 640 x 480 anche se le applicazioni avevano impostato una 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 versioni più recenti che contengono la soluzione, l'impostazione diretta di unResolutionSelectorcon la risoluzione preferita e unAspectRatioStrategycorrispondente all'UseCaseImageAnalysispuò risolvere il problema. (I81f72, b/330091012)
Versione 1.3.2
6 marzo 2024
androidx.camera:camera-*:1.3.2 è stato rilasciato. La versione 1.3.2 contiene questi commit.
Correzioni di bug
- Risolto un problema relativo ai metadati JPEG sui dispositivi Samsung A24. CameraX ora salva le immagini in modo accurato e la funzione
ImageProxy.toBitmap()restituisce oggetti Bitmap corretti. (I8d6eb, b/309005680) - È stata rimossa l'opzione di risoluzione 9280 x 6944 sui dispositivi Redmi Note 9 Pro a causa di problemi. (Ia23da)
Versione 1.3.1
13 dicembre 2023
androidx.camera:camera-*:1.3.1 è stato rilasciato. La versione 1.3.1 contiene questi commit.
Correzioni di bug
Miglioramento delle prestazioni di ProcessCameraProvider#bindToLifecycle(). La modifica principale consiste nell'ottimizzare il processo di identificazione delle combinazioni di dimensioni più adatte per UseCases. I risultati ottimali variano in base alle combinazioni di UseCase specifiche e al numero di dimensioni di output supportate per i dispositivi di destinazione. (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 9 ms a 7 ms circa
- Samsung Galaxy S23 Ultra: da circa 6 ms a 5 ms
- Samsung A53 5G: da circa 32 ms a 12 ms
Aggiunto Snapdragon 480 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 viene compensato in base al tempo in cui il dispositivo è in stato di sospensione. (I58010)
Versione 1.3.0
18 ottobre 2023
androidx.camera:camera-*:1.3.0 è stato 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, specchio/non specchio, disattivazione/attivazione audio, impostazione della frequenza fotogrammi e altro ancora.
- Doppia fotocamera simultanea
- Libreria degli effetti
- Selettore della risoluzione
- Selezione della fotocamera ultrawide e telescopica
- Cambio di fotocamera durante la registrazione di video (funzionalità sperimentale)
Versione 1.3.0-rc02
20 settembre 2023
androidx.camera:camera-*:1.3.0-rc02 è stato rilasciato. La versione 1.3.0-rc02 contiene questi commit.
Correzioni di bug
- Miglioramento della stabilità delle estensioni assicurando che gli eventi di inizializzazione e deinizializzazione vengano attivati nell'ordine corretto. In questo modo sono stati risolti alcuni problemi di anteprima nera durante il passaggio da una modalità di estensione all'altra o da una fotocamera all'altra. (Iddaac)
- Risolto il problema per cui
ImageAnalysisnon può essere associato aImageCapturee Anteprima quando alcune modalità di estensione sono attive su alcuni dispositivi. La correzione restituirà il valore corretto quando le app eseguono query sulla disponibilità diImageAnalysistramiteExtensionsManager#isImageAnalysisSupported(). (I7d538) - È stato risolto il problema per cui l'audio e il video registrati non erano sincronizzati quando la modalità Specchio era attiva su Xiaomi Poco X3 NFC. (I20b4c)
Versione 1.3.0-rc01
23 agosto 2023
androidx.camera:camera-*:1.3.0-rc01 è stato rilasciato. La versione 1.3.0-rc01 contiene questi commit.
Modifiche alle API
- Aggiunto
PendingRecording.asPersistentRecordingper consentire a una registrazione di registrare continuamente mentre ilVideoCapturea cui è collegato il registratore viene ricollegato. (I517c6)
Correzioni di bug
- Risolto un arresto anomalo che si verificava quando uno stream veniva condiviso sia con
VideoCaptureche con Anteprima. È stata anche corretta una schermata nera sui dispositivi LEGACY quando è attiva la condivisione dello stream. - 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 interna con 0 ridondanti nel segmento di dati compressi JFIF. Ciò comporta che le immagini acquisite abbiano dimensioni di file elevate. I dati di spaziatura interna con gli 0 ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali. (I407b0, b/288828159)
- Risolto il problema relativo alle immagini JPEG di grandi dimensioni acquisite sui dispositivi delle serie Samsung S22 (SM-S901B, SM-S901B/DS) e S22+ (SM-S906B). Le immagini JPEG acquisite contengono dati di spaziatura interna con 0 ridondanti nel segmento di dati compressi JFIF. Le immagini acquisite hanno dimensioni di file elevate, circa 13 MB, sul dispositivo S22 SM-S901B/DS. I dati di spaziatura interna con gli 0 ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali. (I73be9, b/288828159)
- Risolto il problema relativo alle immagini JPEG acquisite di grandi dimensioni sui dispositivi delle serie Samsung A5, A52, A70 e A72. Le immagini JPEG acquisite contengono dati di spaziatura interna con 0 ridondanti nel segmento di dati compressi JFIF. Ciò comporta che le immagini acquisite abbiano dimensioni del file estreme (ad esempio circa 32 MB o addirittura 96 MB). I dati di spaziatura interna con gli 0 ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali. (I97c4d, b/288828159)
- Risolto 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 è stato rilasciato. La versione 1.3.0-beta02 contiene questi commit.
Correzioni di bug
- Utilizza la torcia come flash per le varianti di Pixel 4 e 5 per migliorare la qualità di acquisizione in condizioni di scarsa illuminazione (I56ff5, b/280221967)
- 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 interna con 0 ridondanti nel segmento di dati compressi JFIF. Le immagini acquisite hanno una dimensione del file di circa 32 MB. I dati di spaziatura interna con gli 0 ridondanti verranno rimossi per fare in modo che le immagini acquisite abbiano dimensioni normali. (I29837, b/288828159)
- Risolto il problema per cui il nuovo tentativo non veniva attivato correttamente 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 è stato rilasciato. La versione 1.3.0-beta01 contiene questi commit.
Modifiche alle API
- Il nome della funzione
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)è stato rinominato insetAllowedResolutionModee le costantiResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONsono state rinominate inPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8) - API deprecate rimosse:
ImageAnalysis.setTargetRotationDegrees(int),ImageCapture.setTargetRotationDegrees(int)eVideoCapture.setTargetRotationDegrees(int). (Id8e77) - La classe
DynamicRangerappresenta la gamma dinamica delle immagini. Può essere utilizzato per selezionare i formati High Dynamic Range come output diVideoCapturetramiteVideoCapture.Builder#setDynamicRange(). (Ib0377) - È stata aggiunta un'API
isImageAnalysisSupportedaExtensionsManagercon cui le app possono determinare se un caso d'usoImageAnalysispuò essere associato insieme ad Anteprima eImageCapturequando le estensioni sono abilitate. (I1bc63) - La nuova classe
VideoCapabilitiesottenuta daRecorderpuò essere utilizzata per eseguire query sugli intervalli dinamici e sulle qualità supportati per la registrazione video sul dispositivo. I metodigetSupportedQualities()eisQualitySupported()diQualitySelectorverranno ritirati. Utilizza invece i metodigetSupportedQualities()eisQualitySupported()diVideoCapabilities. (I04014) CameraController#setVideoCaptureTargetQuality()è stato rinominato insetVideoCaptureQualitySelectore accetta l'argomentoQualitySelector, che offre maggiore flessibilità per la configurazione della qualità video.CameraController#getVideoCaptureTargetQuality()viene modificato di conseguenza ingetVideoCaptureQualitySelector. (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à dell'immagine acquisita in condizioni di scarsa illuminazione. (I6a022, b/286190938)
- Aggiungi il supporto del formato
ImageFormat.JPEGperImageProxy.toBitmap(). Se non è possibile decodificare l'array di byte JPEG, verrà generata un'eccezioneUnsupportedOperationException. (I81958, b/282057603)
Versione 1.3.0-alpha07
24 maggio 2023
androidx.camera:camera-*:1.3.0-alpha07 è stato rilasciato. La versione 1.3.0-alpha07 contiene questi commit.
Nuove funzionalità
- La nuova API
VideoCapture.Builder# setTargetFrameRate(Range)consente di acquisire registrazioni video con frequenze fotogrammi diverse da quella predefinita del dispositivo. Le frequenze fotogrammi disponibili per le registrazioni possono essere interrogate tramite la nuova APICameraInfo#getSupportedFrameRates().
Modifiche alle API
- Le costanti
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONsono state rinominate inALLOWED_RESOLUTIONS_NORMAL/SLOWe il nome della funzione buildersetHighResolutionEnabledFlagè stato rinominato insetAllowedResolutionMode. (Iae817) CameraInfo#getSupportedFrameRateRanges()ora restituisce unSetanziché unListper rappresentare meglio il fatto che gli intervalli non sono ordinati. (I02f43)- Aggiungi un listener di errori a
CameraEffectper gestire gli errori irreversibili (Ice471) - Aggiunto il costruttore pubblico in
ResolutionInfoper una migliore testabilità (If6d1c) - È stata fornita un'API
UseCase.snapToSurfaceRotation(int)per sostituire l'utilizzo disetTargetRotationDegreese ritirare le APIImageAnalysis.setTargetRotationDegrees(int),ImageCapture.setTargetRotationDegrees(int)eVideoCapture.setTargetRotationDegrees(int). (Ia9010) - Sono state aggiunte le nuove API
Preview#getTargetFrameRateePreview.Builder#setTargetFrameRateper poter impostare e recuperare la frequenza fotogrammi target per il caso d'uso Anteprima (If4f22) VideoRecordEvent.Finalizeora verrà completato con il codice di erroreERROR_RECORDING_GARBAGE_COLLECTEDquando l'oggettoRecordingviene arrestato a causa della garbage collection. (Iba974)
Correzioni di bug
- Risolto il problema di
NullPointerExceptionquando le dimensioni dell'output memorizzato nella cache inStreamConfigurationMapCompatsono null. (Idf124, b/282025204) - Risolto il problema per cui
Preview.setSurfaceProvider(null)non metteva in pausa l'anteprima nelle estensioni (Ia903e) - Risolto un problema per cui veniva generato
ConcurrentModificationExceptiondurante l'apertura della fotocamera quandoVideoCaptureera associato. (Ic8ac4)
Versione 1.3.0-alpha06
19 aprile 2023
androidx.camera:camera-*:1.3.0-alpha06 è stato 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 utilizzare contemporaneamente la fotocamera anteriore e quella posteriore. Al momento CameraX supporta solo due fotocamere simultanee, il che consente l'utilizzo di due fotocamere contemporaneamente, con un massimo di due {@link UseCase} associati a ciascuna. La risoluzione massima è 720p o 1440p. Per maggiori dettagli, consulta il seguente link: CameraManager#getConcurrentCameraIds()
- Presentazione della nuova API
ResolutionSelector, che copre le seguenti funzionalità:- Le applicazioni possono specificare strategie di proporzioni e risoluzione per selezionare la risoluzione migliore per le loro esigenze.
- Tutti i parametri relativi alle dimensioni e alle proporzioni sono espressi nelle coordinate del sensore 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. Tuttavia, tieni presente che l'utilizzo di un'alta risoluzione potrebbe comportare tempi di acquisizione più lenti.
- Aggiunte
VideoCaptureAPI di mirroring. I video registrati daVideoCapturenon vengono specchiati per impostazione predefinita. Tuttavia, l'anteprima della fotocamera anteriore è speculare per impostazione predefinita. Le API di mirroring diVideoCaptureconsentono di allinearsi all'anteprima della fotocamera quando si utilizza la fotocamera anteriore. Esistono treMirrorMode,OFF,ONeON_FRONT_ONLY. Per l'allineamento con l'anteprima della fotocamera, ti consigliamo di utilizzareON_FRONT_ONLY, il che significa che il mirroring non è attivato per la fotocamera posteriore, ma è attivato per la fotocamera anteriore.
Modifiche alle API
- È stata esposta una 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. Tuttavia, tieni presente che l'utilizzo di un'alta risoluzione potrebbe comportare tempi di acquisizione più lenti. (Ibed95) - Gli intervalli di FPS supportati dall'algoritmo AE ora possono essere interrogati tramite
CameraInfo#getSupportedFrameRateRanges(). (Iaa67f) - Consolidare i nomi di tutti i metodi di frequenza fotogrammi in modo che utilizzino "FrameRate". Correggi l'errore javadoc in
VideoCapture#getTargetFrameRate()(I83304) - È stata ritirata l'API legacy
setTargetAspectRatioesetTargetResolution. 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,SingleCameraConfigeConcurrentCamera(Iab1c1)
- Rendi
ImageProcessor.Response#getOutputImageNonNull (Ib9c60) - Sono state aggiunte
VideoCaptureAPI di mirroring, 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 l'anteprima della fotocamera posteriore non è speculare, mentre l'anteprima della fotocamera anteriore è speculare. (I713b6, b/194634656) - Aggiungi l'API
setTargetFrameRate()inVideoCapture.Buildere l'APIgetTargetFramerate()inVideoCapture(I109d4) - Fai in modo che
SurfaceOutputestenda Closable e nascondi il costruttore pubblico di SurfaceOutput.Event. (I60ea8) - Aggiunto
Recording.muteper disattivare o riattivare l'audio in modo dinamico di una registrazione in fase di elaborazione.RecordingStatsconterràAudioStats.AUDIO_STATE_MUTEDquando la registrazione in fase di elaborazione viene disattivata esplicitamente. (Ie17fc) - Il parametro
#setEffects()è stato reso non nullo. Aggiungi un'API#clearEffects()per cancellare gli effetti. L'app deve chiamare#clearEffects()per rimuovere gli effetti. (I4b4d9) - Aggiunto un secondo costruttore per
ViewfinderSurfaceRequest.Builderper accettare un builder per il costruttore di copia (I621a7)
Correzioni di bug
- Risolto il problema per cui le app che richiamano l'API Extensions potevano arrestarsi in modo anomalo alla chiusura della fotocamera (Ib27e5)
- Risolto un problema per cui
VideoCapturenon funzionava con la fotocamera anteriore su alcuni dispositivi. Ad esempio, su Samsung Galaxy S23 e Xiaomi 2107113SG. (Ibec7e, b/270656244) - Risolto il problema per cui lo scatto di foto utilizzando File nella cartella pubblica dello spazio di archiviazione esterno non andava mai a buon fine su Android 10 o versioni successive. Tieni presente che in Android 10, per scattare foto utilizzando File nella cartella pubblica dello spazio di archiviazione esterno è necessario anche impostare
requestLegacyExternalStoragesu true nel tag dell'applicazione. (I11b2c) - Risolto un arresto anomalo di
RejectedExecutionExceptioninDefaultSurfaceProcessor. 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 è stato rilasciato. La versione 1.3.0-alpha05 contiene questi commit.
Modifiche alle 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_CAPTUREePREVIEW|VIDEO_CAPTUREcome target degli effetti. Gli effetti che hanno come targetVIDEO_CAPTUREverranno applicati aVideoCaptureUseCase; gli effetti che hanno come targetPREVIEW|VIDEO_CAPTUREverranno applicati a uno stream condiviso prima della copia in Anteprima e nello streamVideoCapture. (Iee6f3)
Correzioni di bug
- Da Fotocamera
1.2.2: è stato risolto il problema per cui le estensioni CameraX non funzionano correttamente quando ProGuard è abilitato su alcuni dispositivi come Pixel (I90aa2) - È stato corretto un bug di
PreviewViewper cui, se l'app gestisce l'orientamento dello schermo, l'anteprima potrebbe risultare distorta durante la rotazione. Questo accade solo su alcuni dispositivi. Può essere riprodotto su Pixel a4, Pixel 5 e Pixel 6a. (I14340, b/223488673)
Versione 1.3.0-alpha04
22 febbraio 2023
androidx.camera:camera-*:1.3.0-alpha04 è stato rilasciato. La versione 1.3.0-alpha04 contiene questi commit.
Nuove funzionalità
Una nuova funzionalità per supportare combinazioni di Surface precedentemente non supportate condividendo un singolo stream con più UseCase.
- In precedenza, quando si associava "Preview, VideoCapture, ImageAnalysis" sul livello hardware della fotocamera FULL e inferiore o "Preview, VideoCapture, ImageCapture" sul livello hardware LEGACY, CameraX generava
IllegalArgumentException. - Il nuovo comportamento prevede che le associazioni funzionino senza generare eccezioni. CameraX utilizza invece OpenGL per copiare uno stream condiviso sia in Preview che in VideoCapture.
- A causa del costo della copia del buffer, l'app potrebbe registrare un aumento della latenza e del consumo di energia.
Modifiche alle API
- Aggiungi l'API per convertire
ImageProxyinBitmap. Il formatoImageProxysupportato èImageFormat.YUV_420_888ePixelFormat.RGBA_8888. Se il formato non è valido, verrà generatoIllegalArgumentException. (Ic7110) - Aggiunta di
CoroutineCameraViewfinderper 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 delle 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 è stato rilasciato. La versione 1.3.0-alpha03 contiene questi commit.
Modifiche alle API
- Aggiunta di
CameraInfo.getIntrinsicZoomRatioper fornire informazioni sull'angolo di visione relative alla videocamera predefinita. (Ib300c) - È stato aggiunto
CameraInfo.getLensFacingper fornire informazioni sull'orientamento dell'obiettivo. È stata aggiunta la funzionalità sperimentaleCameraSelector#LENS_FACING_EXTERNALper la selezione di fotocamere esterne. (Icaf3e) - Aggiungi
#setEffect()aCameraControllerper consentire l'aggiunta di effetti all'output della fotocamera. (I1d21f) - Aggiungi il metodo
invalidate()aSurfaceRequest. Il provider di Surface può notificare che la superficie fornita in precedenza non è più valida. (Idc649) - Aggiungi un'API
ImageProcessor. Questa interfaccia serve per inserire effetti di post-elaborazione nella pipelineImageCapture. (I575c6) - È stata aggiunta l'API
Recorder.Builder.setAspectRatio(), che può essere combinata conQualitySelectorper supportare più risoluzioni video. (I8a082) - Aggiunto
Recorder.Builder#setTargetVideoEncodingBitRateper impostare la codifica video targetBitRateeRecorder#getTargetVideoEncodingBitRateper ottenere il bitrate della codifica video target. (I5984d)
Correzioni di bug
- Risolto il problema per cui l'elemento
ImageCapturefisso non funzionava quando non era presente un'unità flash e la modalità flash era attiva. (I9e8b4, b/263391112) - Risolto il problema di danneggiamento delle immagini JPEG durante la scrittura dei dati sulla posizione Exif su alcuni dispositivi Samsung Android 12. (Ib7086, b/263747161, b/263289024)
- Quando imposti la torcia/lo zoom prima del completamento dell'inizializzazione della fotocamera, ad esempio chiamando
CameraController#enableTorch, l'azione in attesa viene memorizzata nella cache e inviata una volta completata l'inizializzazione. (I11e92, b/264157663)
Versione 1.3.0-alpha02
7 dicembre 2022
androidx.camera:camera-*:1.3.0-alpha02 è stato rilasciato. La versione 1.3.0-alpha02 contiene questi commit.
Modifiche alle API
- Aggiungi una nuova API per applicare l'effetto di post-elaborazione all'output di Preview. (Ic17d5)
OutputOptions.getDurationLimitè stato rinominato inOutputOptions.getDurationLimitMilliseOutputOptions.setDurationLimitinOutputOptions.setDurationLimitMillis. (I91f0c)- Aggiungi la classe
AudioConfigper gestire l'impostazione relativa all'audio durante la registrazione di video. L'annotazione@RequiresPermissionviene spostata dalle funzionistartRecordingaAudioConfigper evitare richieste di autorizzazione non necessarie nei casi in cui l'audio non è necessario. (I28755) - Rimuovi le classi Metadata,
OnVideoSavedCallback,OutputFileOptionseOutputFileResultsche non vengono più utilizzate dopo l'applicazione della nuova API di acquisizione video. (I38cd8) - Applica la nuova API di acquisizione video. I metodi
getVideoCaptureTargetSizeesetVideoCaptureTargetSizevengono sostituiti rispettivamente dai metodigetVideoCaptureTargetQualityesetVideoCaptureTargetQuality, poichésetTargetResolutionnon è più supportato. (I2a1d5)
Correzioni di bug
- Rimuovi l'API
core.VideoCapturedeprecata. (I531e0) - Risolto il problema per cui il callback
onErrornon veniva chiamato quando si scattavano foto senza l'autorizzazione di archiviazione.(I936db, b/244807669) - Migliorare la qualità e l'affidabilità delle estensioni della fotocamera. Le estensioni della fotocamera sono disattivate sui dispositivi Motorola che utilizzano le estensioni della fotocamera v1.1.0 e versioni precedenti a causa di problemi con il supporto dell'effetto bokeh, l'acquisizione di immagini e la mancata ripresa dell'anteprima. (Id3ce3)
- Risolto un arresto anomalo nativo che si verificava quando il ritaglio dei video tramite
ViewPortera attivato sui dispositivi legacy. (I16b8a, b/251357665)
Versione 1.3.0-alpha01
9 novembre 2022
androidx.camera:camera-*:1.3.0-alpha01 è stato rilasciato. La versione 1.3.0-alpha01 contiene questi commit.
Nuove funzionalità
Camera-viewfinderè stato pubblicato ufficialmente.Camera-viewfinderfornisce un widget di base per il mirino che può mostrare il feed della videocamera per Camera2. Per un esempio, consulta il codice campione.
Modifiche alle API
- Aggiunto
OutputOptions.setDurationLimitper consentire l'impostazione del limite di durata del video. La registrazione verrà finalizzata automaticamente quando viene superato il limite di durata specificato. (I902a0) - Aggiungi lo stato di errore dell'audio della registrazione video
AudioStats.AUDIO_STATE_SOURCE_ERROR. Inviato quando la configurazione della sorgente audio non va a buon fine o si verifica un errore. (I37410)
Correzioni di bug
- È stato aggiunto un quirk per consentire ad alcuni dispositivi problematici di riprovare l'acquisizione una volta in caso di errori di acquisizione. (Id4795)
- Risolvi il problema della schermata nera dell'implementazione di
PreviewViewSurfaceViewsuViewPager2. Nell'ambito della correzione,PreviewViewriutilizzerà il proprioSurfaceViewse la risoluzione richiesta non viene modificata. (Ib3f27) - Supporta il ritaglio dei video (funzionalità WYSIWYG) quando viene utilizzata l'API
ViewPortoCameraController. (Ifbba8, b/201085351) - È stato risolto il problema per cui i video acquisiti con la fotocamera anteriore non venivano registrati su Huawei P40 lite. (I87c57, b/250807400)
Versione 1.2
Versione 1.2.3
24 maggio 2023
androidx.camera:camera-*:1.2.3 è stato rilasciato. La versione 1.2.3 contiene questi commit.
Correzioni di bug
- Risolto un problema per cui
VideoCapturenon 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 è stato rilasciato. La versione 1.2.2 contiene questi commit.
Correzioni di bug
- Risolto il problema per cui le estensioni CameraX non funzionavano correttamente quando ProGuard era abilitato su alcuni dispositivi come Pixel (I90aa2)
Versione 1.2.1
25 gennaio 2023
androidx.camera:camera-*:1.2.1 è stato rilasciato. La versione 1.2.1 contiene questi commit.
Correzioni di bug
- Risolto il problema di danneggiamento delle immagini JPEG durante la scrittura dei dati sulla posizione Exif su alcuni dispositivi Samsung Android 12. (b/263289024)
Versione 1.2.0
7 dicembre 2022
androidx.camera:camera-*:1.2.0 è stato 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 la scansione di codici a barre, il riconoscimento facciale, il rilevamento del testo e così via.
MLKitAnalyzerè stato aggiunto come nuove API. - Nuova API sperimentale Zero-Shutter Lag. Ottimizza la pipeline di acquisizione per ottenere una latenza migliore mantenendo al contempo 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à utilizzatoCAPTURE_MODE_MINIMIZE_LATENCY. - Depreca
android.camera.core.VideoCapture. setStreamUseCase()è stata aggiunta come APICamera2Interoppubblica.- È stato aggiunto il requisito del livello API per
setOutputImageRotationEnabled. ImageAnalysis.Analyzer#getTargetResolutionOverride()rinominato inImageAnalysis.Analyzer#getDefaultTargetResolution().- Aggiunta l'API per l'impostazione dei metadati sulla posizione nel video salvato.
- Risolto il problema della frequenza fotogrammi bassa quando si utilizzano i casi d'uso
VideoCapturee Anteprima con proporzioni 16:9 - Risolto il problema dell'anteprima nera che si verifica quando l'estensione BOKEH è attiva su alcuni dispositivi Samsung e l'utente cambia fotocamera.
- Risolto il problema di allungamento di
Preview/VideoCapturesu Samsung J7 Prime (SM-G610M) e J7 (SM-J710MN) sui dispositivi con livello API 27. - 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 è stato rilasciato. La versione 1.2.0-rc01 contiene questi commit.
Modifiche alle API
- Aggiungi l'API
setStreamUseCaseperOutputConfiguration. L'utente può specificare il caso d'uso dello stream per la sessione di streaming, eseguendo l'override delle logiche interne di CameraX per scegliere il caso d'uso dello stream in modo da ottimizzarlo in base alle proprie esigenze. (Ib1a95)
Correzioni di bug
- Risolto il problema di allungamento di
Preview/VideoCapturesu Samsung J7 Prime (SM-G610M) e J7 (SM-J710MN) sui dispositivi con livello API 27. La risoluzione 1920 x 1080 causa l'allungamento delle immaginiPreview/VideoCapture. È stata aggiunta una soluzione alternativa per non selezionare la risoluzione 1920 x 1080 per l'anteprima oVideoCaptureper evitare il problema dell'immagine allungata. (I0e04e) - Risolto il problema della frequenza fotogrammi bassa quando si utilizzano i casi d'uso
VideoCapturee Anteprima con proporzioni 16:9 su alcuni dispositivi Huawei. (If8c88, b/223643510) - Risolto il problema di mancata apertura della fotocamera quando l'opzione
SurfaceProviderdi Anteprima non è impostata. Nell'ambito della correzione, l'anteprima senzaSurfaceProviderimpostato non verrà configurata nella sessione di acquisizione della fotocamera. (I99681)
Versione 1.2.0-beta02
21 settembre 2022
androidx.camera:camera-*:1.2.0-beta02 è stato rilasciato. La versione 1.2.0-beta02 contiene questi commit.
Modifiche alle API
- Aggiunto il requisito del livello API per
setOutputImageRotationEnabled(I26e3e, b/240993561)
Correzioni di bug
- È stata disattivata la soluzione alternativa per capovolgere orizzontalmente la regione AF delle fotocamere anteriori su Samsung Android T, poiché il problema è stato risolto. (I05f69)
- Risolto il problema dell'anteprima nera che si verifica quando l'estensione
BOKEHè abilitata 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 è stato rilasciato. La versione 1.2.0-beta01 contiene questi commit.
Nuove funzionalità
- Nuova raccolta
camera-mlkit-vision. Integra facilmente CameraX con molte funzionalità di ML Kit, tra cui la scansione di codici a barre, il riconoscimento facciale, il rilevamento del testo e così via. Trovi il codice campione qui. - Nuova API Zero-Shutter Lag sperimentale. Ottimizza la pipeline di acquisizione per ottenere una latenza migliore mantenendo al contempo 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 di riserva CAPTURE_MODE_MINIMIZE_LATENCY.
ImageAnalysis.AnalyzereMLKitAnalyzersono state rese API ufficiali.- API esposta per l'impostazione dei metadati sulla posizione nel video salvato.
- Rinomina
ImageAnalysis.Analyzer#getTargetResolutionOverride()inImageAnalysis.Analyzer#getDefaultTargetResolution().
Correzioni di bug
- 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
ExifInterfacedi analizzare correttamente gli attributi. Acquisire le immagini in formato YUV e poi comprimerle in immagini di output JPEG per aggirare il problema. (I45abb)
Versione 1.2.0-alpha04
27 luglio 2022
androidx.camera:camera-*:1.2.0-alpha04 è stato rilasciato. La versione 1.2.0-alpha04 contiene questi commit.
Modifiche alle API
- Rinomina
ImageAnalysis.Analyzer#getTargetResolutionOverride()inImageAnalysis.Analyzer#getDefaultTargetResolution(). Anche il comportamento viene modificato in modo che il valore restituito da questo metodo possa essere sostituito dal valore diImageAnalysis#setTargetResolution(). (If1d36) - API esposta per l'impostazione dei metadati sulla posizione nel video salvato. Un oggetto
android.location.Locationpuò essere impostato tramite la nuova APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location). (I313a0, b/204197544)
Correzioni di bug
- È stato risolto il problema relativo allo scatto di foto con l'anteprima di unbind (Ie70b6, b/235119898)
- Risolto un arresto anomalo in
Recorderdurante il tentativo di registrazione quando la sorgente audio non è disponibile. (I9f652)
Versione 1.2.0-alpha03
29 giugno 2022
androidx.camera:camera-*:1.2.0-alpha03 è stato rilasciato. La versione 1.2.0-alpha03 contiene questi commit.
Modifiche alle API
- È stata rimossa l'annotazione sperimentale per
ImageAnalysis.AnalyzereMLKitAnalyzer. (I0ff22)
Correzioni di bug
- È stato aggiunto un timeout predefinito per la messa a fuoco automatica di 5000 ms che completerà la parte di messa a fuoco automatica con
isFocusSuccessfulfalse seFocusMeteringActionnon viene annullato e la parte di messa a fuoco automatica non converge nella durata. (Ibc2e3) - È stato risolto il problema relativo allo scatto di foto con l'anteprima di unbind (I1d3a2, b/235119898)
- È stata abilitata l'implementazione dell'extender avanzato ed è stata aggiornata la versione dell'interfaccia delle estensioni di supporto di CameraX alla versione 1.2 (I92256)
Versione 1.2.0-alpha02
1° giugno 2022
androidx.camera:camera-*:1.2.0-alpha02 è stato rilasciato. La versione 1.2.0-alpha02 contiene questi commit.
Nuove funzionalità
- Esposizione dell'API CameraX Zero-Shutter Lag come sperimentale.
Modifiche alle API
- Aggiungi la nuova modalità di acquisizione
CAPTURE_MODE_ZERO_SHUTTER_LAGinImageCapturee aggiungiisZslSupportedinCameraInfoper eseguire query sulla funzionalità del dispositivo. La modalitàCAPTURE_MODE_ZERO_SHUTTER_LAGmira 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 la successiva rielaborazione quando l'utente preme i pulsanti per scattare foto. Se {@link VideoCapture} è associato o 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
- Risolto il problema per cui il metodo
ImageCapturetakePicture disattivava la torcia sui dispositivi segnalati. (Ib5eb5, b/228272227) - Risolto un bug per cui
AssertionErrornon veniva gestito durante il recupero della caratteristicaCONTROL_ZOOM_RATIO_RANGE.(/Ia248a, b/231701345)
Versione 1.2.0-alpha01
18 maggio 2022
androidx.camera:camera-*:1.2.0-alpha01 è stato rilasciato. La versione 1.2.0-alpha01 contiene questi commit.
Nuove funzionalità
- Lancio della nuova libreria camera-mlkit-vision
Correzioni di bug
- Risolto un problema per cui
QualitySelectornon riusciva a registrare un video in UHD quando era attiva una strategia di riserva. Il problema si verifica quandoVideoCaptureè associato aImageCapturee Preview su un dispositivo con fotocamera di livello hardware FULL o superiore. Una strategia di riserva diQualitySelectorfa sì cheVideoCaptureottenga erroneamente una risoluzione FHD. La risoluzione UHD è effettivamente supportata per questa combinazione di casi d'uso e deve essere adottata. (I0e788, b/230651237) NullPointerExceptioncorretto il giornoImageCapture.takePicture(). (I92366, b/230454568, b/229766155)- È stato corretto il comportamento di 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 è stato rilasciato. La versione 1.1.0 contiene questi commit.
Modifiche importanti dalla versione 1.0.0
- Lancio delle librerie View, Extension e Video Capture 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 libreria ufficiale camera-video per supportare i casi d'uso di acquisizione video.
- Funzionalità di conversione e rotazione da YUV a RGB (
ImageAnalysis.Builder.setOutputImageRotationEnabledesetOutputImageFormat) - Supporta la modalità multi-finestra consentendo alle applicazioni CameraX di riprendere l'utilizzo della fotocamera quando questa viene interrotta da un'altra app e lo stato attivo torna all'app CameraX.
- Garantisce il corretto funzionamento di CameraX nei dispositivi pieghevoli risolvendo alcuni problemi di anteprima.
- È stata aggiunta un'API
CameraStateche verrà esposta tramite CameraInfo. - È stata aggiunta un'API
ProcessCameraProvider.getAvailableCameraInfos()per recuperare direttamente le informazioni sulle videocamere disponibili - Formato JPEG di output per
ImageCapture#OnImageCapturedCallbackquando le estensioni sono attive. - È stata aggiunta un'API
isFocusMeteringSupportedinCameraInfoche consente alle applicazioni di verificare se ilFocusMeteringActionspecificato è supportato o meno dalla fotocamera corrente. - È stata esposta l'API
getResolutionInfoper fornire le informazioni sulla risoluzione per l'anteprima,ImageCaptureeImageAnalysis. - È stata aggiunta una nuova API
ImageCapture.Builder#setJpegQualityper consentire la modifica della qualità di compressione delle immagini JPEG di output quando si scattano foto. - È stato aggiunto
CameraSelector#filterall'API pubblica per filtrare un elenco diCameraInfosin base aCameraSelector. - Aggiunto
Camera2CameraControl.clearCaptureRequestOptionsper cancellare le opzioni di richiesta di acquisizione esistenti. - È stata aggiunta un'API sperimentale per l'utilizzo di
CameraControllercon librerie di elaborazione delle immagini esterne, ad esempio MLKit. - È stata aggiunta l'API sperimentale
CameraInfo#getCameraSelector()che restituisce unCameraSelectorunivoco per la fotocamera - Promozione di diverse API sperimentali ad API pubbliche formali
- L'annotazione
@Experimentalè stata sostituita con@RequiresOptInper le API sperimentali. Per chiamare le API sperimentali, utilizza androidx.annotation.OptIn anziché androidx.annotation.experimental.UseExperimental, che è deprecata. - 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(), - API
@ExperimentalCameraFilter - API sperimentali per la compensazione dell'esposizione.
- È stata promossa l'API sperimentale
UseCaseGroupper camera-core, camera-lifecycle e camera-video. AggiuntiViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectioneViewPort.Builder#setScaleTypeper la personalizzazione dell'area visibile. ExperimentalUseCaseGroupLifecycleè stato promosso ad API pubblica formale.- Modifiche alle API esistenti
Renamed MediaStoreOutputOptions.getCollectionaMediaStoreOutputOptions.getCollectionUri.ActiveRecordingè stato rinominato in "Registrazione" per ridurre la prolissità.- Modificata l'API di creazione
QualitySelectorin un'API basata su elenchi
Correzioni di bug
- Risolto il problema di
YuvToJpegProcessorEOFExceptionquando la modalità di estensione è attiva e la modalitàImageCapture#CAPTURE_MODE_MAX_QUALITYè impostata. - Configurazione del codec fissa non riuscita perché la registrazione video è in fase di chiusura
- Risolto il problema delle proporzioni dell'anteprima/del video allungate durante la registrazione in FHD
- Risolto il problema di audio/video non sincronizzati dopo la pausa e la ripresa su alcuni dispositivi
- Risolto il problema per cui il flash si attivava durante la messa a fuoco con tocco (
startFocusAndMetering) quando la modalità flash era impostata su Auto o Sempre attivo in un ambiente con scarsa illuminazione.
Versione 1.1.0-rc02
1° giugno 2022
androidx.camera:camera-*:1.1.0-rc02 è stato rilasciato. La versione 1.1.0-rc02 contiene questi commit.
Correzioni di bug
NullPointerExceptioncorretto il giornoImageCapture.takePicture(). (I92366, b/230454568, b/229766155)- È stato corretto un bug per cui
AssertionErrornon veniva gestito durante il recupero della caratteristicaCONTROL_ZOOM_RATIO_RANGE. (Ia248a, b/231701345)
Versione 1.1.0-rc01
11 maggio 2022
androidx.camera:camera-*:1.1.0-rc01 è stato rilasciato. La versione 1.1.0-rc01 contiene questi commit.
Nuove funzionalità
- Rilascia 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 associato, causando l'errore degli utilizzi successivi diVideoCapture<Recorder>durante la registrazione conMediaCodec.CodecException, in particolare sui dispositivi con API 21-22. (Ie7f68) - Correggi le immagini acquisite di
CameraExtensionsActivitynon eliminate inImageCaptureTest
Versione 1.1.0-beta03
6 aprile 2022
androidx.camera:camera-*:1.1.0-beta03 è stato rilasciato. La versione 1.1.0-beta03 contiene questi commit.
Modifiche alle API
- Il costruttore
CaptureRequestOptionsè stato limitato. (I261b6) - È stata aggiunta un'API sperimentale per l'utilizzo di
CameraControllercon librerie di elaborazione delle immagini esterne, ad esempio MLKit (I4ea71)
Correzioni di bug
- Risolto il problema per cui l'anteprima veniva visualizzata lateralmente in
PreviewViewquando l'attività non veniva riavviata dopo la rotazione dei dispositivi in modalità multi-finestra. (I1ea36, b/223488673) - Risolvi un problema relativo alla modalità multi-finestra per cui, quando lo stato attivo torna all'app, non viene ripresa la fotocamera quando (1) un'altra app con priorità elevata apre una fotocamera diversa (2) il dispositivo è un dispositivo Samsung Android 12. (I7e9f2)
- È stata inclusa una soluzione alternativa per i dispositivi che si arrestano in modo anomalo durante la verifica della disponibilità di Flash. Questi dispositivi non avranno la torcia disponibile. (If26a3, b/216667482)
- Risolto il problema di
AbstractMethodErrorche si verificava quando le app utilizzavano le estensioni e attivavano ProGuard. (I7cbaf, b/222726805) - Disattivazione forzata della modalità di estensione bokeh sul dispositivo Motorola razr 5G, che causa il problema della schermata di anteprima nera. (I35d49)
- Risolto il problema di audio/video fuori sincrono dopo la pausa e la ripresa su alcuni dispositivi Samsung precedenti all'API 29. (I64622, b/202798609, b/202798572)
- Risolto il problema di mancata sincronizzazione di audio e video dopo la pausa e la ripresa su Sony G3125. (I2a1a5, b/202799148)
- Risolto un arresto anomalo quando il registratore rilevava un
InvalidConfigException. Tuttavia, questa correzione impedisce solo l'arresto anomalo dell'app, ma non risolve la causa dell'erroreInvalidConfigException. Se non è ancora possibile configurareRecorder, le applicazioni riceveranno un callback di errore all'avvio della registrazione. (I89c29, b/213617227)
Contributo esterno
- Aggiornamento dell'API :compose:ui:ui-test (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 è stato rilasciato. La versione 1.1.0-beta02 contiene questi commit.
Modifiche alle API
- Aggiunta della possibilità di specificare l'ID della fotocamera fisica tramite Camera2Interop. (I5aed8)
Correzioni di bug
- Risolto il problema dell'anteprima allungata su Oppo Find N (I7d004)
- È stato risolto un problema di Galaxy J7 Prime per cui l'anteprima era distorta. (I4c500)
- Utilizza un bitrate compatibile per trovare il codificatore video. (d969052)
Versione 1.1.0-beta01
26 gennaio 2022
androidx.camera:camera-*:1.1.0-beta01 è stato 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 alle API
- Aggiunto
Camera2CameraControl.clearCaptureRequestOptionsper cancellare le opzioni di richiesta di acquisizione esistenti. (Ifa07d)
Correzioni di bug
- Risolto l'arresto anomalo durante la registrazione del video su alcuni dispositivi precedenti ad Android O(API 26). (I88fdf, b/212328261)
- Risolto il problema relativo alla regione AF errata quando si utilizza
cameraControl#startFocusAndMetering()sulla fotocamera anteriore nei dispositivi Samsung (Ifbf59, b/210548792) - Utilizza la torcia come flash su Pixel 3a/Pixel 3a XL per migliorare la velocità e la qualità dell'immagine acquisita al buio (Ib12b6, b/211474332)
- Consente alle applicazioni di riprendere l'utilizzo della fotocamera quando questa viene interrotta da un'altra applicazione con priorità più alta in modalità multi-finestra e lo stato attivo torna all'applicazione. Tieni presente che potrebbe esserci una certa latenza(da 1 a 10 secondi o più) tra i cambi di messa a fuoco 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 è stato rilasciato. La versione 1.1.0-alpha12 contiene questi commit.
Modifiche alle 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
QualitySelectorsono state modificate per essere rappresentate da oggetti di classe. Ad esempio,QualitySelector.QUALITY_HDviene modificato inQuality.HDeQualitySelector.FALLBACK_STRATEGY_LOWERviene 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 delle qualità di input anziché all'ordine creato daQualitySelector.Procedure. La classeQualitySelector.Procedureè stata rimossa. (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 inRecordingper ridurre la prolissità. (I77ceb)
Correzioni di bug
- Risolto il problema per cui le foto scattate in modalità
FLASH_AUTOerano 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 filtrate le videocamere che non hanno
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. Le videocamere conREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEhanno l'insieme minimo di funzionalità supportate da ogni dispositivo videocamera. La fotocamera senzaREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEpotrebbe essere una fotocamera che supporta funzionalità speciali e non supporta l'output dei colori standard.CameraXnon può supportare i casi d'usoPreview,ImageCapture,ImageAnalysisoVideoCaptureper queste videocamere. Pertanto, queste videocamere devono essere filtrate per evitare un utilizzo errato. (Ib8cda) CameraSelector#filternon genera più unIllegalArgumentExceptionquando il set di risultati è vuoto. (I27804)- Ora vengono utilizzate euristiche più intelligenti per selezionare le impostazioni del codificatore in base ai profili specificati dall'OEM. (Iaeef0)
- Risolto il problema per cui l'anteprima mostrava linee di colore interlacciate dopo l'avvio della registrazione di video UHD su Pixel 1. (I833c6, b/205340278)
Versione 1.1.0-alpha11
17 novembre 2021
androidx.camera:camera-*:1.1.0-alpha11 è stato rilasciato. La versione 1.1.0-alpha11 contiene questi commit.
Modifiche alle API
- È stato aggiunto CameraSelector#filter all'API pubblica per filtrare un elenco di CameraInfo in base a un CameraSelector. (I105d0)
Aggiunta dell'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.
Aggiunta dell'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
getSensorToBufferTransformMatrixin ImageInfo. La matrice restituita è una mappatura dalle coordinate del sensore alle coordinate del buffer, ovvero dal valore diCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZEa(0, 0, image.getWidth, image.getHeight). La matrice può essere utilizzata per mappare le coordinate da un {UseCase} a un altro. Ad esempio, la mappatura delle coordinate del riconoscimento facciale rilevato con ImageAnalysis su Anteprima. (I9ff1e)È stata aggiunta una nuova API ImageCapture.Builder#setJpegQuality per consentire la modifica della qualità di compressione dell'immagine JPEG di output quando si scatta una foto. (I8dcf4)
MediaStoreOutputOptions.getCollection è stato rinominato in MediaStoreOutputOptions.getCollectionUri. (I16639)
Correzioni di bug
- È stato risolto il problema per cui il flash veniva attivato durante la messa a fuoco con tocco (startFocusAndMetering) quando la modalità flash era impostata su Auto o Always_on in un ambiente con scarsa illuminazione. (Id4c11)
- HDR+ disattivato su Pixel 2 XL / Pixel 3 XL in modalità MINIMIZE_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 è stato rilasciato. La versione 1.1.0-alpha10 contiene questi commit.
Nuove funzionalità
- Rilascio ufficiale di
androidx.camera:camera-video:1.1.0-alpha10come prima versione alpha per Video. Esistono diversi problemi noti che verranno risolti nelle release successive.
Modifiche alle API
- È stata aggiunta l'annotazione
@RequiresApi(21)a tutte le classi CameraX ed è stato rimosso minSdkVersion da AndroidManifest.xml. In questo modo, camera-core può essere facilmente integrato nelle applicazioni con un minSdkVersion inferiore a 21, ma che vogliono utilizzare in modo condizionale i percorsi del codice che si basano sull'API 21 e versioni successive. Per qualsiasi applicazione con minSdkVersion 21 o versioni successive, questa modifica non richiede alcun intervento. (Ie7f2e, b/200599470)
Correzioni di bug
- Genera un'eccezione InitializationException per consentire all'app di gestire correttamente l'eccezione AssertionError che si è verificata 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 sono stati rilasciati. La versione 1.1.0-alpha09 contiene questi commit.
Modifiche alle API
- L'annotazione ExperimentalUseCaseGroup è stata rimossa ora che le API non sono più sperimentali. (I01ef5)
Correzioni di bug
- Risolvi il problema per cui le foto acquisite sono sfocate
in modalità
MAXIMIZE_QUALITY. (I173a9, b/193823892) - Risolto un problema di Samsung Galaxy J5 per cui la fotocamera si bloccava dopo aver scattato foto con il flash attivo/automatico in un ambiente buio (I3aab9)
- Quando è necessario il ritaglio per ImageCapture, comprimi l'immagine ritagliata di output 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à della compressione JPEG sarà 95. Se la modalità di acquisizione èCAPTURE_MODE_MAXIMIZE_QUALITY, la qualità della 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 sono stati rilasciati. La versione 1.1.0-alpha08 contiene questi commit.
Nuove funzionalità
- Aggiunta dell'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, verrà selezionato ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888. (I7902d)
Modifiche alle API
- L'annotazione ExperimentalUseCaseGroupLifecycle è stata rimossa ora che le API non sono più sperimentali. (I17b85)
Correzioni di bug
- Risolto il problema per cui la schermata di anteprima era troppo luminosa 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 funzionava su alcuni dispositivi quando la modalità flash veniva impostata su FLASH_MODE_ON poco prima di scattare foto. (Ieb49b)
- È stato risolto il problema per cui l'anteprima si interrompeva per un po' di tempo durante lo scatto di foto se VideoCapture, ImageCapture e Preview erano associati. (I56197, b/193864120)
- Consente a ImageAnalysis di selezionare una risoluzione superiore a 1080p. Un dispositivo di livello LIMITED o superiore può supportare una risoluzione di dimensioni RECORD per ImageAnalysis quando è associato a Preview e ImageCapture. Il compromesso è che la risoluzione selezionata per ImageCapture dovrà essere anche una risoluzione di dimensioni RECORD. Per selezionare correttamente una risoluzione di dimensioni RECORD per ImageAnalysis, è necessario impostare una risoluzione target di 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é ImageCapture abbia una risoluzione MASSIMA. Per le definizioni delle dimensioni RECORD, MAXIMUM e altri dettagli, consulta 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 fotocamera, come determinato 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, restituisci l'URI dell'immagine salvata se la posizione di salvataggio è File. (Ib5b49, b/149241379)
- 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 sono stati rilasciati. La versione 1.1.0-alpha07 contiene questi commit.
Correzioni di bug
- Risolto un problema di Samsung Galaxy Note 5 per cui la fotocamera si bloccava dopo aver scattato foto con il flash attivo/automatico in un ambiente buio (If6871)
- Risolto il problema
YuvToJpegProcessorEOFException quando la modalità di estensione è attiva 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 sono stati rilasciati. La versione 1.1.0-alpha06 contiene questi commit.
Modifiche alle API
- Promuovi le API sperimentali di compensazione dell'esposizione per camera-core (I08ee8)
- È stata aggiunta un'API isFocusMeteringSupported in CameraInfo che consente alle applicazioni di verificare se l'azione FocusMeteringAction specificata è supportata o meno sulla fotocamera corrente. (Ib45ae, b/188606490)
- È stata esposta l'API getResolutionInfo per fornire le informazioni sulla risoluzione per Preview, ImageCapture e ImageAnalysis. (I2b613, b/188600718)
- Promozione delle seguenti API sperimentali 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. Aggiunti
ViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectioneViewPort.Builder#setScaleTypeper la personalizzazione dell'area visibile. (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 sono stati rilasciati. La versione 1.1.0-alpha05 contiene questi commit.
Modifiche alle API
- È stata rimossa la classe
Camera2CameraFilter. Ti consigliamo di selezionare la fotocamera tramite CameraFilter e di recuperare CameraCharacteristics o altre informazioni relative a Camera2 tramite Camera2CameraInfo, se necessario. (Ib887c) - Le API
ExperimentalCameraFilternon sono più in fase sperimentale e diventano API ufficiali. Possono essere utilizzate senza l'annotazione OptIn. (I4bc94) - È stata aggiunta l'API dello stato della fotocamera esposta tramite
CameraInfo#getCameraState(). (Ia86b4) - È stata aggiunta l'API sperimentale
CameraInfo#getCameraSelector()che restituisce un CameraSelector univoco per la sua fotocamera (I77f9f)
Correzioni di bug
- Risolto il problema per cui ListenableFuture restituito in setZoomRatio e setLinearZoom non poteva essere completato su alcuni dispositivi Android 11 (I716d7)
- Velocizza il passaggio da una fotocamera all'altra e riduci la frequenza di errori del dispositivo della fotocamera (I34c99)
- Sostituzione di 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 sono stati rilasciati. La versione 1.1.0-alpha04 contiene questi commit.
Correzioni di bug
- È stata corretta una perdita di memoria causata dall'accesso simultaneo di più thread alla stessa raccolta. La perdita di memoria potrebbe causare la conservazione dell'Activity o del Fragment da parte di un'istanza di Preview. (I7b4b8)
- L'annotazione
@Experimentalè stata sostituita con@RequiresOptInper le API sperimentali. Per chiamare le API sperimentali, utilizzaandroidx.annotation.OptInanzichéandroidx.annotation.experimental.UseExperimental, che è stato ritirato. (Iff226) - Risolto il problema per cui ImageCapture con flash On/Auto scattava 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 sono stati rilasciati. La versione 1.1.0-alpha03 contiene questi commit.
Correzioni di bug
- Formato JPEG di output per
ImageCapture#OnImageCapturedCallbackquando la modalità Estensioni è attiva. (I0d7b1) - È stato corretto l'errore di inizializzazione sui dispositivi UMIDIGI BISON (I57d9e, b/180818665)
- Risolto il problema dell'anteprima allungata di 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 sono stati rilasciati. La versione 1.1.0-alpha02 contiene questi commit.
Modifiche alle API
- È stata aggiunta un'API
ProcessCameraProvider.getAvailableCameraInfos()per recuperare direttamente le informazioni sulle fotocamere disponibili, ovvero tutte le fotocamere del dispositivo o quelle selezionate daCameraSelectorfornite inCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector). (Ieac08)
Correzioni di bug
- CameraX ora tenta di forzare l'apertura di una fotocamera al primo tentativo. Di conseguenza, CameraX potrebbe sottrarre la fotocamera ad altri client della fotocamera quando la sua app ha una priorità più alta. (Iab069, b/175820568)
- Risolto l'errore del test Robolectric quando setAvailableCamerasLimiter viene utilizzato in CameraXConfig. (Ice307)
- Questa modifica rileva l'eccezione quando la coda delle immagini è al massimo in ImageAnalysis. Quindi, invece di un arresto anomalo, potresti notare che altri casi d'uso sono bloccati o lenti, ad esempio l'anteprima bloccata o lenta. (Ic12da, b/175851631)
- È stato corretto ExtensionsErrorListener per segnalare gli errori quando è associato solo Preview o ImageCapture. (I5ae39)
- È stata corretta la regressione delle prestazioni di ImageCapture rimuovendo la convalida della posizione di salvataggio dell'immagine 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é l'app proverà a salvare l'immagine dopo aver scattato la foto. (I1fd4e, b/177061560)
- Risolta la regressione delle prestazioni di ImageCapture con OutputFileOptions di tipo "File". (I5164a, b/177061560)
- Documentazione 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 sono stati rilasciati. La versione 1.1.0-alpha01 contiene questi commit.
Correzioni di bug
- Soluzione alternativa inclusa per i dati di immagini danneggiate intermittenti nei JPEG sulla fotocamera posteriore SM-G930T. (I52001, b/159831206)
- Risolto il problema di
IllegalArgumentExceptionche 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 sono stati rilasciati. La versione 1.0.2 contiene questi commit.
Correzioni di bug
- Risolvi il problema per cui le foto acquisite sono sfocate
in modalità
MAXIMIZE_QUALITY. (I173a9, b/193823892) - Risolto un problema per cui l'immagine acquisita con il flash era 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 sono stati rilasciati. La versione 1.0.1 contiene questi commit.
Correzioni di bug
È stato risolto il problema per cui l'oggetto
ListenableFuturerestituito insetZoomRatioesetLinearZoomnon può essere completato su alcuni dispositivi Android 11 (I716d7)Risolto il problema per cui la fotocamera si bloccava nello stato di chiusura su alcuni dispositivi e causava un'anteprima nera. (I34c99)
Camera-Camera2, Camera-Core e Camera-Lifecycle versione 1.0.0
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 sono stati 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
- CameraX mira a fornire un livello di compatibilità che risolve molti problemi nell'ecosistema della fotocamera 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 sono stati rilasciati. La versione 1.0.0-rc05 contiene questi commit.
Correzioni di bug
- Risolto il problema per cui ImageCapture con flash On/Auto scattava 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 sono stati 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 sono stati rilasciati. La versione 1.0.0-rc03 contiene questi commit.
Correzioni di bug
- Correggi l'errore di formato nel documento di
ProcessCameraProvider#getInstance - Risolto l'errore del test Robolectric quando setAvailableCamerasLimiter viene utilizzato in CameraXConfig.
- È stata corretta la regressione delle prestazioni di ImageCapture rimuovendo la convalida della posizione di salvataggio dell'immagine 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é l'immagine verrà salvata dopo lo scatto della foto.
- Questa modifica rileva l'eccezione quando la coda delle immagini è al massimo in ImageAnalysis. Quindi, anziché un arresto anomalo, potresti notare che altri casi d'uso sono bloccati o lenti, ad esempio l'anteprima bloccata o lenta.
- Soluzione alternativa inclusa per i dati di immagini danneggiate intermittenti nei JPEG sulla fotocamera posteriore SM-G930T. (I52001, b/159831206)
- Questa modifica rileva l'eccezione quando la coda delle immagini è al massimo in ImageAnalysis. Quindi, invece di un arresto anomalo, potresti notare che altri casi d'uso sono bloccati o lenti, ad esempio l'anteprima bloccata o lenta. (Ic12da, b/175851631)
- Risolto l'errore del test Robolectric quando setAvailableCamerasLimiter viene utilizzato in CameraXConfig. (Ice307)
- È stata corretta la regressione delle prestazioni di ImageCapture rimuovendo la convalida della posizione di salvataggio dell'immagine 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é l'app proverà a salvare l'immagine dopo aver scattato la foto. (I1fd4e, b/177061560)
- Risolta 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 sono stati 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 le dimensioni di visualizzazione erano superiori a 640 x 480. (b/150506192)
Limita il numero di tentativi di riapertura della fotocamera. Durante il tentativo di recupero da determinati problemi durante l'apertura della fotocamera, CameraX non tenterà più di riaprire la fotocamera a tempo indeterminato, ma si interromperà dopo aver riprovato per 10 secondi.I435d2
Risolto il problema di
IllegalArgumentExceptionche 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 sono stati rilasciati. La versione 1.0.0-rc01 contiene questi commit.
Modifiche alle API
- Modificati CameraFilter e Camera2Filter per accettare CameraInfo. (I6883d)
- Aggiunta la classe sperimentale Camera2CameraControl per consentire l'interoperabilità con le API Camera2 in modo dinamico. (I45cf3)
- Ridenominazione di Camera2CameraInfo#fromCameraInfo in #from. (Ia2bd6)
- È stata aggiunta un'API setAvailableCamerasLimiter sperimentale 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 di logging minimo per i log di CameraX. Se non viene impostato, il valore predefinito èLog#DEBUG. (Ic3245)
Correzioni di bug
- Soluzione alternativa inclusa per i dati delle immagini danneggiati in modo intermittente nei JPEG sulla fotocamera posteriore SM-G930V. (I5aca5, b/159831206)
- Risolto il problema per cui lo scatto di foto non riceveva risultati quando il flash era sempre attivo e l'ambiente era buio sui dispositivi Samsung SM-A716. (If98b2, b/172036589)
- Risolto il problema per cui l'anteprima non poteva essere interrotta chiamando
Preview.setSurfaceProvider(null). (I3ac18) - Risolto il problema di orientamento durante l'acquisizione di immagini 4:3 su alcuni dispositivi. (I0e3fb, b/171492111)
Camera Camera2, Core e Lifecycle versione 1.0.0-beta12
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 sono stati rilasciati. La versione 1.0.0-beta12 contiene questi commit.
Correzioni di bug
- Disattivato il flash automatico sui dispositivi Samsung A3 per correggere l'arresto anomalo quando si scatta una foto con la modalità AE del 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#onCaptureSuccessnon chiude più l'immagine. Questo serve a evitare comportamenti imprevisti per gli sviluppatori. Gli sviluppatori non devono fare affidamento su super.onCaptureSuccess per chiudere l'immagine. (Ifbf9c) - La variante androidx dell'annotazione Experimental è stata deprecata per garantire la parità con Kotlin. È stata sostituita dall'annotazione RequiresOptIn e il linter per 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 è stato rilasciato. La versione 1.0.0-beta11 contiene questi commit.
Nuove funzionalità
- Supporta l'API
CONTROL_ZOOM_RATIOdi Android 11 per lo zoom su dispositivi Android 11 o versioni successive che contengono unCONTROL_ZOOM_RATIO_RANGEvalido. (I62cc6)
Correzioni di bug
- Risolto il problema NumberFormatException che si verificava quando l'ID della videocamera non era un numero intero. (Ib2228)
- Migliorata la latenza dell'inizializzazione di CameraX e di bindToLifecycle (I61dc5)
- La creazione di UseCase non richiede l'inizializzazione di CameraX per essere completata. Tutte le configurazioni specifiche dell'implementazione vengono impostate su UseCase una volta collegato a un'istanza Camera, che per l'API pubblica è
ProcessCameraProvider.bindToLifecycle(). (Ia5411) <UseCase>.getTargetRotation()restituiràSurface.ROTATION_0se viene chiamato prima di essere collegato a un'istanza Camera, a meno che non sia stato impostato un targetRotation su Builder o UseCase. (I80fcd)
Camera-Core versione 1.0.0-beta11
14 ottobre 2020
androidx.camera:camera-core:1.0.0-beta11 è stato rilasciato. La versione 1.0.0-beta11 contiene questi commit.
Nuove funzionalità
- Supporta l'API Android 11 CONTROL_ZOOM_RATIO per lo zoom su
dispositivi Android 11 o versioni successive che contengono
CONTROL_ZOOM_RATIO_RANGE validi. (I62cc6)
Correzioni di bug
- Risolto il problema NumberFormatException che si verificava quando l'ID della videocamera non era un numero intero. (Ib2228)
- La creazione di UseCase non richiede l'inizializzazione di CameraX per essere completata. Tutte le configurazioni specifiche dell'implementazione vengono impostate su UseCase una volta collegato a un'istanza Camera, che per l'API pubblica è
ProcessCameraProvider.bindToLifecycle(). (Ia5411) <UseCase>.getTargetRotation()restituiràSurface.ROTATION_0se viene chiamato prima di essere collegato a un'istanza Camera, a meno che non sia stato impostato un targetRotation su Builder o UseCase. (I80fcd)
Camera-Core versione 1.0.0-beta10
23 settembre 2020
androidx.camera:camera-core:1.0.0-beta10 è stato rilasciato. La versione 1.0.0-beta10 contiene questi commit.
Correzioni di bug
- È stato corretto 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 è stato rilasciato. La versione 1.0.0-beta10 contiene questi commit.
Correzioni di bug
- Release per supportare Camera-Core 1.0.0-beta10
Camera-Camera2 versione 1.0.0-beta09
16 settembre 2020
androidx.camera:camera-camera2:1.0.0-beta09 è stato rilasciato. La versione 1.0.0-beta09 contiene questi commit.
Modifiche alle API
- Anziché fornire metodi statici, Camera2CameraInfo accetta un'istanza CameraInfo quando viene creata per recuperare le informazioni relative a Camera2. (I5b844)
Correzioni di bug
- Risolto un problema relativo alle proporzioni target sui tablet. Se le proporzioni target sono impostate su
AspectRatio.RATIO_16_9, è necessario selezionare una dimensione 16:9. (Ib7fcf, b/151969438) - Genera un
InitializationExceptionper consentire all'app di gestire correttamente l'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 è stato rilasciato. La versione 1.0.0-beta09 contiene questi commit.
Modifiche alle API
- Risolto il bug per cui l'area visibile è contrassegnata come non null su UseCaseGroup. Gli sviluppatori dovrebbero essere in grado di creare un'area visibile senza impostarla. (Ie3d2e)
- 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 callback
TranformationInfoListener. (I21470)
Correzioni di bug
- Risolto il problema per cui il flash di alcuni dispositivi non si spegneva. Questo accade quando la modalità flash è impostata su
FLASH_MODE_ONper scattare una foto e viene modificata inFLASH_MODE_OFFquando il flash viene attivato. Il sintomo è simile all'attivazione della modalità torcia. (Ib4451, b/162568128) - È stato forzato l'utilizzo di TextureView da parte di PreviewView se l'effetto dell'estensione è abilitato e l'implementazione della libreria del fornitore deve eseguire un processo speciale sulla superficie di output. (I0c3cc)
- Risolto il problema di perdita di attività/frammenti quando un contesto di attività/frammento viene passato a
ProcessCameraProvider.getInstance(Context).
Problemi noti
- Quando è impostato ViewPort, il rettangolo di ritaglio di ImageCapture potrebbe non essere corretto sui dispositivi che ruotano il buffer dell'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 è stato rilasciato. La versione 1.0.0-beta08 contiene questi commit.
Correzioni di bug
- Ottimizzazione di bindToLifecycle per l'esecuzione rapida sul thread principale. (I1d57e)
- DisplayOrientedMeteringPointFactory accetta un'istanza CameraInfo anziché un CameraSelector, in modo che esista una mappatura diretta alla fotocamera per cui la factory genererà i punti. Tutte le classi che utilizzano DisplayOrientedMeteringPointFactory accettano anche un'istanza CameraInfo anziché CameraSelector. (I400c1)
- Risolto il problema relativo al raggruppamento delle dimensioni delle proporzioni con risoluzione automatica, per cui viene selezionata una dimensione mod16 16:9 (864 x 480) quando l'impostazione della risoluzione target è 2016 x 1080 ed è supportata un'altra dimensione 16:9 1920 x 1080. (I53167, b/159363774)
- È stato risolto il problema di CameraControl che ne impediva il funzionamento a causa di una race condition (I2279f, b/152333890, b/160714166)
Camera-Core versione 1.0.0-beta08
19 agosto 2020
androidx.camera:camera-core:1.0.0-beta08 è stato rilasciato. La versione 1.0.0-beta08 contiene questi commit.
Modifiche alle API
DisplayOrientedMeteringPointFactoryaccetta un'istanzaCameraInfoanzichéCameraSelector, quindi esiste una mappatura diretta alla videocamera per cui la factory genererà i punti. Tutte le classi che utilizzanoDisplayOrientedMeteringPointFactoryaccettano anche un'istanzaCameraInfoanzichéCameraSelector. (I400c1)
Correzioni di bug
- Per l'acquisizione di immagini, sovrascrivi il flag di capovolgimento 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 è stato rilasciato. La versione 1.0.0-beta07 contiene questi commit.
Correzioni di bug
- Risolto il problema per cui l'anteprima veniva allungata sui dispositivi legacy con Android 5.0. (I0c03a)
- Sono state escluse alcune dimensioni JPEG supportate 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 è stato rilasciato. La versione 1.0.0-beta07 contiene questi commit.
Modifiche alle API
- Unisci lo stile di vestibilità di
FIT_CENTER,FIT_STARTeFIT_ENDconFIT.FITsignifica 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
- Risolto il problema per cui l'anteprima veniva allungata sui dispositivi legacy con Android 5.0. (I0c03a)
- Risolto il problema dell'eccezione
ConcurrentModificationExceptiondurante l'annullamento dell'associazione dei casi d'uso. (I371c0)
Camera-Camera2 versione 1.0.0-beta06
24 giugno 2020
androidx.camera:camera-camera2:1.0.0-beta06 è stato rilasciato. La versione 1.0.0-beta06 contiene questi commit.
Modifiche alle API
- Sono state aggiunte interfacce sperimentali per filtrare le fotocamere in base all'ID fotocamera e a CameraCharacteristics. (I28f61)
Correzioni di bug
- Risolto il problema per cui startFocusAndMetering non riusciva a mettere a fuoco correttamente su Samsung Galaxy S7. (If3be7, b/159039233)
- Risolto il problema per cui la fotocamera non poteva essere chiusa dopo l'uscita dall'app. (I7a7b3)
- Risolto il problema per cui la ripetuta interruzione del cambio di fotocamera interrompeva l'anteprima quando si utilizzava l'implementazione SurfaceView di PreviewView (I920ce)
CameraControl#startFocusAndMeteringnon 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 è stato rilasciato. La versione 1.0.0-beta06 contiene questi commit.
Modifiche alle API
- Sono state aggiunte interfacce sperimentali per filtrare le fotocamere in base all'ID fotocamera e a CameraCharacteristics. (I28f61)
Correzioni di bug
- Ora CameraX può essere configurato con
ProcessCameraProvider#configureInstance()prima di chiamareProcessCameraProvider#getInstance(). In questo modo è possibile personalizzareCameraXConfigsenza dover implementareCameraXConfig.Providernella classe Application dell'app. (Ia1a8d) CameraControl#startFocusAndMeteringnon 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 è stato rilasciato. La versione 1.0.0-beta05 contiene questi commit.
Correzioni di bug
- Risolto l'arresto anomalo all'avvio dell'app durante l'inizializzazione di CameraX quando lo smartphone è in modalità Non disturbare. Un
InitializationExceptioncontiene unCameraUnavailableExceptionche verrà impostato suListenableFuturedel risultato dell'inizializzazione anziché causare l'arresto anomalo dell'applicazione. (I9909a, b/149413835) - Risolto l'arresto anomalo durante la chiamata di
startFocusAndMeteringsu dispositivi in cuiCONTROL_AF_STATEè null. (Ife55e, b/157084254)
Camera-Core versione 1.0.0-beta05
10 giugno 2020
androidx.camera:camera-core:1.0.0-beta05 è stato rilasciato. La versione 1.0.0-beta05 contiene questi commit.
Modifiche alle API
- Risolto l'arresto anomalo all'avvio dell'app durante l'inizializzazione di CameraX quando lo smartphone è in modalità Non disturbare. Un
InitializationExceptioncontiene unCameraUnavailableExceptionche verrà impostato suListenableFuturedel risultato dell'inizializzazione anziché causare l'arresto anomalo dell'applicazione. (I9909a, b/149413835)
Correzioni di bug
- Aggiornamento dei javadoc di
setTargetResolutionesetTargetRotation. (Iae16f)
Camera-Camera2 versione 1.0.0-beta04
27 maggio 2020
androidx.camera:camera-camera2:1.0.0-beta04 è stato rilasciato. La versione 1.0.0-beta04 contiene questi commit.
Correzioni di bug
- È stato consentito alle applicazioni di impostare qualsiasi parametro di richiesta di acquisizione di camera2 tramite
Camera2Interopsenza 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 esegue l'override dei parametri utilizzando Camera2Interop. (Ibe5a1, b/149103700) - L'inizializzazione automatica è stata corretta quando si utilizza un'app su un dispositivo che utilizza una pseudo-localizzazione. (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)
- Risolto il problema per cui l'immagine scattata a volte era troppo scura anche se il flash era attivo. (I5d9fa, b/149729613)
- È stato corretto un bug per cui il buffer in
ImageProxydaImageCapturenon veniva riavvolto (I0c455, b/153249512) - Risolti i problemi per cui l'associazione di ImageCapture solo: (1) non riusciva a scattare foto con MAX_QUALITY; (2) generava una qualità dell'immagine scadente perché l'esposizione automatica non funzionava. (I17782, b/145326998)
- È stata migliorata l'affidabilità della riapertura della fotocamera quando CameraX viene disconnessa 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 è stato rilasciato. La versione 1.0.0-beta04 contiene questi commit.
Modifiche alle 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
- Risolve l'arresto anomalo in
ImageAnalysisin cui si accede aImageProxydopo la chiusura diImageReaderProxy. In questo modo, tutte leImageProxyricevute daAnalyzerdevono essere chiuse prima che venga chiusaImageReaderProxy. (I4b299, b/145956416, b/154155377, b/156357269) - Rimosso il parametro
CameraInfodaPreviewView#createSurfaceProvider(),PreviewViewora lo recupera internamente daSurfaceRequest. (If18f0, b/154652477) - L'inizializzazione automatica è stata corretta quando si utilizza un'app su un dispositivo che utilizza una pseudo-localizzazione. (I3bef3, b/154767663)
- Risolto il problema per cui l'immagine scattata a volte era troppo scura anche se il flash era attivo. (I5d9fa, b/149729613)
- Risolto il problema con
ImageAnalysisper cui più chiamate a setAnalyzer/clearAnalyzer impedivano all'analizzatore di ricevere immagini da analizzare. (I6169f, b/151605317, b/153514544) - È stato corretto un bug per cui il buffer in
ImageProxydaImageCapturenon veniva riavvolto (I0c455, b/153249512) - Risolto il problema per cui la prima videocamera nell'elenco dei dispositivi supportati da
CameraManagernon veniva sempre selezionata per l'utilizzo. (I4c624, b/153418028) - Risolto un arresto anomalo intermittente causato dall'impostazione
Preview.SurfaceProviderche non rilasciava 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 è stato rilasciato. La versione 1.0.0-beta03 contiene questi commit.
Correzioni di bug
- Correzioni per supportare la release di
camera-core
Camera-Core Versione 1.0.0-beta03
15 aprile 2020
androidx.camera:camera-core:1.0.0-beta03 è stato rilasciato. La versione 1.0.0-beta03 contiene questi commit.
Correzioni di bug
- È stata corretta la regressione dalla versione beta03 per cui la chiamata di
bindToLifecycle()con zeroUseCasegenerava un'eccezione. In questo modo, è stato impedito il recupero di unCamerasenza l'associazione di unUseCase.
Camera-Camera2 versione 1.0.0-beta02
1° aprile 2020
androidx.camera:camera-camera2:1.0.0-beta02 è stato rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Correzioni di bug
- È stato corretto il valore
ImageInfo.getRotationDegrees()delImageProxyprodotto daImageCapturein modo che corrisponda al valore di rotazione dell'orientamento EXIF. (Id4281, b/150802561) - L'ordinamento esplicito delle dipendenze di CameraX all'interno di
build.gradlenon è più necessario per utilizzare l'implementazione predefinita di CameraX/Camera2. Per i casi in cui è richiesta la dichiarazione di dipendenze rigide, ora tutte le dipendenze di CameraX possono essere incluse nel file di build. (I46e88) - Risolto il problema di
IllegalArgumentExceptionche si verificava sui dispositivi con dimensioni del display inferiori a 640 x 480. (Ife3f2, b/150506192) - Risolto il problema di
bindToLifecyclein modo che modifichi UseCase solo se l'associazione va a buon fine. In precedenza, quando veniva chiamatobindToLifecycleper eseguire i calcoli della risoluzione, UseCase veniva aggiornato. Ora non è più necessario aggiornare UseCase per eseguire i calcoli (I78d9e)
Camera-Core versione 1.0.0-beta02
1° aprile 2020
androidx.camera:camera-core:1.0.0-beta02 è stato rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Correzioni di bug
- È stato corretto il valore
ImageInfo.getRotationDegrees()delImageProxyprodotto daImageCapturein modo che corrisponda al valore di rotazione dell'orientamento EXIF. (Id4281, b/150802561) - È stato corretto
bindToLifecyclein modo che modifichi UseCase solo se l'associazione va a buon fine. In precedenza, quando veniva chiamatobindToLifecycleper eseguire i calcoli della risoluzione, UseCase veniva aggiornato. Ora non è più necessario aggiornare UseCase per eseguire i calcoli (I78d9e) - Risolto un problema per cui la sessione di acquisizione del caso d'uso
Previewnon veniva aggiornata quando la superficie di anteprima cambiava dopo aver chiamatoPreview.setSurfaceProvider()più di una volta.
Camera-Camera2 versione 1.0.0-beta01
26 febbraio 2020
androidx.camera:camera-camera2:1.0.0-beta01 è stato rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Correzioni di bug
SurfaceRequest.setSurface(Surface)è stato rinominato inSurfaceRequest.provideSurface(Surface)eSurfaceRequest.setWillNotComplete()inSurfaceRequest.willNotProvideSurface(). (I224fe)- Risolto un problema relativo alle proporzioni di un'immagine salvata che non erano corrette 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 conservando il flag che imposta il provider
CameraXConfigpredefinito. (I2d6c1)
Camera-Core versione 1.0.0-beta01
26 febbraio 2020
androidx.camera:camera-core:1.0.0-beta01 è stato rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Modifiche alle API
- Sostituito
ListenableFuturesuSurfaceRequest.provideSurface()conExecutoreCallback. In questo modo l'API viene semplificata, in quanto non è più necessario gestire le eccezioni suprovideSurface()e viene applicato il principio per cui il callbackprovideSurface()non può essere annullato. In questo modo si evitano arresti anomali sui dispositivi meno recenti causati dal rilascio prematuro delle piattaforme. L'oggettoSurfaceRequest.Resultviene ora utilizzato per monitorare il modo in cui unSurfaceRequestutilizza l'oggettoSurfacefornito. (I7854b) SurfaceRequest.setSurface(Surface)è stato rinominato inSurfaceRequest.provideSurface(Surface)eSurfaceRequest.setWillNotComplete()inSurfaceRequest.willNotProvideSurface(). (I224fe)
Correzioni di bug
- Risolto un problema relativo alle proporzioni di un'immagine salvata che non erano corrette 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 conservando il flag che imposta il provider
CameraXConfigpredefinito. (I2d6c1) - È stata aggiornata la documentazione relativa alle API della modalità flash per includere i valori possibili. (I4a3ec)
Camera-Camera2 Versione 1.0.0-alpha10
10 febbraio 2020
androidx.camera:camera-camera2:1.0.0-alpha10 è stato rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Correzioni di bug
- Stabilità migliorata sui dispositivi
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACYgarantendo che iSurfacevengano conservati solo per la durata dell'utilizzo da parte di Camera2. (I9dac2) - Risolto il problema di anteprima sottoesposta 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 è stato rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Modifiche alle API
ImageCaptureè stato aggiornato per consentire il salvataggio delle immagini suUrieOutputStream. MetoditakePicturesovraccarichi combinati in uno. Aggiornata l'app di test per utilizzareUricome esempio canonico. (Ia3bec)Preview.PreviewSurfaceProviderè stato rinominato inPreview.SurfaceProvider. GliSurfaceProvidernon richiedono più agli sviluppatori di creare i propriListenableFuturee la fornitura di unSurfaceora avviene tramite un nuovo oggettoSurfaceRequest. Il metodoPreview.getPreviewSurfaceProvider()è stato rimosso a causa del potenziale uso improprio quandoPreviewè associato ad altre classi comePreviewView. (I20105)getTargetRotation()egetTargetName()aggiunti aPreview. (Iceee7)- Aggiunti
getTargetRotation(),getBackpressureStrategy()egetImageQueueDepth()inImageAnalysis. (I9d6d9) - Aggiunti
getTargetRotation()egetCaptureMode()inImageCapture()(I5bc17) - Gli argomenti precedentemente passati in
ImageCapture.OnImageSavedCallback.onError()eImageCapture.OnImageCapturedCallback.onError()sono stati sostituiti da un singolo argomentoImageCaptureException, che contiene ancora tutte le informazioni precedentemente passate. - L'argomento file precedentemente passato in
ImageCapture.OnImageSavedCallback.onImageSaved()è stato rimosso. (I750d2) PrevieweImageCaptureclassi sono ora contrassegnate come finali. (I2500b)- API aggiornata, con i metodi
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()egetLinearZoom()diCameraInfouniti ingetZoomState(), che restituisce un'istanzaZoomState. (Ib19fe) - Campi API
OPTION_TARGET_CLASSeOPTION_TARGET_NAMErimossi daCameraXConfig, in quanto destinati esclusivamente all'uso interno della libreria. Costruttore rimosso perCameraXConfig.Builder. (I96912) - È stato rimosso il requisito che richiedeva che l'app estendesse
Applicationper inizializzare CameraX. CameraX verrà ora inizializzato con una configurazione Camera2 predefinita, a condizione che l'artefattocamera-camera2sia incluso nel filebuild.gradledell'applicazione. (I58ff5) (b/146923574)
Camera-Camera2 versione 1.0.0-alpha09
22 gennaio 2020
androidx.camera:camera-camera2:1.0.0-alpha09 è stato rilasciato. La versione 1.0.0-alpha09 contiene questi commit.
Modifiche alle API
Aggiungi il percorso di interoperabilità di camera2 per estrarre un ID fotocamera Camera2. Puoi estrarre l'ID della videocamera da
CameraInfoutilizzandoCamera2CameraInfo.extractCameraId(). Il seguente esempio di codice mostra come utilizzarlo:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());La classe
Camera2CameraInforichiede la classe markerClassExperimentalCamera2Interop.
Camera-Core versione 1.0.0-alpha09
22 gennaio 2020
androidx.camera:camera-core:1.0.0-alpha09 è stato rilasciato. La versione 1.0.0-alpha09 contiene questi commit.
Modifiche alle API
- Il parametro
SurfaceOrientedMeteringPointFactoryuseCaseForSurfaceè stato rinominato inuseCaseForAspectRatioe 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 parametroDisplaye passa il display corrente.- Miglioramenti di Javadoc per le API di messa a fuoco e misurazione relative a
MeteringModee flag 3A e utilizzo del parametroDisplay. - È stata ampliata la documentazione di riferimento per
setZoomRatioesetLinearZoom.
Correzioni di bug
- Risolti i problemi relativi alla chiusura e alla successiva apertura delle videocamere che causavano l'errore di controllo "Precondition".
- È stato corretto un
ConcurrentModificationExceptionche poteva verificarsi quando si utilizzavano le API di torcia e zoom. - È stato risolto il problema per selezionare risoluzioni più vicine a quella richiesta quando è disponibile una dimensione mod16.
- Le API
startFocusMeteringecancelFocusMeteringora si comportano come documentato, con tempi corretti e potenzialmente restituendo errori quando si verificano. - È stato risolto il problema che si verificava quando veniva richiesta una risoluzione target specifica con proporzioni di ritaglio su un dispositivo che non supportava queste dimensioni. Ora, quando disponibile, verrà selezionata una dimensione non ritagliata con una risoluzione sufficiente per limitare la richiesta originale.
Camera-Camera2 versione 1.0.0-alpha08
18 dicembre 2019
androidx.camera:camera-camera2:1.0.0-alpha08 è stato rilasciato. La versione 1.0.0-alpha08 contiene questi commit.
Problemi noti
- Non tutte le opzioni di richiesta di acquisizione di Camera2 funzionano quando si utilizza l'interoperabilità di Camera2. Se l'opzione richiesta non è supportata, la sessione non viene avviata e potrebbe verificarsi un errore simile al seguente:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
Correzioni di bug
- Risolto un problema per cui si verificava una schermata nera di anteprima dopo la rotazione o il cambio della fotocamera per i livelli API 21 e 22.
Modifiche alle API
- Sperimentale: è stato aggiunto un percorso di interoperabilità camera2 per l'estrazione dell'ID della fotocamera.
Camera-Core versione 1.0.0-alpha08
18 dicembre 2019
androidx.camera:camera-core:1.0.0-alpha08 è stato rilasciato. La versione 1.0.0-alpha08 contiene questi commit.
Problemi noti
- Le app che utilizzano
PreviewViewoCameraViewpotrebbero avere un'anteprima con proporzioni errate. Questo accade dopo la pausa o il ripristino su alcuni dispositivi FULL, come Pixel 2.
Correzioni di bug
- Aggiornata la documentazione per
FocusMeteringActioneCameraControl. - Implementato
TorchControlperenableTorch()egetTorchState().
Modifiche alle API
- IntDef nascosti e costanti IntDef spostate all'esterno della definizione IntDef.
rotationDegreesspostato dalla classeOnImageCaptureCallbackalla classeImageInfo.rotationDegreesspostato dalla classeAnalyzeralla classeImageInfo.
Camera-Camera2 versione 1.0.0-alpha07
4 dicembre 2019
androidx.camera:camera-camera2:1.0.0-alpha07 è stato rilasciato. La versione 1.0.0-alpha07 di camera-camera2 contiene questi commit
Camera2Configè ora disponibile per l'inizializzazione e la configurazione di un'implementazione basata su Camera2 per CameraX. Ulteriori dettagli su come utilizzare questa funzionalità nell'inizializzazione sono disponibili nella sezione camera-core delle note di rilascio.- La funzionalità di interoperabilità di 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 è stato rilasciato. La versione 1.0.0-alpha07 di camera-core contiene questi commit
Tieni presente che questa release alpha contiene alcune modifiche sostanziali in vista della versione beta. Ti consigliamo di esaminare le modifiche e di condividere eventuali feedback nel gruppo Google di CameraX. Per gli sviluppatori che utilizzano CameraX nelle app presenti sul Play Store, consigliamo di attendere la release beta ufficiale prima di eseguire l'upgrade della libreria all'interno delle applicazioni.
Modifiche alle API
Importante: l'inizializzazione di CameraX è cambiata. Le applicazioni devono implementare
CameraXConfig.Providere utilizzare l'oggettoCamera2Configpredefinito 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()forniti in precedenza dalla chiamata della classe CameraX sono ora disponibili tramiteProcessCameraProvider.Un'istanza per processo di
ProcessCameraProviderviene ottenuta in modo asincrono utilizzando il metodo staticoProcessCameraProvider.getInstance(), che restituisce un futuro ascoltabile, che fornisceProcessCameraProvideral completamento. Qui è mostrato inonCreate()per un utilizzo tipico. Puoi effettuare chiamate agetInstance()in un secondo momento del ciclo di vita dell'attività per posticipare la latenza di inizializzazione (ad esempio quando un'azione dell'utente apre una UI della fotocamera).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 listener all'oggetto
ListenableFuturerestituito dagetInstance(). In questo modo, il provider della fotocamera può essere recuperato daFuturesenza bloccareFuture.get().cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))La selezione della fotocamera viene ora eseguita da un selettore della fotocamera, anziché per caso d'uso
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()CameraProvider.bindToLifecyclericeve il proprietario del ciclo di vita, il selettore della fotocamera e i casi d'uso, che vengono poi associati al proprietario del ciclo di vita specificato ed eseguiti per la fotocamera selezionata.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)Le classi "Config" dei casi d'uso vengono rimosse. Invece, crea 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 Preview è stato aggiornato per accettare una superficie creata e gestita dall'applicazione per garantire le best practice di Android. Ti consigliamo vivamente di utilizzare la classe di visualizzazione
PreviewViewfornita nel pacchetto camera-view.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)Consulta la documentazione per collegare una superficie gestita dall'app. In questi casi, l'app gestisce il ciclo di vita della superficie.
Importante: l'implementazione del metodo Analyzer
ImageAnalysisdeve chiamareimage.close()sulle immagini ricevute al termine del loro utilizzo. In caso contrario, le nuove immagini potrebbero non essere ricevute o la videocamera potrebbe bloccarsi, a seconda dell'impostazione della contropressione. Per informazioni dettagliate, consulta la documentazione di riferimento.ImageAnalysis ImageReaderModeè ora modificata in una strategia di backpressureintdef.ImageProxy.getImage()è contrassegnato come sperimentale. Le applicazioni devono annotare l'utilizzo, ad esempio tramite@androidx.camera.core.ExperimentalGetImageIl requisito di annotazione
UIThreadperAnalyzerè stato rimosso.La funzione
ImageAnalysis.clearAnalyzer()viene aggiunta per rimuovere un analizzatore.I listener con più di un metodo sono stati rinominati in Callback:
ImageCapture.OnImageCapturedListenerora èImageCapture.OnImageCapturedCallbackImageCapture.OnImageSavedListenerora èImageCapture.OnImageSavedCallbackVideoCapture.OnVideoSavedListenerora èVideoCapture.OnVideoSavedCallback
Gli enum sono stati modificati in IntDef
Sono stati aggiunti i controlli di zoom:
CameraControl.setLinearZoom()CameraControl.setZoomRatio()CameraInfo.getLinearZoom()CameraInfo.getMaxZoomRatio()CameraInfo.getZoomRatio()
Viene aggiunto
CameraInfo.hasFlashUnit()per determinare se è presente l'hardware del flash/della torcia.La risorsa
CameraInfo.isFlashAvailable()è stata rimossa. La torcia sostituisce la funzionalità del flash. Per ulteriori dettagli, consulta la documentazione di riferimento.I campi
ImageCapture.Metadatavengono sostituiti dagli accessori get/set/is.startFocusMeteringecancelFocusMeteringora restituisconoListenableFutures, che rappresenta l'operazione asincrona della chiamata.MeteringPointsora funzionano come handle per le azioni di misurazione e vengono prodotti dalle factory. Le app devono utilizzare le factory esistenti anziché quelle personalizzate.
Problemi risolti
- Risolto il problema che si verificava quando si scattava una foto alla ripresa (dopo che una pausa precedente aveva lasciato delle foto in attesa di completamento).
- Problema noto:
CameraControl.enableTorch()è funzionale, ma l'oggettoListenableFuture<Void>restituito è sempre un oggettocomplete(success)immediato, anche se non è presente un'unità flash. Nelle versioni future, questo problema verrà risolto con il comportamento finale: se non è presente un'unità flash,enableTorch(true)non riesce immediatamente (non invia la richiesta aCaptureSession) eTorchStaterimane disattivato. - Problema noto:
startFocusAndMeteringecancelFocusAndMeteringavviano e annullano la misurazione della messa a fuoco, ma restituiscono un futurocompleted (success)immediato che non rappresenta il comportamento documentato. Il campoFocusMeteringResultdiListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()è un risultato fittizio cheisFocusSuccessful()ed è sempre "false", diversamente dal comportamento previsto e documentato. - Problema noto: è in fase di sviluppo una factory di punti di misurazione da utilizzare con gli eventi touch di
PreviewView. Per il momento, le app che collegano superfici gestite personalizzate possono utilizzare le factory dei punti di misurazione esistenti, altrimenti non è disponibile alcuna funzionalità di messa a fuoco al 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 sono state rilasciate. 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()e accetta un argomento enum. In questo modo, la modalità di proporzioni viene impostata con le opzioniRATIO_4_3oRATIO_16_9anziché con proporzioni arbitrarie. In questo modo, viene rispecchiato più fedelmente il fatto che la fotocamera fornisce solo determinati formati, anziché un formato arbitrario.- Al momento, le uniche proporzioni disponibili sono 16:9 e 4:3. Nel caso di 1:1, solo alcuni dispositivi hanno questa opzione disponibile 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 formati sono orientati in modo da utilizzare l'area massima del sensore.
getTargetAspectRatio()è stato aggiunto alle API di configurazione dei casi d'uso, restituendo le proporzioni per cui è destinato l'output del caso d'uso.- Il metodo
setTargetAspectRatio(Rational aspectRatio)è stato modificato per ImageCapture insetTargetAspectRatioCustom(Rational aspectRatio). Se impostato, l'output di ImageCapture viene ritagliato di conseguenza.
API Executor
- Le seguenti funzioni accettano un parametro executor, che consente all'app di controllare l'executor su cui viene eseguita la funzione.
- API
Preview.setOnPreviewOutputUpdateListener(). Se l'esecutore non è presente per quella funzione, viene eseguito sul thread principale. Preview.setOnPreviewOutputUpdateListenerFocusMeteringAction.Builder.setAutoFocusCallbackImageAnalysis.setAnalyzerImageCapture.takePictureCameraView.takePictureCameraView.startRecordingVideoCapture.startRecording
- API
CameraInfo aggiunta con le API di controllo della disponibilità del flash e della rotazione del sensore
Sono stati aggiunti
CameraInfoe un metodogetCameraInfo, che consentono 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); }CameraInfo.getSensorRotationDegrees()è stato aggiunto. 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 alle API e correzioni di bug
- Proporzioni: per ogni caso d'uso, le applicazioni devono chiamare solo
setTargetResolution()osetTargetAspectRatio(). Se li chiami entrambi nello stesso builder, viene restituito un errore.- In genere, è consigliabile utilizzare
setTargetAspectRatio()in base al design della UI 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 immagini fisse ad alta risoluzione. Per saperne di più, consulta la tabella delle risoluzioni automatiche. - Utilizza
setTargetResolution()per casi più specifici, ad esempio quando sono richieste risoluzioni minime (per risparmiare 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'esecutore come parametro in varie altre API che impostano un callback. - Aggiornate le annotazioni null per varie funzioni.
- Risolto un problema che causava l'attivazione di
java.lang.IllegalStateException at Camera$StateCallback.onErrorall'apertura della fotocamera. - Risolto il problema per cui venivano selezionate risoluzioni troppo piccole (inferiori a 640 x 480) quando l'app richiedeva risoluzioni più grandi o predefinite, con conseguente immagine di anteprima sfocata o a blocchi. Le applicazioni che richiedono specificamente risoluzioni inferiori possono richiederle esplicitamente.
- Risolto un problema per cui la fotocamera mostrava una schermata nera (impossibile avviare la fotocamera) dopo il ritorno da un intent che aveva avviato un'altra applicazione della fotocamera.
- Risolto un bug che generava il seguente errore quando le app venivano avviate o arrestate ripetutamente:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface! - Risolto il seguente errore che si verifica quando si disattiva ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more. - Sono stati aggiunti ulteriori test per il flusso di disconnessione della videocamera.
- Migliorata la robustezza del sistema di test durante l'esecuzione di 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 sono state rilasciate. 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 dell'API: variabili di errore dei casi d'uso rinominate:
ImageCapture.UseCaseErrorè stato rinominato inImageCapture.ImageCaptureErrorVideoCapture.UseCaseErrorè stato rinominato inVideoCapture.VideoCaptureError
Aggiunta l'API
CameraControlcon le API Tocca per mettere a fuocoÈ stata aggiunta l'API per ottenere un
CameraControlda CameraX per una fotocamera, selezionata in base alla direzione dell'obiettivo:CameraX.getCameraControl(LensFacing lensFacing)Sono stati aggiunti
MeteringPointFactory,MeteringPoint,MeteringModeeFocusMeteringActionper 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
CameraControlper avviare e annullare la misurazione della messa a fuoco:getCameraControl(lensFacing).startFocusAndMetering(action);getCameraControl(lensFacing).cancelFocusAndMetering();Sono state aggiunte API per MeteringPointFactory che aiutano a tradurre le coordinate di tocco in coordinate del sensore, in base alle classi di visualizzazione:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
Forza la chiamata dei seguenti metodi sul thread principale (UI), generando un'eccezione
IllegalStateExceptionse non viene eseguita. Le versioni future 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()
Varie impostazioni di configurazione ora accettano parametri null e i getter corrispondenti potrebbero restituire null.
È stato risolto il problema durante i test su emulatori che non supportano le impostazioni AF/AE/AWB.
Risolto un bug di arresto anomalo durante la rotazione durante l'analisi dell'immagine.
È stato corretto il bug per cui l'anteprima appare nera all'avvio (nessun dato della fotocamera), dopo la rotazione o il passaggio dalla fotocamera anteriore a quella posteriore e viceversa.
Rimosso il test per più casi d'uso di analisi delle immagini simultanee. Per garantire la compatibilità, le applicazioni devono collegare un solo caso d'uso di analisi delle immagini.
Sono stati aggiunti i test Robolectric iniziali per la videocamera fittizia nella suite di test della videocamera (WIP).
Test Camera2Inititalizer rimosso, poiché la sua copertura non era chiara/era 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 sono state rilasciate. La versione 1.0.0-alpha04 contiene questi commit.
Nuove funzionalità
Modifiche alla selezione delle proporzioni e della risoluzione
L'obiettivo di CameraX è inizializzare correttamente una sessione della fotocamera. Ciò significa che CameraX scende a compromessi su risoluzione/proporzioni in base alle funzionalità del dispositivo, al fine di avviare una sessione di acquisizione come primo obiettivo, pertanto le richieste esatte potrebbero non essere rispettate. La causa potrebbe essere:
- Dispositivi che non supportano la risoluzione richiesta
- Problemi di compatibilità, ad esempio su dispositivi LEGACY in cui è necessario utilizzare determinate risoluzioni per funzionare correttamente
- Su alcuni dispositivi, determinati formati sono disponibili solo con determinate proporzioni
- Una preferenza per un "mod16 più vicino" 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 apportare le modifiche necessarie.
Sono state apportate alcune modifiche per l'impostazione delle risoluzioni e delle proporzioni, con l'obiettivo di rendere l'API più chiara:
- Il caso d'uso di anteprima ora ha proporzioni predefinite di 4:3 se non ne sono impostate altre.
- Quando CameraX considera internamente le modifiche alle risoluzioni e alle proporzioni richieste in base alle funzionalità del dispositivo, tenta innanzitutto di mantenere le stesse proporzioni (determinate da una delle chiamate
setTargetAspectRatioosetTargetResolution) - Una versione "Nearest mod16" della risoluzione è considerata con le stesse proporzioni.
Modalità non di blocco di ImageAnalysis
- Il comportamento di
ImageReaderMode.ACQUIRE_LATEST_IMAGEora non è bloccante. Acquisisce l'immagine più recente nella coda, ma elimina continuamente le immagini inutilizzate per evitare che la pipeline della fotocamera si blocchi. - L'analizzatore può contenere una singola immagine a tempo indeterminato senza bloccare la pipeline.
- Se l'applicazione fornisce un esecutore che poi si blocca, il caso d'uso ImageAnalysis si blocca.
- L'esecutore predefinito impostato internamente si comporta come un esecutore non bloccante.
Correzioni di bug
- Risolti i problemi di timeout durante l'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 rapido di foto con ImageCapture. Corregge l'errore:
java.lang.IllegalStateException: maxImages (2) has already been acquired - Risolto il problema per cui
setLensFacingnon veniva chiamato per un caso d'uso, con conseguentejava.lang.IllegalArgumentException: Unable to get camera ID for use case. - Risolto il problema per cui il dispositivo LEGACY richiedeva proporzioni specifiche come risoluzione JPEG massima
- Risolto il problema relativo all'esecuzione in background dell'app durante l'apertura della fotocamera
- Risolto il problema relativo all'API < 25, rimozione dell'errore
checkAndUpdateEglState: invalid current EGLDisplay - Risolto il problema relativo allo scollegamento dell'anteprima dopo l'attivazione e l'avvio delle estensioni
- Gli artefatti di build per camera-view e camera-extensions sono 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 sono state rilasciate. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche alle API
- Aggiunto chiarimento javadoc per "target" nelle chiamate di configurazione setTarget
Camera-Core
- Risolto il problema di arresto anomalo della superficie di input/output non configurata in caso di apertura/chiusura o associazione/annullamento dell'associazione rapidi
- Passa alle nuove implementazioni di Futures
- Correzioni dei test per test più efficaci
- Il test di integrazione di base ora mostra l'ora di acquisizione delle foto
- Sviluppo di una classe di compatibilità interna per gli esecutori
- L'app di test di sincronizzazione attende il completamento delle acquisizioni di immagini precedenti e offre una maggiore stabilità
Estensioni
- Aggiunti controlli di controllo delle versioni
- Copertura di test aggiuntiva: callback di eventi di estensione
- Miglioramenti per l'immagine e i metadati corrispondenti internamente
- Correzioni al cambio 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 sono state rilasciate. La versione 1.0.0-alpha02 contiene questi commit.
Correzioni di bug
- Risolto il problema di divisione per zero durante l'utilizzo dell'emulatore
- Risolto l'errore NullPointerException/Surface Abandoned che si verificava su alcuni dispositivi quando si scattavano foto rapidamente durante l'annullamento e il ripristino dell'associazione dei casi d'uso.
- Risolto un problema interno per garantire che gli aggiornamenti delle richieste di acquisizione influiscano su tutte le piattaforme in modo coerente
- Miglioramenti della stabilità durante il riavvio dei casi d'uso in nuove istanze dell'app
- Modifiche all'architettura interna per preparare il supporto degli esecutori nell'API
- Ulteriori chiarimenti di Javadoc sulla classe CameraX e sulla gestione del ciclo di vita
- Aggiunto il test di instrumentazione per l'app di test delle prestazioni Antelope
- Rimuovi la necessità di "-keepattributes Signature" nella configurazione 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 sono state rilasciate. La versione 1.0.0-alpha01 contiene questi commit.
Camera-Lifecycle versione 1.0.0-beta11
14 ottobre 2020
androidx.camera:camera-lifecycle:1.0.0-beta11 è stato rilasciato. La versione 1.0.0-beta11 contiene questi commit.
Correzioni di bug
<UseCase>.getTargetRotation()restituiràSurface.ROTATION_0se viene chiamato prima di essere collegato a un'istanza Camera, a meno che non sia stato impostato un targetRotation su Builder o UseCase. (I80fcd)
Camera-Lifecycle versione 1.0.0-beta10
23 settembre 2020
androidx.camera:camera-lifecycle:1.0.0-beta10 è stato rilasciato. La versione 1.0.0-beta10 contiene questi commit.
Correzioni di bug
- Release per supportare Camera-Core 1.0.0-beta10
Camera-Lifecycle versione 1.0.0-beta09
16 settembre 2020
androidx.camera:camera-lifecycle:1.0.0-beta09 è stato rilasciato. La versione 1.0.0-beta09 contiene questi commit.
Camera-Lifecycle versione 1.0.0-beta08
19 agosto 2020
androidx.camera:camera-lifecycle:1.0.0-beta08 è stato 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 versione 1.0.0-beta07
22 luglio 2020
androidx.camera:camera-lifecycle:1.0.0-beta07 è stato 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 è stato rilasciato. La versione 1.0.0-beta06 contiene questi commit.
Modifiche alle API
- Ora CameraX può essere configurato con ProcessCameraProvider#configureInstance() prima di chiamare ProcessCameraProvider#getInstance(). In questo modo è possibile personalizzare CameraXConfig senza dover implementare 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 è stato rilasciato. La versione 1.0.0-beta05 contiene questi commit.
Correzioni di bug
- Risolto il problema di arresto anomalo all'avvio dell'app durante l'inizializzazione di CameraX quando lo smartphone è in modalità Non disturbare. Un
InitializationExceptioncontiene unCameraUnavailableExceptionche verrà impostato suListenableFuturedel risultato dell'inizializzazione anziché causare l'arresto anomalo dell'applicazione. (I9909a, b/149413835)
Camera-Lifecycle Versione 1.0.0-beta04
27 maggio 2020
androidx.camera:camera-lifecycle:1.0.0-beta04 è stato 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 è stato rilasciato. La versione 1.0.0-beta03 contiene questi commit.
Correzioni di bug
- È stata corretta la regressione dalla versione beta03 per cui la chiamata di
bindToLifecycle()con zeroUseCasegenerava un'eccezione. In questo modo, è stato impedito il recupero di unCamerasenza l'associazione di unUseCase. - Correzioni per supportare la release di
camera-core
Camera-Lifecycle versione 1.0.0-beta01
26 febbraio 2020
androidx.camera:camera-lifecycle:1.0.0-beta01 è stato rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Correzioni di bug
- È stata corretta la documentazione per indicare che, quando si ottiene un
ProcessCameraProviderdurante 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 è stato rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Correzioni di bug
- È stato effettuato un aggiornamento per supportare le correzioni di bug negli artefatti
camera-camera2:1.0.0-beta02ecamera-core:1.0.0-beta02.
Camera-Lifecycle Versione 1.0.0-alpha10
10 febbraio 2020
androidx.camera:camera-lifecycle:1.0.0-alpha10 è stato rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Modifiche alle API
- Aggiunta l'annotazione
@MainThreadai metodi BindToLifecycle, unbind e unbindAll. (I990d2)
Camera-Lifecycle versione 1.0.0-alpha03
22 gennaio 2020
androidx.camera:camera-lifecycle:1.0.0-alpha03 è stato rilasciato. La versione 1.0.0-alpha03 contiene questi commit.
Aggiornamenti
- Varie correzioni e aggiornamenti per supportare le modifiche a Camera Core e Camera2.
Camera-Lifecycle versione 1.0.0-alpha02
18 dicembre 2019
androidx.camera:camera-lifecycle:1.0.0-alpha02 è stato rilasciato. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche alle dipendenze
- Aggiornato per utilizzare
androidx.camera:camera-core:1.0.0-alpha08.
Camera-Lifecycle versione 1.0.0-alpha01
4 dicembre 2019
androidx.camera:camera-lifecycle:1.0.0-alpha01 è stato rilasciato. La versione 1.0.0-alpha01 di camera-lifecycle contiene questi commit
Note sull'API
- Viene aggiunto l'artefatto camera-lifecycle, che fornisce l'interfaccia
LifeCycleCameraProvidere un'implementazione chiamataProcessCameraProviderche fornisce molte delle funzioni della classe CameraX precedente in core e viene 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.
Camera-Extensions e Camera-View 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 sono state rilasciate. La versione 1.0.0-alpha32 contiene questi commit.
Modifiche alle API
- Sono state rimosse le annotazioni
@RequiresApi(21)non necessarie dalle classi/interfacce interne. (I8e286, b/204917951) - Aggiorna i file API per l'artefatto camera-extensions. (If683a, b/161377155)
Correzioni di bug
- Non consentire all'app di attivare le modalità di estensione durante l'associazione di
VideoCapture. Le estensioni CameraX supportano soloImageCaptureePreview.VideoCapturenon può ancora essere supportato. Se l'app associaVideoCapturee attiva una modalità di estensione, verrà generato unIllegalArgumentException. (I0d87b) CameraSelector#filternon genera più unIllegalArgumentExceptionquando il set di risultati è vuoto. (I27804)- L'API
ExtensionsManager#getInstanceè stata rinominata ingetInstanceAsyncperché 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'usoImageCapturee non possono distinguere se le informazioni sulla latenza restituite riguardano le dimensioni massime dell'output di acquisizione o il parametro di risoluzione dell'input. (I74bb2) - Sposta il parametro
CameraProviderdelle funzioniExtensionsManagernell'APIgetInstance(). In questo modo, gli utenti non devono inserire il parametroCameraProviderogni 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 sono state rilasciate. La versione 1.0.0-alpha31 contiene questi commit.
Modifiche alle 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 che si verificava quando si passava rapidamente alla 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 sono state rilasciate. La versione 1.0.0-alpha30 contiene questi commit.
Modifiche alle API
- È stata aggiunta l'annotazione @RequiresApi(21) a tutte le classi CameraX ed è stato rimosso minSdkVersion da AndroidManifest.xml. In questo modo, camera-core può essere facilmente integrato nelle applicazioni con un minSdkVersion inferiore a 21, ma che vogliono utilizzare in modo condizionale i percorsi del codice che si basano sull'API 21 e versioni successive. Per qualsiasi applicazione con minSdkVersion 21 o versioni successive, questa modifica non richiede alcun intervento. (Ie7f2e, b/200599470)
Correzioni di bug
- Risolto il problema AbstractMethodError che si verifica quando ProGuard è abilitato. (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 sono state rilasciate. La versione 1.0.0-alpha29 contiene questi commit.
Modifiche alle API
- L'annotazione ExperimentalUseCaseGroup è stata rimossa ora che le API non sono più sperimentali. (I01ef5)
- rimuovi
RotationProvider#removeAllListeners(). Utilizza inveceRotationProvider#removeListener(...). (Id9d4a) - Aggiornata la classe RotationReceiver: modificato set/clear Listener in add/remove/removeAll, rimossa la variante setListener che utilizza il thread principale per impostazione predefinita e aggiunta l'annotazione dei metodi. (Ib1669)
Correzioni di bug
- Rinominato ExtensionMode#BEAUTY in FACE_RETOUCH per presentare correttamente l'operazione eseguita dalla modalità di estensione. (I61f54, b/198515274)
- Risolto il problema per cui la fotocamera si chiudeva inaspettatamente quando venivano utilizzati più CameraController e PreviewView in un'unica attività. (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 sono state rilasciate. La versione 1.0.0-alpha28 contiene questi commit.
Modifiche alle API
- L'annotazione ExperimentalUseCaseGroupLifecycle è stata rimossa ora che le API non sono più sperimentali. (I17b85)
- Rifattorizzato 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. Made OutputSize final (I099fa)
Correzioni di bug
- Sono state rimosse le classi
<EffectName><UseCase>Extenderdeprecate, 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 sono state rilasciate. La versione 1.0.0-alpha27 contiene questi commit.
Modifiche alle API
- L'API Viewport non è più in fase sperimentale. Rimuovi l'annotazione sperimentale dell'API. (I717ea)
CoordinateTransform#getTransformrinominato inCoordinateTransform#transforme aggiornamento di JavaDoc (I864ae)
Correzioni di bug
- È stato risolto il problema di allungamento della modalità
PreviewView PERFORMANCEquando viene utilizzata insieme alla UI di Compose. (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 sono state rilasciate. La versione 1.0.0-alpha26 contiene questi commit.
Modifiche alle API
- Aggiungi un nuovo metodo
CameraController#getTapToFocusState()che espone l'ultimo risultato della messa a fuoco con un tocco. (Iaccb0) - Aggiunta di altre funzionalità principali della fotocamera a CameraController: getter/setter per le proporzioni target, la risoluzione target, la modalità di acquisizione, CameraControl ed esecutori personalizzati. (Iea8f2)
- Aggiungi una classe RotationReceiver che riceve le modifiche alla rotazione della superficie. 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)
- ExtensionsErrorListener deprecato. Al momento, questa interfaccia viene utilizzata solo per monitorare se manca un'anteprima o un'acquisizione di immagini quando si attivano le modalità di estensione. CameraX aggiungerà automaticamente un'anteprima o un'acquisizione di immagini aggiuntiva per far funzionare correttamente le funzioni di estensione. In seguito, 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>Extendere le relative API. (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 sono state rilasciate. La versione 1.0.0-alpha25 contiene questi commit.
Modifiche alle API
- Le API ExperimentalCameraFilter non sono più in fase sperimentale e sono diventate API ufficiali. Possono essere utilizzate senza l'annotazione OptIn. (I4bc94)
- Aggiungi un'utilità che trasforma 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)
- Contatto rimosso:
CameraView.CameraViewè stato sostituito daCameraController. Per informazioni su come eseguire la migrazione, consulta la guida alla migrazione: (Id5005)
Correzioni di bug
ExperimentalUseCaseGroupLifecyclesostituita 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 sono state rilasciate. La versione 1.0.0-alpha24 contiene questi commit.
Correzioni di bug
- L'annotazione
@Experimentalè stata sostituita con@RequiresOptInper le API sperimentali. Per chiamare le API sperimentali, utilizzaandroidx.annotation.OptInanziché l'APIandroidx.annotation.experimental.UseExperimentaldeprecata. (Iff226) - Risolto il problema di allungamento di PreviewView su Samsung J5 Prime (Ib10b6)
Estensioni e visualizzazione della fotocamera 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 sono state rilasciate. La versione 1.0.0-alpha23 contiene questi commit.
Modifiche alle API
- CameraView verrà ritirata. Usa il criterio
LifecycleCameraController. Consulta la guida alla migrazione (Idac2c) - Aggiunta l'annotazione FloatRange a setLinearZoom() (I69971)
Correzioni di bug
- Sono state bloccate le dipendenze della visualizzazione della videocamera per fare affidamento sugli elementi 1.0.0. La dipendenza da camera-view non causerà più l'upgrade automatico della risoluzione delle dipendenze di Gradle di camera-core, camera-camera2 e camera-lifecycle agli artefatti 1.1.0 più recenti, anche se camera-view è ancora compatibile con questi artefatti se sono impostati esplicitamente per l'utilizzo della versione 1.1.0. (Ic8fa1, b/181599852)
- Risolto il problema dell'anteprima allungata di Samsung A3 in PreviewView. (Iacb30, b/180121821)
- Risolto il problema per cui il selettore della fotocamera non poteva essere impostato prima dell'inizializzazione della fotocamera. (Ic8bd0)
Estensioni e visualizzazione della fotocamera 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 sono state rilasciate. La versione 1.0.0-alpha22 contiene questi commit.
Modifiche alle API
- aggiungi un getter CameraInfo a CameraController. (Ib8138, b/178251727)
Correzioni di bug
- È stato corretto ExtensionsErrorListener per segnalare gli errori quando è associato solo Preview o ImageCapture. (I5ae39)
Camera Extensions & View 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 sono state rilasciate. La versione 1.0.0-alpha21 contiene questi commit.
Rilascio per supportare altri artefatti della libreria della fotocamera.
Camera Extensions & View 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 sono state rilasciate. La versione 1.0.0-alpha20 contiene questi commit.
Rilascio per supportare altri artefatti della libreria della fotocamera.
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 sono state rilasciate. La versione 1.0.0-alpha19 contiene questi commit.
Correzioni di bug
- L'annotazione
@ExperimentalVideoè stata introdotta nella visualizzazione della videocamera. Questa annotazione contrassegna le API che espongono funzionalità video sperimentali soggette a modifiche man mano che vengono sviluppate completamente. Qualsiasi metodo che utilizza queste API deve utilizzare l'annotazione@UseExperimentalconExperimentalVideocomemarkerClass. (I6d729)
Camera-Extensions versione 1.0.0-alpha18
14 ottobre 2020
androidx.camera:camera-extensions:1.0.0-alpha18 è stato rilasciato. La versione 1.0.0-alpha18 contiene questi commit.
Correzioni di bug
- Migliorata la latenza dell'inizializzazione di CameraX e di bindToLifecycle (I61dc5)
<UseCase>.getTargetRotation()restituiràSurface.ROTATION_0se viene chiamato prima di essere collegato a un'istanza Camera, a meno che non sia stato impostato un targetRotation su Builder o UseCase. (I80fcd)
Camera-View versione 1.0.0-alpha18
14 ottobre 2020
androidx.camera:camera-view:1.0.0-alpha18 è stato rilasciato. La versione 1.0.0-alpha18 contiene questi commit.
Rilascio per supportare altri artefatti della libreria della fotocamera.
Camera-Extensions versione 1.0.0-alpha17
23 settembre 2020
androidx.camera:camera-extensions:1.0.0-alpha17 è stato rilasciato. La versione 1.0.0-alpha17 contiene questi commit.
Correzioni di bug
- Release per supportare Camera-Core 1.0.0-beta10
Camera-View versione 1.0.0-alpha17
23 settembre 2020
androidx.camera:camera-view:1.0.0-alpha17 è stato rilasciato. La versione 1.0.0-alpha17 contiene questi commit.
Correzioni di bug
- Release per supportare Camera-Core 1.0.0-beta10
Camera-Extensions versione 1.0.0-alpha16
16 settembre 2020
androidx.camera:camera-extensions:1.0.0-alpha16 è stato rilasciato. La versione 1.0.0-alpha16 contiene questi commit.
Correzioni di bug
- È stato aggiunto un metodo in
ExtensionsManagerper ottenere un oggettoExtensionsutilizzato per attivare ed eseguire query sulle estensioni nelle istanze Camera (I4fb7e)
Camera-View versione 1.0.0-alpha16
16 settembre 2020
androidx.camera:camera-view:1.0.0-alpha16 è stato rilasciato. La versione 1.0.0-alpha16 contiene questi commit.
Modifiche alle API
- Contatti rimossi:
PreviewView#setDeviceRotationForRemoteDisplayMode()ePreviewView#getDeviceRotationForRemoteDisplayMode(). I due metodi servono per personalizzare la rotazione dell'anteprima, quando la rotazione desiderata non è quella del display, ad esempio un display remoto. Per gestire ora la rotazione dell'anteprima non di 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
- È stato forzato l'utilizzo di TextureView da parte di PreviewView se l'effetto dell'estensione è abilitato e l'implementazione della libreria del fornitore deve eseguire un processo 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 callback
TranformationInfoListener. (I21470)
Problemi noti
- In PreviewView,
OnClickListener#onClick()non viene richiamato quando l'utente finale fa clic su PreviewView. L'evento touch viene utilizzato erroneamente da PreviewView#onTouchEvent(). Il problema verrà risolto nella prossima release. - Il MeteringPoint 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 è stato rilasciato. La versione 1.0.0-alpha15 contiene questi commit.
Correzioni di bug
- Il metodo
ExtensionsManager.init()ora accetta un contesto come parametro anziché avere 0 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)Camera-View versione 1.0.0-alpha15
19 agosto 2020
androidx.camera:camera-view:1.0.0-alpha15 è stato rilasciato. La versione 1.0.0-alpha15 contiene questi commit.
Correzioni di bug
DisplayOrientedMeteringPointFactoryaccetta un'istanzaCameraInfoanzichéCameraSelector, quindi esiste una mappatura diretta alla videocamera per cui la factory genererà i punti. Tutte le classi che utilizzanoDisplayOrientedMeteringPointFactoryaccettano anche un'istanzaCameraInfoanzichéCameraSelector. (I400c1)- Contatto rimosso:
TextureViewMeteringPointFactory.PreviewViewfornisce un'API pubblica (createMeteringPointFactory()) per creare una factory di punti di misurazione indipendentemente dal fatto che utilizzi unTextureViewo unSurfaceView. (Ide693) - Rinomina le modalità di implementazione
SURFACE_VIEW/TEXTURE_VIEWdi PreviewView inPERFORMANCE/COMPATIBLE.PERFORMANCEè la vecchia modalitàSURFACE_VIEWeCOMPATIBLEè la vecchia modalitàTEXTURE_VIEW. (I0edc2) - Per l'acquisizione di immagini, sovrascrivi il flag di capovolgimento orizzontale nei metadati in base alla direzione della fotocamera. (I28499)
Camera-Extensions versione 1.0.0-alpha14
22 luglio 2020
androidx.camera:camera-extensions:1.0.0-alpha14 è stato rilasciato. La versione 1.0.0-alpha14 contiene questi commit.
Camera-View versione 1.0.0-alpha14
22 luglio 2020
androidx.camera:camera-view:1.0.0-alpha14 è stato rilasciato. La versione 1.0.0-alpha14 contiene questi commit.
Camera-Extensions versione 1.0.0-alpha13
24 giugno 2020
androidx.camera:camera-extensions:1.0.0-alpha13 è stato rilasciato. La versione 1.0.0-alpha13 contiene questi commit.
Correzioni di bug
- Sono state aggiunte interfacce sperimentali per filtrare le fotocamere in base all'ID fotocamera e a CameraCharacteristics. (I28f61)
Camera-View versione 1.0.0-alpha13
24 giugno 2020
androidx.camera:camera-view:1.0.0-alpha13 è stato rilasciato. La versione 1.0.0-alpha13 contiene questi commit.
Correzioni di bug
- CameraView non si arresta più in modo anomalo con un'eccezione IllegalArgumentException quando viene associato a un LifecycleOwner il cui ciclo di vita passa a uno stato DESTROYED poco dopo l'associazione. Se i cicli di vita di associazione sono in stato DESTROYED, non verrà effettuato alcun tentativo di aprire la fotocamera. (I7c2b8)
- PreviewView StreamState è ora disponibile tramite CameraView.getPreviewStreamState() (I21a2b)
Camera-Extensions versione 1.0.0-alpha12
10 giugno 2020
androidx.camera:camera-extensions:1.0.0-alpha12 è stato rilasciato. La versione 1.0.0-alpha12 contiene questi commit.
Correzioni di bug
- Risolto l'arresto anomalo all'avvio dell'app durante l'inizializzazione di CameraX quando lo smartphone è in modalità Non disturbare. Un
InitializationExceptioncontiene unCameraUnavailableExceptionche verrà impostato suListenableFuturedel risultato dell'inizializzazione anziché causare l'arresto anomalo dell'applicazione. (I9909a, b/149413835)
Camera-View versione 1.0.0-alpha12
10 giugno 2020
androidx.camera:camera-view:1.0.0-alpha12 è stato 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)
Camera-Extensions Versione 1.0.0-alpha11
27 maggio 2020
androidx.camera:camera-extensions:1.0.0-alpha11 è stato rilasciato. La versione 1.0.0-alpha11 contiene questi commit.
Camera-View versione 1.0.0-alpha12
10 giugno 2020
androidx.camera:camera-view:1.0.0-alpha12 è stato rilasciato. La versione 1.0.0-alpha12 contiene questi commit.
Nuove funzionalità
Modifiche alle API
Correzioni di bug
- Aggiungi l'API
PreviewView#getBitmap()che restituisce una rappresentazione bitmap dei contenuti visualizzati sulla piattaforma di anteprima. (I9b500, b/157659818)
Camera-View Versione 1.0.0-alpha11
27 maggio 2020
androidx.camera:camera-view:1.0.0-alpha11 è stato rilasciato. La versione 1.0.0-alpha11 contiene questi commit.
Modifiche alle API
- Aggiunta dell'API
PreviewView#getPreviewStreamStateche 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
- Risolto il problema di distorsione dell'anteprima sulle videocamere
FULL/LIMITED/LEVEL_3con Android 7.0 e versioni precedenti. Utilizzo forzato della modalitàImplementationMode#TEXTURE_VIEWquando la versione di Android è 7.0 o precedente. (I83e30, b/155085307) - Rimosso il parametro
CameraInfodaPreviewView#createSurfaceProvider(),PreviewViewora lo recupera internamente daSurfaceRequest. (If18f0, b/154652477) - Risolto il problema relativo alle proporzioni predefinite di VideoCapture, che ora sono 16:9 in CameraView. (Ie6a7b, b/153237864)
- Risolto il problema della schermata nera di
PreviewViewquando si usciva dal frammentoPreviewe poi si rientrava in ViewPager2. È stato risolto anche il problema relativo aremoveView(previewview)e poiaddView(previewView). (Iab555, b/149877652, b/147354615) - Aggiorna l'API
CameraView#takePicture()per consentire il salvataggio delle immagini suUrieOutputStream. Aggiorna l'app di test in modo che utilizziUricome esempio canonico. (Ia2459, b/153607583) - Puoi impostare il tipo di scala di PreviewView da un layout XML impostando l'attributo
ScaleType. (I08565, b/153015659) - La risorsa
CameraView.ScaleTypeè stata rimossa. Utilizza invecePreviewView.ScaleTypeper impostare/ottenere un tipo di scala con CameraView. (Ia8974, b/153014831) - Assegna un colore di sfondo predefinito a
PreviewViewse non ne ha già uno. In questo modo, i contenuti sottostanti non sono visibili prima dell'inizio dello stream di anteprima. (I09fad)
Camera-Extensions Versione 1.0.0-alpha10
15 aprile 2020
androidx.camera:camera-extensions:1.0.0-alpha10 è stato rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Correzioni di bug
- Correzioni per supportare la release di Camera-Core
Camera-View Versione 1.0.0-alpha10
15 aprile 2020
androidx.camera:camera-view:1.0.0-alpha010 è stato rilasciato. La versione 1.0.0-alpha010 contiene questi commit.
Correzioni di bug
- Risolve un problema noto precedente per cui l'implementazione di surfaceView di
PreviewViewnon funzionava correttamente su alcuni dispositivi e causava l'arresto anomalo dell'app dopo il ripristino dell'anteprima. (I5ed6b)
Camera-Extensions versione 1.0.0-alpha09
1° aprile 2020
androidx.camera:camera-extensions:1.0.0-alpha09 è stato rilasciato. La versione 1.0.0-alpha09 contiene questi commit.
Correzioni di bug
- Aggiornato per supportare le correzioni di bug negli artefatti
camera-camera2:1.0.0-beta02,camera-core:1.0.0-beta02ecamera-lifecycle:1.0.0-beta02
Camera-View versione 1.0.0-alpha09
1° aprile 2020
androidx.camera:camera-view:1.0.0-alpha09 è stata rilasciata. La versione 1.0.0-alpha09 contiene questi commit.
Problemi noti
- L'utilizzo di
ImplementationMode.SURFACE_VIEWconPreviewViewpotrebbe non funzionare correttamente su alcuni dispositivi, perchéSurfaceViewutilizzato per l'anteprima invalida la sua superficie quando il ciclo di vita della finestra in cui si trova viene interrotto. Al riavvio, la fotocamera viene riaperta e potrebbe tentare di riprendere l'anteprima prima che la superficie diSurfaceViewsia nuovamente valida. Per il momento, devi utilizzareImplementationMode.TEXTURE_VIEW.
Modifiche alle API
PreviewView.setImplementationMode()rinominato inPreviewView.setPreferredImplementationMode().PreviewView.getImplementationMode()rinominato inPreviewView.getPreferredImplementationMode().PreviewView.getSurfaceProvider()è stato sostituito daPreviewView.createSurfaceProvider(CameraInfo), che accetta un'istanzaCameraInfonullable utilizzata per ottimizzare l'anteprima utilizzandoImplementationMode.SURFACE_VIEWquando possibile. Se viene passata un'istanza null o se imposti la modalità di implementazione preferita suImplementationMode.TEXTURE_VIEW,ImplementationMode.TEXTURE_VIEWviene utilizzato internamente.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)Aggiunto
PreviewView.setScaleType(), che consente di impostare il tipo di scala dell'anteprima. Accetta uno dei valori inPreviewView.ScaleTypee il valore predefinito èPreviewView.ScaleType.FILL_CENTER.PreviewView.getScaleType()aggiunti.È stato rimosso il supporto per l'impostazione della modalità di implementazione per
PreviewViewin un layout XML utilizzando l'attributoimplementationMode.Aggiungi l'API
createMeteringPointFactory()a PreviewView per supportare la conversione di (x, y) inPreviewViewinMeteringPoint. (Ib36d7)
Correzioni di bug
- Sono stati risolti i casi in cui veniva 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 è stato rilasciato. La versione 1.0.0-alpha08 contiene questi commit.
Camera-View versione 1.0.0-alpha08
26 febbraio 2020
androidx.camera:camera-view:1.0.0-alpha08 è stato rilasciato. La versione 1.0.0-alpha08 contiene questi commit.
Correzioni di bug
- Sostituito
ListenableFuturesuSurfaceRequest.provideSurface()conExecutoreCallback. In questo modo l'API viene semplificata, in quanto non è più necessario gestire le eccezioni suprovideSurface()e viene applicato il principio per cui il callbackprovideSurface()non può essere annullato. In questo modo si evitano arresti anomali sui dispositivi meno recenti causati dal rilascio prematuro delle piattaforme. L'oggettoSurfaceRequest.Resultviene ora utilizzato per monitorare il modo in cui unSurfaceRequestutilizza l'oggettoSurfacefornito. (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 conservando il flag che imposta il provider
CameraXConfigpredefinito. (I2d6c1)
Camera-Extensions versione 1.0.0-alpha07
10 febbraio 2020
androidx.camera:camera-extensions:1.0.0-alpha07 è stato rilasciato. La versione 1.0.0-alpha07 contiene questi commit.
Correzioni di bug
- Gli argomenti precedentemente passati in
ImageCapture.OnImageSavedCallback.onError()eImageCapture.OnImageCapturedCallback.onError()sono stati sostituiti da un singolo argomentoImageCaptureException, che contiene ancora tutte le informazioni precedentemente passate. - L'argomento file precedentemente passato 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 è stato rilasciato. La versione 1.0.0-alpha07 contiene questi commit.
Modifiche alle API
- L'implementazione di
TextureViewdiPreviewViewora imposta le dimensioni diTextureViewsulle dimensioni di output del sensore della fotocamera prima di scalarle per riempire l'elemento principalePreviewView. Se vuoi che l'anteprima della fotocamera riempia un'intera parte della UI (ad esempio l'intero schermo), non devi impostare le dimensioni diPreviewViewsu un valore fisso o fare in modo che i contenuti vengano adattati (ad esempio utilizzando l'attributo "wrap_content"). In questo modo, l'anteprima della fotocamera potrebbe riempire solo una parte diPreviewView(se le dimensioni dell'output del sensore della fotocamera sono inferiori). Devi invece impostarePreviewViewin modo che sia grande quanto il relativo elemento principale (ad esempio utilizzando l'attributo "match_parent"). (1204869)
Correzioni di bug
ImageCaptureè stato aggiornato per consentire il salvataggio delle immagini suUrieOutputStream. MetoditakePicturesovraccarichi combinati in uno. Aggiornata l'app di test per utilizzareUricome esempio canonico. (Ia3bec)Preview.PreviewSurfaceProviderè stato rinominato inPreview.SurfaceProvider. LeSurfaceProvidernon richiedono più agli sviluppatori di creare i propriListenableFuturee la fornitura di unSurfaceviene ora eseguita tramite un nuovo oggettoSurfaceRequest. Il metodoPreview.getPreviewSurfaceProvider()è stato rimosso a causa del potenziale uso improprio quandoPreviewè associato ad altre classi comePreviewView. (I20105)- Gli argomenti precedentemente passati in
ImageCapture.OnImageSavedCallback.onError()eImageCapture.OnImageCapturedCallback.onError()sono stati sostituiti da un singolo argomentoImageCaptureException, che contiene ancora tutte le informazioni precedentemente passate. - L'argomento file precedentemente passato in
ImageCapture.OnImageSavedCallback.onImageSaved()è stato rimosso. (I750d2) - API aggiornata, con i metodi
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()egetLinearZoom()diCameraInfoche si uniscono ingetZoomState(), che restituisce un'istanzaZoomState. (Ib19fe)
Camera-Extensions versione 1.0.0-alpha06
22 gennaio 2020
androidx.camera:camera-extensions:1.0.0-alpha06 è stato rilasciato. La versione 1.0.0-alpha06 contiene questi commit.
Aggiornamenti
- Varie correzioni e aggiornamenti per supportare le modifiche a Camera Core e Camera2.
Camera-View versione 1.0.0-alpha06
22 gennaio 2020
androidx.camera:camera-view:1.0.0-alpha06 è stato rilasciato. La versione 1.0.0-alpha06 contiene questi commit.
Aggiornamenti
- Varie correzioni e aggiornamenti per supportare le modifiche a Camera Core e Camera2.
Camera-Extensions versione 1.0.0-alpha05
18 dicembre 2019
androidx.camera:camera-extensions:1.0.0-alpha05 è stato rilasciato. La versione 1.0.0-alpha05 contiene questi commit.
Correzioni di bug
- Aggiornamento per la corrispondenza con le API Camera Core interne.
Camera-View versione 1.0.0-alpha05
18 dicembre 2019
androidx.camera:camera-view:1.0.0-alpha05 è stato rilasciato. La versione 1.0.0-alpha05 contiene questi commit.
Problemi noti
- Le proporzioni potrebbero essere errate quando si utilizza PreviewView (b/146215202).
Nuove funzionalità
- È stata implementata una nuova classe denominata
PreviewView.TextureViewImplementationche sincronizza il ciclo di vita di SurfaceTexture con l'utilizzo della superficie di TextureView da parte della fotocamera.
Camera-Extensions versione 1.0.0-alpha04
4 dicembre 2019
androidx.camera:camera-extensions:1.0.0-alpha04 è stato rilasciato. La versione 1.0.0-alpha04 di camera-extensions contiene questi commit
Modifiche alle API
La verifica della disponibilità e dell'attivazione di un'estensione ora accetta un
CameraSelectorcome parametro di input. Deve essere lo stessoCameraSelectorutilizzato 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() )
Camera-View versione 1.0.0-alpha04
4 dicembre 2019
androidx.camera:camera-view:1.0.0-alpha04 è stato rilasciato. La versione 1.0.0-alpha04 di camera-view contiene questi commit
Modifiche alle API
- Viene fornita una classe
PreviewViewper visualizzare facilmente l'output del caso d'uso Anteprima in un'applicazione. Nel layout è possibile includere
PreviewView:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />PreviewViewfornisce unPreviewSurfaceProviderper connettere facilmente un caso d'uso di Previewpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)"
ZoomLevel" è ora "ZoomRatio" nella denominazione delle APILa possibilità di avere valori nulli è cambiata per alcuni parametri del metodo
Camera-Extensions e Camera-View 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 sono state rilasciate. 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à
- Aggiunto l'inizializzatore del contesto per le estensioni. Versione delle estensioni incrementata a 1.1.0
Camera-Extensions e Camera-View 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 sono state rilasciate. Questi sono i commit inclusi in camera-extensions:1.0.0-alpha02 e questi sono i commit inclusi in camera-view:1.0.0-alpha02.
- Sono stati aggiunti test per verificare che
PreviewImageProcessorImplabbia implementato correttamente i timestamp. - Correggi l'errore del test
ExtensionTestsu Nexus 5 (livello API 21) e assicurati che l'anteprima sia disponibile.
Camera-Extensions e Camera-View 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 sono state rilasciate.
Questi sono i commit inclusi in camera-extensions:1.0.0-alpha01 e questi sono i commit inclusi in camera-view:1.0.0-alpha01.
- Nuova libreria per future estensioni della fotocamera per accedere agli effetti sui dispositivi supportati. Questa libreria è in fase di sviluppo.
- Nuova classe CameraView. Questa libreria è in fase di sviluppo.