Riduci la latenza con il ritardo dell'otturatore zero
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
A partire da CameraX 1.2, il ritardo dell'otturatore zero è disponibile come modalità di acquisizione.
Attiva la modalità Zero-Shutter Lag per ridurre notevolmente la latenza rispetto alla
modalità di acquisizione predefinita, in modo da non perdere mai lo scatto.
Attiva il ritardo dello scatto zero
Per attivare lo zero shutter lag, passa CAPTURE_MODE_ZERO_SHOT_LAG
a
ImageCapture.Builder.setCaptureMode()
. In caso di esito negativo,
setCaptureMode()
torna a CAPTURE_MODE_MINIMIZE_LATENCY
.
Per saperne di più sulle modalità di acquisizione, consulta la guida all'acquisizione di immagini.
Come funziona
La funzionalità Zero-Shutter Lag utilizza un buffer circolare che memorizza i tre frame di acquisizione più recenti. Quando un utente preme il pulsante di acquisizione, CameraX invoca
takePicture()
e l'anello buffer recupera il frame acquisito con il
timestamp più vicino a quello della pressione del pulsante. CameraX quindi
rielabora la sessione di acquisizione per generare un'immagine da quel fotogramma, che viene salvata sul disco in formato JPEG.
Prerequisiti
Prima di attivare la funzionalità Zero-Shutter Lag, utilizza isZslSupported()
per determinare se il tuo dispositivo soddisfa i seguenti requisiti:
Per i dispositivi che non soddisfano i requisiti minimi, CameraX ricorre a
CAPTURE_MODE_MINIMIZE_LATENCY
.
Il tempo di esposizione zero è disponibile solo per la acquisizione di immagini. Non puoi attivarla per l'acquisizione video o con le estensioni della fotocamera.
Infine, poiché l'utilizzo del flash comporta una maggiore latenza, la funzionalità Zero-Shutter Lag non funziona quando il flash è attivo o in modalità AUTO. Per ulteriori informazioni sull'impostazione della modalità flash, vedi setFlashMode()
.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Reduce latency with Zero-Shutter Lag\n\n| **Note:** Zero-Shutter Lag is an experimental feature. To leave feedback on Zero-Shutter Lag, join the [Android CameraX Discussion Group](https://groups.google.com/a/android.com/g/camerax-developers).\n\nStarting in [CameraX 1.2](/jetpack/androidx/releases/camera), Zero-Shutter Lag is available as a capture mode.\nEnable Zero-Shutter Lag to significantly reduce latency compared to the\n[default capture mode](/reference/androidx/camera/core/ImageCapture#CAPTURE_MODE_MINIMIZE_LATENCY()), so you never miss the shot.\n\nEnable Zero-Shutter Lag\n-----------------------\n\nTo enable Zero-Shutter Lag, pass [`CAPTURE_MODE_ZERO_SHOT_LAG`](/reference/androidx/camera/core/ImageCapture#CAPTURE_MODE_ZERO_SHUTTER_LAG()) to\n[`ImageCapture.Builder.setCaptureMode()`](/reference/androidx/camera/core/ImageCapture.Builder#setCaptureMode(int)). If unsuccessful,\n`setCaptureMode()` falls back to `CAPTURE_MODE_MINIMIZE_LATENCY`.\n\nFor more on capture modes, see the [Image capture guide](/media/camera/camerax/take-photo#set-capture-mode).\n\nHow it works\n------------\n\nZero-Shutter Lag uses a ring buffer that stores the three most recent capture\nframes. When a user presses the capture button, CameraX invokes\n[`takePicture()`](/reference/android/hardware/Camera#takePicture(android.hardware.Camera.ShutterCallback,%20android.hardware.Camera.PictureCallback,%20android.hardware.Camera.PictureCallback,%20android.hardware.Camera.PictureCallback)), and the ring buffer retrieves the captured frame with the\ntimestamp that is closest to that of the button press. CameraX then\n[reprocesses](/reference/android/hardware/camera2/CameraDevice#reprocessing) the capture session to generate an image from that frame, which\nsaves to disk in JPEG format.\n\nPrerequisites\n-------------\n\nBefore you enable Zero-Shutter Lag, use [`isZslSupported()`](/reference/androidx/camera/core/CameraInfo#isZslSupported()) to determine if\nyour device meets the following requirements:\n\n- Targets Android 6.0+ (API level 23 and higher).\n- Supports [`PRIVATE` reprocessing](/reference/android/hardware/camera2/CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING).\n\nFor devices that don't meet the minimum requirements, CameraX falls back to\n`CAPTURE_MODE_MINIMIZE_LATENCY`.\n\nZero-Shutter Lag is only available for [Image capture](/training/camerax/take-photo). You cannot enable it\nfor [Video capture](/training/camerax/video-capture) or with [Camera extensions](/training/camera/camera-extensions).\n\nFinally, because using flash results in greater latency, Zero-Shutter Lag does\nnot work when flash is ON or in AUTO mode. For more information about setting\nthe flash mode, see [`setFlashMode()`](/media/camera/camerax/take-photo#set-flash-mode)."]]