CameraX

CameraX è un'aggiunta a Jetpack che semplifica l'aggiunta di funzionalità della fotocamera alla tua app. La libreria fornisce una serie di correzioni di compatibilità e soluzioni alternative per contribuire a rendere l'esperienza degli sviluppatori coerente su molti dispositivi.

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 - -
Ultimo aggiornamento di questa raccolta: 21 ottobre 2026

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.

Crea un nuovo problema

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 ImplementationMode di Viewfinder per riflettere meglio le implementazioni sottostanti e aggiungi costanti fisse per TransformationInfo.sourceRotation. (Ic6149)
  • È stato aggiunto ZoomGestureDetector.ZoomEvent per 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, SessionConfigCamera2Interop e CameraControlCamera2Interop sono 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 SIGSEGV nel thread CameraX OpenGL quando un SurfaceProcessor rilasciava un SurfaceTexture di input il cui SurfaceRequest veniva sottoposto a garbage collection prima del completamento. (I76f73, b/563673593)
  • Risolto un problema di perdita di superficie e un arresto anomalo nativo di OpenGL che poteva verificarsi durante la garbage collection quando l'esecutore di un CameraEffect o HandlerThread veniva arrestato prima della chiusura di SurfaceOutput dell'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 CameraSelector su fotocamere fisiche da CameraInfo.getPhysicalCameraInfos() e l'associazione di UseCases a fotocamere fisiche. La query di CameraInfo con un CameraSelector fisico ora restituisce il CameraInfo fisico anziché il CameraInfo logico. (Ibe7f2)
  • Chiarito il Javadoc OutputOptions.Builder.setLocation che solo la latitudine e la longitudine sono memorizzate nei metadati del video. (I77d3b, b/551348846)
  • Risolto un bug in ImageAnalysis per 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.isSupported per il formato PRIVATE in ImageAnalysis per 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, Camera2CameraInfo e CaptureRequestOptions) a favore dei metodi di configurazione di fabbrica Camera2Interop e delle funzioni di estensione Kotlin. (Ib0845, b/529609261)
  • Sono stati aggiunti i blocchi di estensione Kotlin DSL camera2Interop per preview, imageAnalysis, videoCapture, imageCapture e SessionConfig.Builder, nonché la funzione di estensione CameraControl.applyCamera2InteropAsync. (I51af9, b/529609261)
  • Sono stati aggiunti nuovi metodi factory del configuratore Camera2Interop (forUseCase, forImageCapture, forSessionConfig, forCameraControl) e i metodi setInterop / applyInteropAsync corrispondenti su Preview.Builder, ImageCapture.Builder, ImageAnalysis.Builder, VideoCapture.Builder, SessionConfig.Builder e CameraControl. (I0007b, b/529609261)
  • Sono stati aggiunti metodi helper a Camera2Interop e proprietà di estensione Kotlin equivalenti (CameraInfo.cameraId, CameraInfo.cameraCharacteristics e String.toCameraSelector()) per recuperare l'ID e le caratteristiche della fotocamera Camera2 da CameraInfo. (I11803, b/529609261)
  • Sono stati aggiunti Preview.setMirrorMode, Preview.getMirrorMode e VideoCapture.setMirrorMode alle API pubbliche ed è stata rimossa l'annotazione ExperimentalMirrorMode. (I4ed60, b/519794349, b/470629643)
  • Sono stati aggiunti i builder Kotlin DSL preview { … }, imageCapture { … }, imageAnalysis { … } e videoCapture { … } per la creazione di UseCases. (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.Builder e ExtensionSessionConfig.Builder in 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 Preview con un OverlayEffect causava un errore di pubblicazione dello stream di anteprima. (I7a383, b/532577546, b/532924417)
  • Risolto un problema per cui Recording.pause() e Recording.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

  • CameraXViewfinder ora 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 isAutoRotationEnabled a SessionConfig.Builder , HighSpeedVideoSessionConfig.Builder, ExtensionSessionConfig.Builder e 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à TransformationMode a TransformationInfo per supportare le app nell'utilizzo della pipeline OpenGL in modalità EMBEDDED. (Id1de1, b/487826941)
  • Aggiunta di isNightModeIndicatorSupported() e getNightModeIndicator() a CameraInfo per 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 QHD in VideoCapture. (I0ac20, b/501305592)
  • Sono stati aggiunti Recorder.Builder.setTargetAudioChannelCount(int) e Recorder.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() e getSupportedAudioMimeTypes(), che sono attualmente sperimentali. I formati preferiti possono essere configurati esplicitamente tramite Recorder.Builder.setVideoMimeType() e setAudioMimeType(). 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 CameraXViewfinder problemi di trasformazione in modalità EMBEDDED quando la pipeline OpenGL è attivata da CameraX per l'associazione di più UseCases o 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 un SessionConfig personalizzato per configurazioni UseCase avanzate non esposte direttamente da CameraController. Quando un SessionConfig è attivo, gli altri metodi di configurazione su CameraController sono 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 ImageAnalysis per 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

4. API SessionConfig stabilizzata

  • SessionConfig è passata da sperimentale ad API pubblica completamente stabile, tra cui SessionConfig e HighSpeedVideoSessionConfig. Le estensioni CameraX ora possono essere implementate con una nuova API ExtensionSessionConfig. È stata introdotta una nuova API isSessionConfigSupported, 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 NullPointerException o un IllegalArgumentException durante ProcessCameraProvider.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_STABILIZATION viene utilizzato con VideoCapture. 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#isFeatureGroupSupported poteva restituire erroneamente true per PREVIEW_STABILIZATION se SessionConfig nella 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 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 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 ImageCapture OUTPUT_FORMAT_RAW_JPEG IllegalArgumentException. (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 CameraExtensionsInfo in 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 CameraEffect sia dell'API dei gruppi di caratteristiche in SessionConfig. (I17f18, b/406370934)
  • Aggiunto il supporto per l'utilizzo sia di ImageAnalysis sia dell'API dei gruppi di caratteristiche in SessionConfig. (I87833, b/406371720)

Modifiche alle API

  • Aggiunta la funzione di impostazione addUseCase per ExtensionSessionConfig.Builder e aggiunti i getter mancanti per ExtensionSessionConfig. (I71e07, b/453988621)
  • È stata aggiunta l'API ExtensionsManager.getInstance, che è una versione di sospensione di ExtensionsManager.getInstanceAsync (I3a0a9, b/452208792)
  • isFeatureGroupSupported è stato rinominato in isSessionConfigSupported e ora supporta tutti i tipi di SessionConfig. (I21616, b/448781299)
  • ExtensionsManager convertito in implementazione Kotlin. (I73091, b/452208792)
  • È stato aggiunto CameraProvider#getCameraInfo(CameraSelector, SessionConfig) per recuperare CameraInfo quando SessionConfig può influire sulla selezione della fotocamera. Ad esempio, quando utilizzi un ExtensionSessionConfig. (Ic548c, b/451891648)
  • API ExtensionSessionConfig esposta. Le app possono creare un ExtensionSessionConfig e utilizzarlo per creare una sessione di estensioni ora. (I6354c, b/448524373)
  • L'API androidx.camera.video.HighSpeedVideoSessionConfig non è più sperimentale ed è ora un'API pubblica completamente stabile. (I492d4, b/447558239)
  • L'API androidx.camera.core.SessionConfig non è 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_MODE non veniva applicato se impostato tramite l'API Camera2Interop. (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_STABILIZATION viene utilizzato con VideoCapture. In questo modo viene corretto un bug che causava risultati incoerenti quando non era attivo anche un caso d'uso Preview. (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#isFeatureGroupSupported poteva restituire erroneamente true per PREVIEW_STABILIZATION se SessionConfig nella 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_STABILIZATION veniva aggiunta con il caso d'uso VideoCapture, ma senza il caso d'uso Preview. (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 CameraEffect in modalità di composizione della videocamera simultanea. L'effetto verrà applicato all'output della composizione. Tieni presente che mirrorMode in VideoCapture verrà ignorato quando l'effetto è impostato in modalità di composizione della videocamera simultanea. (If3d00, b/425565129)
  • Risolto il problema per cui mirrorMode non veniva applicato correttamente alla videocamera secondaria nella modalità di composizione della videocamera simultanea. (I686cd, b/446430827)
  • Supporta l'associazione di Preview, ImageCapture e VideoCapture in modalità non composizione della fotocamera simultanea. (Ib410a, b/443009871)
  • Risolto un problema per cui UseCase come ImageCapture e VideoCapture perdevano le informazioni sulla rotazione target se venivano ricreati. Ciò potrebbe causare un orientamento errato delle immagini o dei video se un'impostazione come imageCaptureMode è stata modificata dopo la rotazione del dispositivo. (I477c8, b/444734537)
  • Risolto un problema che impediva ad Anteprima di selezionare risoluzioni 16:9 e a VideoCapture di registrare con QUALITY_1080P. Questo problema si è verificato quando è stata utilizzata una configurazione predefinita della risoluzione di Preview mentre era attiva la funzionalità interna StreamSharing (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 CameraController che causava un IllegalStateException quando 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#isFeatureGroupSupported poteva restituire erroneamente true per la funzionalità PREVIEW_STABILIZATION. Questo potrebbe verificarsi a volte quando si esegue una query con un SessionConfig già configurato con altre funzionalità. (I2c355, b/437816469)
  • Stabilità di CameraXViewfinder migliorata su livelli API precedenti e dispositivi con problemi di SurfaceView utilizzando TextureView come 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 PreviewView che poteva impedire la garbage collection della relativa attività. Questo accade se un nuovo SurfaceRequest arriva 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) e HighSpeedVideoSessionConfig.
  • API SessionConfig e FeatureGroup: la nuova API SessionConfig ti 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ù, consulta SessionConfig.Builder#setPreferredFeatureGroup, SessionConfig.Builder#setRequiredFeatureGroup e CameraInfo#isFeatureGroupSupported(SessionConfig).
  • API Deterministic Frame Rate: risolvi le limitazioni precedenti con setTargetFrameRate utilizzando CameraInfo.getSupportedFrameRateRanges(sessionConfig) per eseguire query e SessionConfig.setExpectedFrameRateRange per impostare frequenze fotogrammi precise e supportate.
  • Estensioni della fotocamera: il formato UltraHDR è ora supportato con le estensioni. Controlla ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats() e attivalo in ImageCapture.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: consulta CameraInfo#isLowLightBoostSupported, CameraInfo#getLowLightBoostState e CameraControl#enableLowLightBoostAsync.
  • Acquisizione video: VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE ora 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. Controlla ImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats() per il supporto RAW. Utilizza le API takePicture in overload con più OutputFileOptions per l'acquisizione RAW+DNG.
  • Analisi delle immagini: supporto del formato NV21 in ImageAnalysis. Attivalo con ImageAnalysis.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 UniSoc durante l'acquisizione di un'immagine. Il problema si è verificato quando VideoCapture, Preview e ImageCapture sono 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. SessionConfig ora contiene nuove API per indicare un gruppo di funzionalità come obbligatorie o preferite. L'API CameraInfo.isFeatureGroupSupported consente di sapere se un gruppo di funzionalità è supportato prima di associare un SessionConfig. SessionConfig consente 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>) e CameraInfo.getSupportedFrameRateRanges(SessionConfig), che consentono agli sviluppatori di eseguire query sulle frequenze fotogrammi supportate garantite limitate da un SessionConfig specifico e quindi di applicare la frequenza fotogrammi su SessionConfig. (Ieacf7)
  • È stata introdotta la nuova API SessionConfig, che include un'astrazione migliore per la configurazione di casi d'uso, parametri di sessione, CameraEffect, ViewPort e così via. L'associazione di un SessionConfig a un LifecycleOwner apre la sessione della fotocamera, la configura utilizzando i casi d'uso e i parametri di sessione specificati e applica i CameraEffect e ViewPort designati. Quando aggiorni un nuovo SessionConfig allo stesso LifecycleOwner, puoi semplicemente associare un nuovo Sessionconfig senza dover prima richiamare unbind o unbindAll. (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 PreviewView diventa 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)
  • CameraXViewfinder ora gestisce correttamente la sostituzione della superficie nel Viewfinder sottostante. Ciò copre scenari come quando un mirino EXTERNAL sul livello API 28 o precedente si sposta fuori dallo schermo o se un CameraXViewfinder (con qualsiasi ImplementationMode) fa parte di moveableContentOf(). Nei casi in cui non è possibile mantenere attivo l'oggetto ViewfinderSurfaceSession sottostante, l'oggetto CameraXViewfinder invaliderà l'oggetto SurfaceRequest CameraX corrente, consentendo a CameraX di utilizzare il nuovo oggetto Surface. (I79432)
  • Risolve un problema su Android 10/11 per cui EXTERNAL CameraXViewfinder poteva 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 CameraXViewfinder ora funziona correttamente con Pager di Compose. Questa modifica garantisce che il Composable possa essere reimpostato correttamente implementando il callback onReset di AndroidView, supportando le implementazioni di EMBEDDED e EXTERNAL. (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)
  • ContentScale e Alignment ora possono essere utilizzati nel mirino per ridimensionare e posizionare la superficie visualizzata all'interno del relativo contenitore, in modo simile al comportamento di androidx.compose.foundation.Image. (Ibcea3)
  • TransformationInfo ora ha valori predefiniti per tutti gli argomenti. In questo modo, i Viewfinder verranno creati senza TransformationInfo, 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 ImageAnalysis con un altro stream che utilizza TEMPLATE_RECORD sul dispositivo Samsung SM-E556B. (Ic0e62, b/409478042)
  • Risolto il problema di blocco dell'anteprima quando si utilizza ImageAnalysis con un altro stream che utilizza TEMPLATE_RECORD sul dispositivo Samsung SM-M556B. (Ic1a6a, b/395822788)
  • Risolto il problema relativo alla modalità notturna delle estensioni AssertError sui 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.getMaxTorchStrengthLevel e CameraControl.setTorchStrengthLevel per consentire la personalizzazione della luminosità della torcia (I00878)
  • È stata aggiunta una nuova API CameraController#setTapToFocusAutoCancelDuration per consentire agli utenti di controllare il comportamento di annullamento automatico per gli eventi di messa a fuoco con tocco PreviewView. 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 in NOT_FIRED e gli altri nomi delle costanti FlashState sono 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#isLowLightBoostSupported per verificare la disponibilità della funzionalità. 2. Utilizza CameraControl#enableLowLightBoostAsync per attivare la modalità quando i dispositivi la supportano. 3. Utilizza CameraInfo#getLowLightBoostState per 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 API getTapToFocusInfoState() ora espone anche la posizione del tocco corrispondente restituendo un LiveData della classe TapToFocusInfo, mentre l'API LiveData<Integer> precedente che restituisce getTapToFocusState() è 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 CameraController non veniva reimpostato su TAP_TO_FOCUS_NOT_STARTED quando 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 a QualitySelector. (I70508, b/204288986)
  • Quando viene richiamata un'acquisizione di immagini con l'API ImageCapture.OnImageCapturedCallback, l'ImageInfo restituito in ImageProxy può ora essere utilizzato per sapere se il flash è stato attivato tramite la nuova API ImageInfo.getFlashState(). (Id2c61, b/380527406)
  • Aggiunto il supporto del formato di output OUTPUT_IMAGE_FORMAT_NV21 per ImageAnalysis. (I484ab)
  • Rimuovi l'annotazione sperimentale dell'artefatto featurecombinationquery (I4427f)
  • Regola l'intervallo del rapporto di zoom consentito per CameraControl in 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 configurazione compileSdk. (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#setOutputFormat e ImageCaptureCapabilities#getSupportedOutputFormats sono state esposte come API stabili (Ieb04a)
  • Aggiungi VideoCapture.getResolutionInfo() per ottenere le informazioni sulla risoluzione quando un VideoCapture è associato a un ciclo di vita. (Icb478)
  • PreviewView.getScreenFlash e PreviewView.setScreenFlashOverlayColor esposte 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 UltraHDR per le estensioni, se il dispositivo lo supporta. (I48300)
  • Risolto il problema di sincronizzazione del flash per l'acquisizione con flash con CameraEffect che 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 in ImageCaptureCapabilities#getSupportedOutputFormats. OUTPUT_FORMAT_RAW serve per acquisire un'immagine RAW, ovvero in formato Adobe DNG, mentre OUTPUT_FORMAT_RAW_JPEG serve per acquisire contemporaneamente immagini RAW e JPEG. La nuova API ImageCapture#takePicture viene utilizzata per l'acquisizione simultanea di immagini e deve fornire due OutputFileOptions, 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 startFocusMetering con PreviewView.getMeteringPointFactory non 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_STORAGE non 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#isSessionConfigurationSupported di camera2 con dati aggiuntivi forniti da Google Play Services.

Correzioni di bug

  • Risolto il problema relativo alla frequenza fotogrammi target di Preview/VideoCapture sui dispositivi di livello LEGACY. La frequenza fotogrammi target impostata tramite l'API setTargetFrameRate o Camera2Interop veniva sempre sovrascritta con il valore fornito da AeFpsRangeLegacyQuirk. Con questa correzione, la libreria CameraX rispetterà il valore impostato tramite l'API setTargetFrameRate o Camera2Interop. (Ie2d32)
  • Aggiunte le funzionalità flash/torcia/3A per le acquisizioni di immagini con CameraEffect. Le acquisizioni di immagini con CameraEffect ora 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 senza CameraEffect. (I5ff30)
  • Sono state escluse le dimensioni di output problematiche per ImageAnalysis sul dispositivo Samsung SM-A057G. Quando ImageAnalysis utilizza una risoluzione superiore o uguale a 1920 x 1440, si verifica il problema dell'anteprima nera. È stato applicato ExcludedSupportedSizesQuirk al dispositivo SM-A057G per evitare il problema. (I63dfe, b/365877975)
  • Risolto il problema relativo alla frequenza fotogrammi target di Preview/VideoCapture quando il meccanismo di condivisione dello stream è attivato internamente per condividere uno stream con Preview e VideoCapture. (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_STORAGE non 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 un SurfaceRequest CameraX da camera-core. (I8666e)
  • È stato aggiunto un nuovo composable, CameraXViewfinder, che funge da composable idiomatico che adatta i SurfaceRequest di CameraX per il composable Viewfinder. (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.getCameraInfo esposta 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 bindToLifecycle viene richiamato con un LifecycleOwner eliminato. (I6e6d8)
  • Risolto il problema della schermata nera nell'anteprima della fotocamera anteriore durante l'accoppiamento con VideoCapture su Motorola Edge 20 Fusion. (I1fe88)
  • Ottimizzata la configurazione per il rilevamento dei gesti di zoom in PreviewView per 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 ImageAnalysis con un altro stream che utilizza TEMPLATE_RECORD su 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#takePicture quando le estensioni sono attive e VideoCapture è 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 UltraHDR e video HDR su una gamma sempre più ampia di dispositivi.

Altre funzionalità interessanti:

  • Estensioni Kotlin: aggiunte le funzioni di sospensione takePicture e awaitInstance.
  • 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 VideoCapture e nuove funzionalità di ImageCapture.
  • 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 startFocusMetering con PreviewView.getMeteringPointFactory non 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 con CameraEffect ora 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 senza CameraEffect. (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 bindToLifecycle viene richiamato con un LifecycleOwner eliminato. (I6e6d8)
  • È stata aggiunta l'animazione della visibilità in ScreenFlashView per ScreenFlash#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.getCameraInfo per 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.getScreenFlash e PreviewView.setScreenFlashOverlayColor per i casi in cui ScreenFlashView non 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 takePicture con le Estensioni attive poteva non generare risultati e la richiesta takePicture successiva 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 Camera2OutputConfigImpl in modalità di rilascio, è emerso dopo l'upgrade di AGP alla versione 8.5.1 e l'attivazione della minimizzazione. (I99598, b/354824993)

Versione 1.4.0-beta02

12 giugno 2024

androidx.camera:camera-*:1.4.0-beta02 è stato rilasciato. La versione 1.4.0-beta02 contiene questi commit.

Modifiche alle API

  • Analogamente a VideoCapture, aggiungi setMirrorMode per il caso d'uso Anteprima. Supporta la modalità Specchio ON e OFF per lo stream di anteprima tramite OutputConfiguration.setMirrorMode dall'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 ImageCapture selezionava 1920 x 1080 nella combinazione Preview + VideoCapture + ImageCapture UseCase. (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.ZoomEvent per 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 CameraEffect era 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, ImageCapture e VideoCapture(UHD) sono associati su Pixel 4XL API29. (I5b288)
  • Supporto dei dispositivi virtuali: il contesto passato a ProcessCameraProvider manterrà l'ID dispositivo per garantire la funzionalità in un ambiente di 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à

  • ProcessCameraProvider convertito in implementazione Kotlin. (I46d4f)
  • Sono state aggiunte funzioni di sospensione ImageCapture.takePicture per consentire la chiamata in modo idiomatico di Kotlin. (I920be)

Modifiche alle API

  • Aggiungi le API del formato di output a ImageCapture e aggiungi il metodo getSupportedOutputFormats a ImageCaptureCapabilities per 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 su OUTPUT_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 PhysicalCameraInfo in CameraInfo per eseguire query sulle informazioni della fotocamera fisica e aggiunta del metodo di impostazione/recupero dell'ID della fotocamera fisica in CameraSelector (Ic5b90)
  • Sostituisci CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED con ImageAnalysis#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 RetryPolicy consente agli sviluppatori di personalizzare il comportamento dei nuovi tentativi per l'inizializzazione di CameraX. (I36dd2)
  • Abilita la creazione dell'oggetto ImageCaptureLatencyEstimate per facilitare la testabilità (Iaba99)
  • Aggiungi un ImageAnalysis#COORDINATE_SYSTEM_SENSOR. Quando viene utilizzato, MlKitAnalyzer restituisce le coordinate nel sistema di coordinate del sensore della fotocamera. (I3ec61)
  • API dei metadati delle estensioni esposta. Le nuove interfacce CameraExtensionsInfo e CameraExtensionsControl consentono alle applicazioni di monitorare e regolare le impostazioni di intensità dell'estensione. Le applicazioni possono ottenere l'istanza CameraExtensionsInfo o CameraExtensionsControl tramite i metodi ExtensionsManager#getCameraExtensionsInfo() o ExtensionsManager#getCameraExtensionsControl() appena aggiunti. (I28e1a)
  • Aggiunta di ProcessCameraProvider.awaitInstance, che è una versione di sospensione di ProcessCameraProvider.getInstance (Ib22b9)
  • Aggiungi un'API PreviewView#getSensorToViewTransform(). La matrice rappresenta la trasformazione dalle coordinate del sensore della fotocamera alle coordinate di PreviewView. Può essere utilizzato per trasformare le coordinate da un UseCase a un altro. Ad esempio, trasformando le coordinate degli oggetti rilevati in ImageAnalysis in un overlay PreviewView. (I947ab)
  • Rendi l'API camera-viewfinder-core più generica in modo che possa essere utilizzata da camera-viewfinder e camera-viewfinder-compose. (I1e295)
  • Aggiungi la funzione getSurface a ViewfinderSurfaceRequest. (I781a0)
  • Utilizza camera-viewfinder-core in camera-viewfinder e ritira ViewfinderSurfaceRequest e CameraViewfinder. (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 ImageAnalysis relativo 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 un ResolutionSelector con la risoluzione preferita e un AspectRatioStrategy corrispondente a ImageAnalysis UseCase può risolvere il problema. (I81f72, b/330091012)
  • Risolto un problema per cui l'esecuzione della richiesta takePicture in 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 ImageAnalysis sulle estensioni CameraX, poiché molte implementazioni delle estensioni degli OEM non funzionano bene con ImageAnalysis e 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, VideoCapture e/o ImageCapture. Questo artefatto contiene implementazioni OpenGL dell'API CameraEffect che manipola l'output della fotocamera in modo efficiente.
  • OverlayEffect: per disegnare overlay con l'API Canvas di Android. In questo modo, l'app può applicare una filigrana o evidenziare gli oggetti rilevati sugli output della fotocamera.
  • API DynamicRange per 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. In CameraInfo sono disponibili anche nuove API per eseguire query sulle gamme dinamiche supportate da ogni fotocamera.

Modifiche alle API

  • ScreenFlashUiCompleter è stato rinominato in ScreenFlashListener e ScreenFlashUiCompleter#getExpirationTimeMillis è stato spostato nel parametro expirationTimeMillis di ScreenFlash#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() in isMirroring() (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 in ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi in ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi in ScreenFlash#clear ed è stato aggiunto il metodo getScreenFlashUiApplyTimeoutSeconds anziché esporre direttamente SCREEN_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 getZoomRatio restituiva erroneamente un valore ridotto quando veniva applicato un rapporto di zoom crescente. (I4aa0d, b/317543616)
  • L'evento ImageCapture#ScreenFlash#clear viene richiamato immediatamente quando ImageCapture viene 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.mustPlayShutterSound per fornire informazioni sull'eventuale riproduzione di un suono dell'otturatore in conformità alle limitazioni regionali. (Ifda84)
  • Sono stati aggiunti OnImageCapturedCallback.onCaptureStarted e OnImageSavedCallback.onCaptureStarted per 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 ScreenFlashUiControl fornita 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.ScreenFlashUiControl da PreviewView o dal nuovo ScreenFlashView, 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 utilizzando ImageCapture.Builder#setPostviewEnabled(). La dimensione della visualizzazione post-clic può essere selezionata utilizzando ImageCapture.Builder#setPostviewResolutionSelector(). Quando richiami takePicture(), onPostviewBitmapAvailable e onCaptureProcessProgressed possono essere implementati in OnImageSavedCallback o OnImageCapturedCallback per 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 PreviewCapabitlity in Preview UseCase. (Ie5b6c)
  • Sono state aggiunte API per supportare più qualità per VideoCapture. Recorder.Builder#setVideoCapabilitiesSource(int) può essere utilizzato con VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES per creare un'istanza Recorder che supporta più qualità rispetto a VIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. Un caso d'uso comune è quando l'applicazione tenta di registrare video in UHD ogni volta che è possibile, ma il CamcorderProfile del 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 ImageAnalysis a CameraController. (I9a96c, b/308240643)

Correzioni di bug

  • Da Fotocamera 1.3.1: 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)
  • Consenti l'utilizzo di VideoCapture quando 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 ImageAnalysis su Pixel per evitare il bug su Pixel che restituisce accidentalmente le dimensioni supportate di ImageAnalysis non 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 setCameraOpenRetryMaxTimeoutInMillisWhileResuming e 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.shutdownAsync come API di test pubblica per consentire l'utilizzo del provider della fotocamera di processo nelle suite di test che potrebbero dover inizializzare CameraX in modi diversi tra i test. (I9eca7)
  • Aggiungi API per configurare la gamma dinamica, la frequenza fotogrammi e la modalità Specchio dell'acquisizione video. (Ifb8f7)
  • Ritira OutputSize e sostituiscilo con ResolutionSelector. 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 ImageAnalysis sulla fotocamera posteriore. (I2e8b1)
  • Risolti i problemi di anteprima e di allungamento di VideoCapture su 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 ImageAnalysis non può essere associato a ImageCapture e Anteprima quando alcune modalità di estensione sono attive su alcuni dispositivi. La correzione restituirà il valore corretto quando le app eseguono query sulla disponibilità di ImageAnalysis tramite ExtensionsManager#isImageAnalysisSupported(). (I7d538)
  • Aggiorna JavaDoc in modo che corrisponda al comportamento. Anziché completare immediatamente l'operazione, #setZoomRatio, #setLinearZoom e #enableTorch attendono 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 getZoomRatio restituiva 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 setTargetFrameRate con FRAME_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 ImageAnalysis relativo 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 un ResolutionSelector con la risoluzione preferita e un AspectRatioStrategy corrispondente all'UseCase ImageAnalysis può 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

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 ImageAnalysis non può essere associato a ImageCapture e Anteprima quando alcune modalità di estensione sono attive su alcuni dispositivi. La correzione restituirà il valore corretto quando le app eseguono query sulla disponibilità di ImageAnalysis tramite ExtensionsManager#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.asPersistentRecording per consentire a una registrazione di registrare continuamente mentre il VideoCapture a cui è collegato il registratore viene ricollegato. (I517c6)

Correzioni di bug

  • Risolto un arresto anomalo che si verificava quando uno stream veniva condiviso sia con VideoCapture che 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 in setAllowedResolutionMode e le costanti ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON sono state rinominate in PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8)
  • API deprecate rimosse: ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int) e VideoCapture.setTargetRotationDegrees(int). (Id8e77)
  • La classe DynamicRange rappresenta la gamma dinamica delle immagini. Può essere utilizzato per selezionare i formati High Dynamic Range come output di VideoCapture tramite VideoCapture.Builder#setDynamicRange(). (Ib0377)
  • È stata aggiunta un'API isImageAnalysisSupported a ExtensionsManager con cui le app possono determinare se un caso d'uso ImageAnalysis può essere associato insieme ad Anteprima e ImageCapture quando le estensioni sono abilitate. (I1bc63)
  • La nuova classe VideoCapabilities ottenuta da Recorder può essere utilizzata per eseguire query sugli intervalli dinamici e sulle qualità supportati per la registrazione video sul dispositivo. I metodi getSupportedQualities() e isQualitySupported() di QualitySelector verranno ritirati. Utilizza invece i metodi getSupportedQualities() e isQualitySupported() di VideoCapabilities. (I04014)
  • CameraController#setVideoCaptureTargetQuality() è stato rinominato in setVideoCaptureQualitySelector e accetta l'argomento QualitySelector, che offre maggiore flessibilità per la configurazione della qualità video. CameraController#getVideoCaptureTargetQuality() viene modificato di conseguenza in getVideoCaptureQualitySelector. (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.JPEG per ImageProxy.toBitmap(). Se non è possibile decodificare l'array di byte JPEG, verrà generata un'eccezione UnsupportedOperationException. (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 API CameraInfo#getSupportedFrameRates().

Modifiche alle API

  • Le costanti ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON sono state rinominate in ALLOWED_RESOLUTIONS_NORMAL/SLOW e il nome della funzione builder setHighResolutionEnabledFlag è stato rinominato in setAllowedResolutionMode. (Iae817)
  • CameraInfo#getSupportedFrameRateRanges() ora restituisce un Set anziché un List per rappresentare meglio il fatto che gli intervalli non sono ordinati. (I02f43)
  • Aggiungi un listener di errori a CameraEffect per gestire gli errori irreversibili (Ice471)
  • Aggiunto il costruttore pubblico in ResolutionInfo per una migliore testabilità (If6d1c)
  • È stata fornita un'API UseCase.snapToSurfaceRotation(int) per sostituire l'utilizzo di setTargetRotationDegrees e ritirare le API ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int) e VideoCapture.setTargetRotationDegrees(int). (Ia9010)
  • Sono state aggiunte le nuove API Preview#getTargetFrameRate e Preview.Builder#setTargetFrameRate per poter impostare e recuperare la frequenza fotogrammi target per il caso d'uso Anteprima (If4f22)
  • VideoRecordEvent.Finalize ora verrà completato con il codice di errore ERROR_RECORDING_GARBAGE_COLLECTED quando l'oggetto Recording viene arrestato a causa della garbage collection. (Iba974)

Correzioni di bug

  • Risolto il problema di NullPointerException quando le dimensioni dell'output memorizzato nella cache in StreamConfigurationMapCompat sono 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 ConcurrentModificationException durante l'apertura della fotocamera quando VideoCapture era 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 VideoCapture API di mirroring. I video registrati da VideoCapture non vengono specchiati per impostazione predefinita. Tuttavia, l'anteprima della fotocamera anteriore è speculare per impostazione predefinita. Le API di mirroring di VideoCapture consentono di allinearsi all'anteprima della fotocamera quando si utilizza la fotocamera anteriore. Esistono tre MirrorMode, OFF, ON e ON_FRONT_ONLY. Per l'allineamento con l'anteprima della fotocamera, ti consigliamo di utilizzare ON_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 setTargetAspectRatio e setTargetResolution. Utilizza invece la nuova API ResolutionSelector. (I542c3)
  • Sono state aggiunte API pubbliche per la doppia fotocamera simultanea, tra cui:
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn() e ConcurrentCameraConfig, SingleCameraConfig e ConcurrentCamera (Iab1c1)
  • Rendi ImageProcessor.Response#getOutputImage NonNull (Ib9c60)
  • Sono state aggiunte VideoCapture API di mirroring, tra cui VideoCapture.Builder.setMirrorMode(int) e VideoCapture.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() in VideoCapture.Builder e l'API getTargetFramerate() in VideoCapture (I109d4)
  • Fai in modo che SurfaceOutput estenda Closable e nascondi il costruttore pubblico di SurfaceOutput.Event. (I60ea8)
  • Aggiunto Recording.mute per disattivare o riattivare l'audio in modo dinamico di una registrazione in fase di elaborazione. RecordingStats conterrà AudioStats.AUDIO_STATE_MUTED quando la registrazione in fase di elaborazione viene disattivata esplicitamente. (Ie17fc)
  • Il parametro #setEffects() è stato 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.Builder per 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 VideoCapture non 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 requestLegacyExternalStorage su true nel tag dell'applicazione. (I11b2c)
  • Risolto un arresto anomalo di RejectedExecutionException in DefaultSurfaceProcessor. L'arresto anomalo potrebbe verificarsi quando VideoCapture è 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 cui VideoCapture.Builder.setTargetRotation(int), VideoCapture.setTargetRotation(int), VideoCapture.setTargetRotationDegrees(int) e VideoCapture.getTargetRotation(). Le API sono utili per le applicazioni che bloccano l'orientamento del dispositivo. Vengono aggiunti anche ImageCapture.setTargetRotationDegrees(int) e ImageAnalysis.setTargetRotationDegrees(int). (Id3ffe, b/205242781)
  • Consenti VIDEO_CAPTURE e PREVIEW|VIDEO_CAPTURE come target degli effetti. Gli effetti che hanno come target VIDEO_CAPTURE verranno applicati a VideoCapture UseCase; gli effetti che hanno come target PREVIEW|VIDEO_CAPTURE verranno applicati a uno stream condiviso prima della copia in Anteprima e nello stream VideoCapture. (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 PreviewView per 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 ImageProxy in Bitmap. Il formato ImageProxy supportato è ImageFormat.YUV_420_888 e PixelFormat.RGBA_8888. Se il formato non è valido, verrà generato IllegalArgumentException. (Ic7110)
  • Aggiunta di CoroutineCameraViewfinder per supportare la configurazione del mirino utilizzando le funzioni di sospensione in Kotlin. (I657bc)
  • Aggiungi un nuovo costruttore pubblico per ViewfinderSurfaceRequest. Offre flessibilità quando l'utente non può fornire CameraCharacteristics. (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.getIntrinsicZoomRatio per fornire informazioni sull'angolo di visione relative alla videocamera predefinita. (Ib300c)
  • È stato aggiunto CameraInfo.getLensFacing per fornire informazioni sull'orientamento dell'obiettivo. È stata aggiunta la funzionalità sperimentale CameraSelector#LENS_FACING_EXTERNAL per la selezione di fotocamere esterne. (Icaf3e)
  • Aggiungi #setEffect() a CameraController per consentire l'aggiunta di effetti all'output della fotocamera. (I1d21f)
  • Aggiungi il metodo invalidate() a SurfaceRequest. 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 pipeline ImageCapture. (I575c6)
  • È stata aggiunta l'API Recorder.Builder.setAspectRatio(), che può essere combinata con QualitySelector per supportare più risoluzioni video. (I8a082)
  • Aggiunto Recorder.Builder#setTargetVideoEncodingBitRate per impostare la codifica video target BitRate e Recorder#getTargetVideoEncodingBitRate per ottenere il bitrate della codifica video target. (I5984d)

Correzioni di bug

  • Risolto il problema per cui l'elemento ImageCapture fisso 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 in OutputOptions.getDurationLimitMillis e OutputOptions.setDurationLimit in OutputOptions.setDurationLimitMillis. (I91f0c)
  • Aggiungi la classe AudioConfig per gestire l'impostazione relativa all'audio durante la registrazione di video. L'annotazione @RequiresPermission viene spostata dalle funzioni startRecording a AudioConfig per evitare richieste di autorizzazione non necessarie nei casi in cui l'audio non è necessario. (I28755)
  • Rimuovi le classi Metadata, OnVideoSavedCallback, OutputFileOptions e OutputFileResults che non vengono più utilizzate dopo l'applicazione della nuova API di acquisizione video. (I38cd8)
  • Applica la nuova API di acquisizione video. I metodi getVideoCaptureTargetSize e setVideoCaptureTargetSize vengono sostituiti rispettivamente dai metodi getVideoCaptureTargetQuality e setVideoCaptureTargetQuality, poiché setTargetResolution non è più supportato. (I2a1d5)

Correzioni di bug

  • Rimuovi l'API core.VideoCapture deprecata. (I531e0)
  • Risolto il problema per cui il callback onError non 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 ViewPort era 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-viewfinder fornisce 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.setDurationLimit per 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 PreviewView SurfaceView su ViewPager2. Nell'ambito della correzione, PreviewView riutilizzerà il proprio SurfaceView se la risoluzione richiesta non viene modificata. (Ib3f27)
  • Supporta il ritaglio dei video (funzionalità WYSIWYG) quando viene utilizzata l'API ViewPort o CameraController. (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 VideoCapture non funzionava con la fotocamera anteriore su alcuni dispositivi. Ad esempio, su Samsung Galaxy S23 e Xiaomi 2107113SG. (Ibec7e, b/270656244)

Versione 1.2.2

22 marzo 2023

androidx.camera:camera-*:1.2.2 è 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 supportano ZERO_SHUTTER_LAG, verrà utilizzato CAPTURE_MODE_MINIMIZE_LATENCY.
  • Depreca android.camera.core.VideoCapture.
  • setStreamUseCase() è stata aggiunta come API Camera2Interop pubblica.
  • È stato aggiunto il requisito del livello API per setOutputImageRotationEnabled.
  • ImageAnalysis.Analyzer#getTargetResolutionOverride() rinominato in ImageAnalysis.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 VideoCapture e 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/VideoCapture su 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 setStreamUseCase per OutputConfiguration. 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/VideoCapture su Samsung J7 Prime (SM-G610M) e J7 (SM-J710MN) sui dispositivi con livello API 27. La risoluzione 1920 x 1080 causa l'allungamento delle immagini Preview/VideoCapture. È stata aggiunta una soluzione alternativa per non selezionare la risoluzione 1920 x 1080 per l'anteprima o VideoCapture per evitare il problema dell'immagine allungata. (I0e04e)
  • Risolto il problema della frequenza fotogrammi bassa quando si utilizzano i casi d'uso VideoCapture e Anteprima con proporzioni 16:9 su alcuni dispositivi Huawei. (If8c88, b/223643510)
  • Risolto il problema di mancata apertura della fotocamera quando l'opzione SurfaceProvider di Anteprima non è impostata. Nell'ambito della correzione, l'anteprima senza SurfaceProvider impostato 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.Analyzer e MLKitAnalyzer sono state rese API ufficiali.
  • API esposta per l'impostazione dei metadati sulla posizione nel video salvato.
  • Rinomina ImageAnalysis.Analyzer#getTargetResolutionOverride() in ImageAnalysis.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 ExifInterface di 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() in ImageAnalysis.Analyzer#getDefaultTargetResolution(). Anche il comportamento viene modificato in modo che il valore restituito da questo metodo possa essere sostituito dal valore di ImageAnalysis#setTargetResolution(). (If1d36)
  • API esposta per l'impostazione dei metadati sulla posizione nel video salvato. Un oggetto android.location.Location può essere impostato tramite la nuova API androidx.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 Recorder durante 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.Analyzer e MLKitAnalyzer. (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 isFocusSuccessful false se FocusMeteringAction non 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_LAG in ImageCapture e aggiungi isZslSupported in CameraInfo per eseguire query sulla funzionalità del dispositivo. La modalità CAPTURE_MODE_ZERO_SHUTTER_LAG mira a fornire la latenza minima per l'acquisizione istantanea. È implementato in base a un buffer circolare, che memorizza nella cache i risultati di acquisizione intermedi per 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 ImageCapture takePicture disattivava la torcia sui dispositivi segnalati. (Ib5eb5, b/228272227)
  • Risolto un bug per cui AssertionError non veniva gestito durante il recupero della caratteristica CONTROL_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 QualitySelector non riusciva a registrare un video in UHD quando era attiva una strategia di riserva. Il problema si verifica quando VideoCapture è associato a ImageCapture e Preview su un dispositivo con fotocamera di livello hardware FULL o superiore. Una strategia di riserva di QualitySelector fa sì che VideoCapture ottenga erroneamente una risoluzione FHD. La risoluzione UHD è effettivamente supportata per questa combinazione di casi d'uso e deve essere adottata. (I0e788, b/230651237)
  • NullPointerException corretto il giorno ImageCapture.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.setOutputImageRotationEnabled e setOutputImageFormat)
  • 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 CameraState che verrà esposta tramite CameraInfo.
  • È stata aggiunta un'API ProcessCameraProvider.getAvailableCameraInfos() per recuperare direttamente le informazioni sulle videocamere disponibili
  • Formato JPEG di output per ImageCapture#OnImageCapturedCallback quando le estensioni sono attive.
  • È stata aggiunta un'API isFocusMeteringSupported in CameraInfo che consente alle applicazioni di verificare se il FocusMeteringAction specificato è supportato o meno dalla fotocamera corrente.
  • È stata esposta l'API getResolutionInfo per fornire le informazioni sulla risoluzione per l'anteprima, ImageCapture e ImageAnalysis.
  • È stata aggiunta una nuova API ImageCapture.Builder#setJpegQuality per consentire la modifica della qualità di compressione delle immagini JPEG di output quando si scattano foto.
  • È stato aggiunto CameraSelector#filter all'API pubblica per filtrare un elenco di CameraInfos in base a CameraSelector.
  • Aggiunto Camera2CameraControl.clearCaptureRequestOptions per cancellare le opzioni di richiesta di acquisizione esistenti.
  • È stata aggiunta un'API sperimentale per l'utilizzo di CameraController con librerie di elaborazione delle immagini esterne, ad esempio MLKit.
  • È stata aggiunta l'API sperimentale CameraInfo#getCameraSelector() che restituisce un CameraSelector univoco per la fotocamera
  • Promozione di diverse API sperimentali ad API pubbliche formali
  • L'annotazione @Experimental è stata sostituita con @RequiresOptIn per 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 UseCaseGroup per camera-core, camera-lifecycle e camera-video. Aggiunti ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection e ViewPort.Builder#setScaleType per la personalizzazione dell'area visibile.
  • ExperimentalUseCaseGroupLifecycle è stato promosso ad API pubblica formale.
  • Modifiche alle API esistenti
  • Renamed MediaStoreOutputOptions.getCollection a MediaStoreOutputOptions.getCollectionUri.
  • ActiveRecording è stato rinominato in "Registrazione" per ridurre la prolissità.
  • Modificata l'API di creazione QualitySelector in un'API basata su elenchi

Correzioni di bug

  • Risolto il problema di YuvToJpegProcessor EOFException quando 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

  • NullPointerException corretto il giorno ImageCapture.takePicture(). (I92366, b/230454568, b/229766155)
  • È stato corretto un bug per cui AssertionError non veniva gestito durante il recupero della caratteristica CONTROL_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 di VideoCapture<Recorder> durante la registrazione con MediaCodec.CodecException, in particolare sui dispositivi con API 21-22. (Ie7f68)
  • Correggi le immagini acquisite di CameraExtensionsActivity non eliminate in ImageCaptureTest

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 CameraController con librerie di elaborazione delle immagini esterne, ad esempio MLKit (I4ea71)

Correzioni di bug

  • Risolto il problema per cui l'anteprima veniva visualizzata lateralmente in PreviewView quando 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 AbstractMethodError che 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'errore InvalidConfigException. Se non è ancora possibile configurare Recorder, 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.clearCaptureRequestOptions per 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 QualitySelector sono state modificate per essere rappresentate da oggetti di classe. Ad esempio, QualitySelector.QUALITY_HD viene modificato in Quality.HD e QualitySelector.FALLBACK_STRATEGY_LOWER viene modificato nell'istanza restituita da FallbackStrategy.lowerQualityOrHigherThan(Quality). L'API utilizzata per creare QualitySelector è stata modificata in un'API basata su elenchi. La nuova API QualitySelector.fromOrderedList(List<Quality>) farà riferimento all'ordine dell'elenco delle qualità di input anziché all'ordine creato da QualitySelector.Procedure. La classe QualitySelector.Procedure è stata rimossa. (I43343)
  • PendingRecording.withEventListener() è stato rimosso e il listener di eventi ora deve essere passato a PendingRecording.start(). Questo requisito del listener di eventi ha lo scopo di incoraggiare la gestione degli errori asincroni segnalati nell'evento VideoRecordEvent.Finalize. (I1e71d)
  • ActiveRecording è stato rinominato in Recording per ridurre la prolissità. (I77ceb)

Correzioni di bug

  • Risolto il problema per cui le foto scattate in modalità FLASH_AUTO erano 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 con REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE hanno l'insieme minimo di funzionalità supportate da ogni dispositivo videocamera. La fotocamera senza REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE potrebbe essere una fotocamera che supporta funzionalità speciali e non supporta l'output dei colori standard. CameraX non può supportare i casi d'uso Preview, ImageCapture, ImageAnalysis o VideoCapture per queste videocamere. Pertanto, queste videocamere devono essere filtrate per evitare un utilizzo errato. (Ib8cda)
  • CameraSelector#filter non genera più un IllegalArgumentException quando 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 getSensorToBufferTransformMatrix in ImageInfo. La matrice restituita è una mappatura dalle coordinate del sensore alle coordinate del buffer, ovvero dal valore di CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE a (0, 0, image.getWidth, image.getHeight). La matrice può essere utilizzata per mappare le coordinate da un {UseCase} a un altro. Ad esempio, 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-alpha10 come 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 YuvToJpegProcessor EOFException 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#setLayoutDirection e ViewPort.Builder#setScaleType per 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 ExperimentalCameraFilter non 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 @RequiresOptIn per le API sperimentali. Per chiamare le API sperimentali, utilizza androidx.annotation.OptIn anziché 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#OnImageCapturedCallback quando 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 da CameraSelector fornite in CameraXConfig.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 IllegalArgumentException che si verificava quando tutte le dimensioni supportate per l'anteprima erano inferiori a 640 x 480 e le dimensioni di visualizzazione erano superiori a 640 x 480. (I2a63c, b/150506192)
  • Le risorse nelle librerie senza risorse pubbliche dichiarate esplicitamente (ad es. tramite public.xml) ora sono private per impostazione predefinita. (Ia1dcc, b/170882230)

Camera-Camera2, Camera-Core e Camera-Lifecycle versione 1.0.2

Versione 1.0.2

29 settembre 2021

androidx.camera:camera-camera2:1.0.2, androidx.camera:camera-core:1.0.2 e androidx.camera:camera-lifecycle:1.0.2 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 ListenableFuture restituito in setZoomRatio e setLinearZoom non 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

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 IllegalArgumentException che si verificava quando tutte le dimensioni supportate per l'anteprima erano inferiori a 640 x 480 e le dimensioni di visualizzazione erano superiori a 640 x 480. (I2a63c, b/150506192)

Versione 1.0.0-rc01

16 dicembre 2020

androidx.camera:camera-camera2:1.0.0-rc01, androidx.camera:camera-core:1.0.0-rc01 e androidx.camera:camera-lifecycle:1.0.0-rc01 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#onCaptureSuccess non 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_RATIO di Android 11 per lo zoom su dispositivi Android 11 o versioni successive che contengono un CONTROL_ZOOM_RATIO_RANGE valido. (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_0 se 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_0 se 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

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 InitializationException per 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_ON per scattare una foto e viene modificata in FLASH_MODE_OFF quando 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

  • DisplayOrientedMeteringPointFactory accetta un'istanza CameraInfo anziché CameraSelector, quindi esiste una mappatura diretta alla videocamera per cui la factory genererà i punti. Tutte le classi che utilizzano DisplayOrientedMeteringPointFactory accettano anche un'istanza CameraInfo anziché 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_START e FIT_END con FIT. 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 ConcurrentModificationException durante 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#startFocusAndMetering non andrà a buon fine se nessuno dei MeteringPoint specificati può generare rettangoli di misurazione validi. (Id53ce)

Camera-Core versione 1.0.0-beta06

24 giugno 2020

androidx.camera:camera-core:1.0.0-beta06 è 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 chiamare ProcessCameraProvider#getInstance(). In questo modo è possibile personalizzare CameraXConfig senza dover implementare CameraXConfig.Provider nella classe Application dell'app. (Ia1a8d)
  • CameraControl#startFocusAndMetering non andrà a buon fine se nessuno dei MeteringPoint specificati può generare rettangoli di misurazione validi. (Id53ce)

Camera-Camera2 versione 1.0.0-beta05

10 giugno 2020

androidx.camera:camera-camera2:1.0.0-beta05 è 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 InitializationException contiene un CameraUnavailableException che verrà impostato su ListenableFuture del risultato dell'inizializzazione anziché causare l'arresto anomalo dell'applicazione. (I9909a, b/149413835)
  • Risolto l'arresto anomalo durante la chiamata di startFocusAndMetering su dispositivi in cui CONTROL_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 InitializationException contiene un CameraUnavailableException che verrà impostato su ListenableFuture del risultato dell'inizializzazione anziché causare l'arresto anomalo dell'applicazione. (I9909a, b/149413835)

Correzioni di bug

  • Aggiornamento dei javadoc di setTargetResolution e setTargetRotation. (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 Camera2Interop senza causare un arresto anomalo. Tieni presente che se si verificano problemi a causa dell'override dei parametri, La stabilità e il comportamento non sono garantiti quando si 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 ImageProxy da ImageCapture non 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 a CameraXConfig.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 ImageAnalysis in cui si accede a ImageProxy dopo la chiusura di ImageReaderProxy. In questo modo, tutte le ImageProxy ricevute da Analyzer devono essere chiuse prima che venga chiusa ImageReaderProxy. (I4b299, b/145956416, b/154155377, b/156357269)
  • Rimosso il parametro CameraInfo da PreviewView#createSurfaceProvider(), PreviewView ora lo recupera internamente da SurfaceRequest. (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 ImageAnalysis per 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 ImageProxy da ImageCapture non veniva riavvolto (I0c455, b/153249512)
  • Risolto il problema per cui la prima videocamera nell'elenco dei dispositivi supportati da CameraManager non veniva sempre selezionata per l'utilizzo. (I4c624, b/153418028)
  • Risolto un arresto anomalo intermittente causato dall'impostazione Preview.SurfaceProvider che 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 zero UseCase generava un'eccezione. In questo modo, è stato impedito il recupero di un Camera senza l'associazione di un UseCase.

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() del ImageProxy prodotto da ImageCapture in modo che corrisponda al valore di rotazione dell'orientamento EXIF. (Id4281, b/150802561)
  • L'ordinamento esplicito delle dipendenze di CameraX all'interno di build.gradle non è più necessario per utilizzare l'implementazione predefinita di CameraX/Camera2. 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 IllegalArgumentException che si verificava sui dispositivi con dimensioni del display inferiori a 640 x 480. (Ife3f2, b/150506192)
  • Risolto il problema di bindToLifecycle in modo che modifichi UseCase solo se l'associazione va a buon fine. In precedenza, quando veniva chiamato bindToLifecycle per 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() del ImageProxy prodotto da ImageCapture in modo che corrisponda al valore di rotazione dell'orientamento EXIF. (Id4281, b/150802561)
  • È stato corretto bindToLifecycle in modo che modifichi UseCase solo se l'associazione va a buon fine. In precedenza, quando veniva chiamato bindToLifecycle per 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 Preview non veniva aggiornata quando la superficie di anteprima cambiava dopo aver chiamato Preview.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 in SurfaceRequest.provideSurface(Surface) e SurfaceRequest.setWillNotComplete() in SurfaceRequest.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 CameraXConfig predefinito. (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 ListenableFuture su SurfaceRequest.provideSurface() con Executor e Callback. In questo modo l'API viene semplificata, in quanto non è più necessario gestire le eccezioni su provideSurface() e viene applicato il principio per cui il callback provideSurface() non può essere annullato. In questo modo si evitano arresti anomali sui dispositivi meno recenti causati dal rilascio prematuro delle piattaforme. L'oggetto SurfaceRequest.Result viene ora utilizzato per monitorare il modo in cui un SurfaceRequest utilizza l'oggetto Surface fornito. (I7854b)
  • SurfaceRequest.setSurface(Surface) è stato rinominato in SurfaceRequest.provideSurface(Surface) e SurfaceRequest.setWillNotComplete() in SurfaceRequest.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 CameraXConfig predefinito. (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_LEGACY garantendo che i Surface vengano 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 su Uri e OutputStream. Metodi takePicture sovraccarichi combinati in uno. Aggiornata l'app di test per utilizzare Uri come esempio canonico. (Ia3bec)
  • Preview.PreviewSurfaceProvider è stato rinominato in Preview.SurfaceProvider. Gli SurfaceProvider non richiedono più agli sviluppatori di creare i propri ListenableFuture e la fornitura di un Surface ora avviene tramite un nuovo oggetto SurfaceRequest. Il metodo Preview.getPreviewSurfaceProvider() è stato rimosso a causa del potenziale uso improprio quando Preview è associato ad altre classi come PreviewView. (I20105)
  • getTargetRotation() e getTargetName() aggiunti a Preview. (Iceee7)
  • Aggiunti getTargetRotation(), getBackpressureStrategy() e getImageQueueDepth() in ImageAnalysis. (I9d6d9)
  • Aggiunti getTargetRotation() e getCaptureMode() in ImageCapture() (I5bc17)
  • Gli argomenti precedentemente passati in ImageCapture.OnImageSavedCallback.onError() e ImageCapture.OnImageCapturedCallback.onError() sono stati sostituiti da un singolo argomento ImageCaptureException, che contiene ancora tutte le informazioni precedentemente passate.
  • L'argomento file precedentemente passato in ImageCapture.OnImageSavedCallback.onImageSaved() è stato rimosso. (I750d2)
  • Preview e ImageCapture classi sono ora contrassegnate come finali. (I2500b)
  • API aggiornata, con i metodi getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() e getLinearZoom() di CameraInfo uniti in getZoomState(), che restituisce un'istanza ZoomState. (Ib19fe)
  • Campi API OPTION_TARGET_CLASS e OPTION_TARGET_NAME rimossi da CameraXConfig, in quanto destinati esclusivamente all'uso interno della libreria. Costruttore rimosso per CameraXConfig.Builder. (I96912)
  • È stato rimosso il requisito che richiedeva che l'app estendesse Application per inizializzare CameraX. CameraX verrà ora inizializzato con una configurazione Camera2 predefinita, a condizione che l'artefatto camera-camera2 sia incluso nel file build.gradle dell'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 CameraInfo utilizzando Camera2CameraInfo.extractCameraId(). Il seguente esempio di codice mostra come utilizzarlo:

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

    La classe Camera2CameraInfo richiede la classe markerClass ExperimentalCamera2Interop.

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 SurfaceOrientedMeteringPointFactory useCaseForSurface è stato rinominato in useCaseForAspectRatio e la documentazione di riferimento è stata ampliata.
  • I metodi FocusMeteringAction.Builder.from() vengono sostituiti dai costruttori FocusMeteringAction.Builder().
  • DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float) rimosso. Le applicazioni devono utilizzare il costruttore che accetta un parametro Display e passa il display corrente.
  • Miglioramenti di Javadoc per le API di messa a fuoco e misurazione relative a MeteringMode e flag 3A e utilizzo del parametro Display.
  • È stata ampliata la documentazione di riferimento per setZoomRatio e setLinearZoom.

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 ConcurrentModificationException che 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 startFocusMetering e cancelFocusMetering ora 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 PreviewView o CameraView potrebbero 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 FocusMeteringAction e CameraControl.
  • Implementato TorchControl per enableTorch() e getTorchState().

Modifiche alle API

  • IntDef nascosti e costanti IntDef spostate all'esterno della definizione IntDef.
  • rotationDegrees spostato dalla classe OnImageCaptureCallback alla classe ImageInfo.
  • rotationDegrees spostato dalla classe Analyzer alla classe ImageInfo.

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.Provider e utilizzare l'oggetto Camera2Config predefinito fornito da androidx.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() e hasCamera() forniti in precedenza dalla chiamata della classe CameraX sono ora disponibili tramite ProcessCameraProvider.

  • Un'istanza per processo di ProcessCameraProvider viene ottenuta in modo asincrono utilizzando il metodo statico ProcessCameraProvider.getInstance(), che restituisce un futuro ascoltabile, che fornisce ProcessCameraProvider al completamento. Qui è mostrato in onCreate() per un utilizzo tipico. Puoi effettuare chiamate a getInstance() 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 ListenableFuture restituito da getInstance(). In questo modo, il provider della fotocamera può essere recuperato da Future senza bloccare Future.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.bindToLifecycle riceve 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 PreviewView fornita 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 ImageAnalysis deve chiamare image.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 backpressure intdef.

  • ImageProxy.getImage() è contrassegnato come sperimentale. Le applicazioni devono annotare l'utilizzo, ad esempio tramite @androidx.camera.core.ExperimentalGetImage

  • Il requisito di annotazione UIThread per Analyzer è 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.OnImageCapturedListener ora è ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener ora è ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener ora è 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.Metadata vengono sostituiti dagli accessori get/set/is.

  • startFocusMetering e cancelFocusMetering ora restituiscono ListenableFutures, che rappresenta l'operazione asincrona della chiamata.

  • MeteringPoints ora 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'oggetto ListenableFuture<Void> restituito è sempre un oggetto complete(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 a CaptureSession) e TorchState rimane disattivato.
  • Problema noto: startFocusAndMetering e cancelFocusAndMetering avviano e annullano la misurazione della messa a fuoco, ma restituiscono un futuro completed (success) immediato che non rappresenta il comportamento documentato. Il campo FocusMeteringResult di ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() è un risultato fittizio che isFocusSuccessful() 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 per PreviewView.

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 opzioni RATIO_4_3 o RATIO_16_9 anziché 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 in setTargetAspectRatioCustom(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.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

CameraInfo aggiunta con le API di controllo della disponibilità del flash e della rotazione del sensore

  • Sono stati aggiunti CameraInfo e un metodo getCameraInfo, 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() o setTargetAspectRatio(). 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).
  • 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.onError all'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 in ImageCapture.ImageCaptureError
    • VideoCapture.UseCaseError è stato rinominato in VideoCapture.VideoCaptureError
  • Aggiunta l'API CameraControl con le API Tocca per mettere a fuoco

    • È stata aggiunta l'API per ottenere un CameraControl da CameraX per una fotocamera, selezionata in base alla direzione dell'obiettivo:

      CameraX.getCameraControl(LensFacing lensFacing)

    • Sono stati aggiunti MeteringPointFactory, MeteringPoint, MeteringMode e FocusMeteringAction per eseguire la funzionalità Tocca per mettere a fuoco:

      MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height);
      MeteringPoint point = factory.createPoint(x, y);
      FocusMeteringAction action = FocusMeteringAction.Builder.from(point,
                                       MeteringMode.AF_ONLY)
          .addPoint(point2, MeteringMode.AE_ONLY) // could have many
          .setAutoFocusCallback(new OnAutoFocusListener(){
              public void onFocusCompleted(boolean isSuccess) {
              }
          })
          // auto calling cancelFocusAndMetering in 5 sec.
          .setAutoCancelDuration(5, TimeUnit.Second)
          .build();
      
    • È stata aggiunta l'API per CameraControl per avviare e annullare la misurazione della messa a fuoco:

      getCameraControl(lensFacing).startFocusAndMetering(action); getCameraControl(lensFacing).cancelFocusAndMetering();

    • Sono state aggiunte API per 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 IllegalStateException se 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 setTargetAspectRatio o setTargetResolution)
  • Una versione "Nearest mod16" della risoluzione è considerata con le stesse proporzioni.

Modalità non di blocco di ImageAnalysis

  • Il comportamento di ImageReaderMode.ACQUIRE_LATEST_IMAGE ora non è bloccante. Acquisisce l'immagine più recente nella coda, ma elimina continuamente le immagini inutilizzate per evitare 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 setLensFacing non veniva chiamato per un caso d'uso, con conseguente java.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_0 se 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

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 InitializationException contiene un CameraUnavailableException che verrà impostato su ListenableFuture del 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 zero UseCase generava un'eccezione. In questo modo, è stato impedito il recupero di un Camera senza l'associazione di un UseCase.
  • 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 ProcessCameraProvider durante l'inizializzazione, viene utilizzata una configurazione predefinita e che l'estensione di Application è 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-beta02 e camera-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 @MainThread ai 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 LifeCycleCameraProvider e un'implementazione chiamata ProcessCameraProvider che fornisce molte delle funzioni della classe CameraX precedente in core e viene ottenuta tramite un metodo getInstance().
  • 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 solo ImageCapture e Preview. VideoCapture non può ancora essere supportato. Se l'app associa VideoCapture e attiva una modalità di estensione, verrà generato un IllegalArgumentException. (I0d87b)
  • CameraSelector#filter non genera più un IllegalArgumentException quando il set di risultati è vuoto. (I27804)
  • L'API ExtensionsManager#getInstance è stata rinominata in getInstanceAsync perché restituisce ListenableFuture. 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'uso ImageCapture e 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 CameraProvider delle funzioni ExtensionsManager nell'API getInstance(). In questo modo, gli utenti non devono inserire il parametro CameraProvider ogni volta che chiamano le funzioni ExtensionsManager. (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 invece RotationProvider#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>Extender deprecate, 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#getTransform rinominato in CoordinateTransform#transform e aggiornamento di JavaDoc (I864ae)

Correzioni di bug

  • È stato risolto il problema di allungamento della modalità PreviewView PERFORMANCE quando 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>Extender e 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 da CameraController. Per informazioni su come eseguire la migrazione, consulta la guida alla migrazione: (Id5005)

Correzioni di bug

  • ExperimentalUseCaseGroupLifecycle sostituita con ExperimentalUseCaseGroup. (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 @RequiresOptIn per le API sperimentali. Per chiamare le API sperimentali, utilizza androidx.annotation.OptIn anziché l'API androidx.annotation.experimental.UseExperimental deprecata. (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

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 @UseExperimental con ExperimentalVideo come markerClass. (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_0 se 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

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

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 ExtensionsManager per ottenere un oggetto Extensions utilizzato 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() e PreviewView#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 con Preview#setTargetRotation() e il nuovo PreviewView#getViewPort(targetRotation) aggiunto. (Ib62cc)
  • createSurfaceProvider() rinominato in getSurfaceProvider(). 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

  • DisplayOrientedMeteringPointFactory accetta un'istanza CameraInfo anziché CameraSelector, quindi esiste una mappatura diretta alla videocamera per cui la factory genererà i punti. Tutte le classi che utilizzano DisplayOrientedMeteringPointFactory accettano anche un'istanza CameraInfo anziché CameraSelector. (I400c1)
  • Contatto rimosso: TextureViewMeteringPointFactory. PreviewView fornisce un'API pubblica (createMeteringPointFactory()) per creare una factory di punti di misurazione indipendentemente dal fatto che utilizzi un TextureView o un SurfaceView. (Ide693)
  • Rinomina le modalità di implementazione SURFACE_VIEW/TEXTURE_VIEW di PreviewView in PERFORMANCE/COMPATIBLE. PERFORMANCE è la vecchia modalità SURFACE_VIEW e COMPATIBLE è 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 InitializationException contiene un CameraUnavailableException che verrà impostato su ListenableFuture del 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#getPreviewStreamState che consente alle app di osservare se l'anteprima è in streaming o meno. Quando PreviewView è in modalità TEXTURE_VIEW, lo stato STREAMING garantisce anche che l'immagine di anteprima sia visibile. (Ic0906, b/154652477)
  • È stata aggiunta l'API PreviewView#setDeviceRotationForRemoteDisplayMode() per fornire la rotazione del dispositivo per i calcoli di trasformazione se l'applicazione è in esecuzione in modalità di visualizzazione remota. (I59b95, b/153514525)

Correzioni di bug

  • Risolto il problema di distorsione dell'anteprima sulle videocamere FULL/LIMITED/LEVEL_3 con Android 7.0 e versioni precedenti. Utilizzo forzato della modalità ImplementationMode#TEXTURE_VIEW quando la versione di Android è 7.0 o precedente. (I83e30, b/155085307)
  • Rimosso il parametro CameraInfo da PreviewView#createSurfaceProvider(), PreviewView ora lo recupera internamente da SurfaceRequest. (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 PreviewView quando si usciva dal frammento Preview e poi si rientrava in ViewPager2. È stato risolto anche il problema relativo a removeView(previewview) e poi addView(previewView). (Iab555, b/149877652, b/147354615)
  • Aggiorna l'API CameraView#takePicture() per consentire il salvataggio delle immagini su Uri e OutputStream. Aggiorna l'app di test in modo che utilizzi Uri come esempio canonico. (Ia2459, b/153607583)
  • Puoi impostare il tipo di scala di PreviewView da un layout XML impostando l'attributo ScaleType. (I08565, b/153015659)
  • La risorsa CameraView.ScaleType è stata rimossa. Utilizza invece PreviewView.ScaleType per impostare/ottenere un tipo di scala con CameraView. (Ia8974, b/153014831)
  • Assegna un colore di sfondo predefinito a PreviewView se 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 PreviewView non 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-beta02 e camera-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_VIEW con PreviewView potrebbe non funzionare correttamente su alcuni dispositivi, perché SurfaceView utilizzato 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 di SurfaceView sia nuovamente valida. Per il momento, devi utilizzare ImplementationMode.TEXTURE_VIEW.

Modifiche alle API

  • PreviewView.setImplementationMode() rinominato in PreviewView.setPreferredImplementationMode().
  • PreviewView.getImplementationMode() rinominato in PreviewView.getPreferredImplementationMode().
  • PreviewView.getSurfaceProvider() è stato sostituito da PreviewView.createSurfaceProvider(CameraInfo), che accetta un'istanza CameraInfo nullable utilizzata per ottimizzare l'anteprima utilizzando ImplementationMode.SURFACE_VIEW quando possibile. Se viene passata un'istanza null o se imposti la modalità di implementazione preferita su ImplementationMode.TEXTURE_VIEW, ImplementationMode.TEXTURE_VIEW viene 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 a PreviewView.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 in PreviewView.ScaleType e il valore predefinito è PreviewView.ScaleType.FILL_CENTER.

  • PreviewView.getScaleType() aggiunti.

  • È stato rimosso il supporto per l'impostazione della modalità di implementazione per PreviewView in un layout XML utilizzando l'attributo implementationMode.

  • Aggiungi l'API createMeteringPointFactory() a PreviewView per supportare la conversione di (x, y) in PreviewView in MeteringPoint. (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 ListenableFuture su SurfaceRequest.provideSurface() con Executor e Callback. In questo modo l'API viene semplificata, in quanto non è più necessario gestire le eccezioni su provideSurface() e viene applicato il principio per cui il callback provideSurface() non può essere annullato. In questo modo si evitano arresti anomali sui dispositivi meno recenti causati dal rilascio prematuro delle piattaforme. L'oggetto SurfaceRequest.Result viene ora utilizzato per monitorare il modo in cui un SurfaceRequest utilizza l'oggetto Surface fornito. (I7854b)
  • SurfaceRequest.setSurface(Surface) è stato rinominato in SurfaceRequest.provideSurface(Surface) e SurfaceRequest.setWillNotComplete() in SurfaceRequest.willNotProvideSurface(). (I224fe)
  • È stata corretta l'inizializzazione delle varianti dell'app con ProGuard abilitato conservando il flag che imposta il provider CameraXConfig predefinito. (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() e ImageCapture.OnImageCapturedCallback.onError() sono stati sostituiti da un singolo argomento ImageCaptureException, 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 TextureView di PreviewView ora imposta le dimensioni di TextureView sulle dimensioni di output del sensore della fotocamera prima di scalarle per riempire l'elemento principale PreviewView. Se vuoi che l'anteprima della fotocamera riempia un'intera parte della UI (ad esempio l'intero schermo), non devi impostare le dimensioni di PreviewView su 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 di PreviewView (se le dimensioni dell'output del sensore della fotocamera sono inferiori). Devi invece impostare PreviewView in 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 su Uri e OutputStream. Metodi takePicture sovraccarichi combinati in uno. Aggiornata l'app di test per utilizzare Uri come esempio canonico. (Ia3bec)
  • Preview.PreviewSurfaceProvider è stato rinominato in Preview.SurfaceProvider. Le SurfaceProvider non richiedono più agli sviluppatori di creare i propri ListenableFuture e la fornitura di un Surface viene ora eseguita tramite un nuovo oggetto SurfaceRequest. Il metodo Preview.getPreviewSurfaceProvider() è stato rimosso a causa del potenziale uso improprio quando Preview è associato ad altre classi come PreviewView. (I20105)
  • Gli argomenti precedentemente passati in ImageCapture.OnImageSavedCallback.onError() e ImageCapture.OnImageCapturedCallback.onError() sono stati sostituiti da un singolo argomento ImageCaptureException, 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() e getLinearZoom() di CameraInfo che si uniscono in getZoomState(), che restituisce un'istanza ZoomState. (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.TextureViewImplementation che 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 CameraSelector come parametro di input. Deve essere lo stesso CameraSelector utilizzato per l'associazione del caso d'uso.

    val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
    val builder = ImageCapture.Builder()
    val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder)
    if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) {
        bokehImageCaptureExtender.enableExtension(cameraSelector)
    }
    val imageCapture = builder.build()
    mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
    
  • Devi inizializzare le estensioni prima di utilizzare la libreria delle estensioni.

    val availability = ExtensionsManager.init()
    Futures.addCallback<ExtensionsManager.ExtensionsAvailability>(
       availability,
       object : FutureCallback<ExtensionsManager.ExtensionsAvailability> {
           override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) {
               // Ready to make extensions calls
           }
           override fun onFailure(throwable: Throwable) {
               // Extensions could not be initialized
           }
       },
       Executors.newSingleThreadExecutor()
    )
    

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 PreviewView per 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"
      … />
    
  • PreviewView fornisce un PreviewSurfaceProvider per connettere facilmente un caso d'uso di Preview

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • "ZoomLevel" è ora "ZoomRatio" nella denominazione delle API

  • La 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 PreviewImageProcessorImpl abbia implementato correttamente i timestamp.
  • Correggi l'errore del test ExtensionTest su 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.