הפחתת זמן האחזור באמצעות Zero-Shutter Lag
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
החל מ-CameraX 1.2, התכונה 'זמן חשיפה אפס' זמינה כמצב צילום.
מומלץ להפעיל את התכונה 'זמן אחזור אפס של הצמצם' כדי לצמצם משמעותית את זמן האחזור בהשוואה למצב הצילום שמוגדר כברירת מחדל, וכך לא לפספס אף תמונה.
הפעלת Zero-Shutter Lag
כדי להפעיל את התכונה 'זמן חשיפה אפס', מעבירים את CAPTURE_MODE_ZERO_SHOT_LAG
אל ImageCapture.Builder.setCaptureMode()
. אם הפעולה נכשלת, setCaptureMode()
חוזר לערך CAPTURE_MODE_MINIMIZE_LATENCY
.
מידע נוסף על מצבי הצילום זמין במדריך לצילום תמונות.
איך זה עובד
התכונה 'זמן חשיפה אפס' משתמשת במאגר טבעת שמאחסן את שלושת הפריימים האחרונים שצולמו. כשמשתמש לוחץ על לחצן הצילום, CameraX מפעיל את takePicture()
, ומאגר הטבעות מאחזר את הפריים שצולם עם חותמת הזמן הקרובה ביותר ללחיצה על הלחצן. לאחר מכן, CameraX מעבד מחדש את סשן הצילום כדי ליצור תמונה מהפריים הזה, שנשמרת בדיסק בפורמט JPEG.
דרישות מוקדמות
לפני שמפעילים את התכונה 'זמן חשיפה אפס', צריך להשתמש בisZslSupported()
כדי לקבוע אם המכשיר עומד בדרישות הבאות:
במכשירים שלא עומדים בדרישות המינימליות, CameraX חוזרת ל-CAPTURE_MODE_MINIMIZE_LATENCY
.
התכונה 'זמן חשיפה אפס' זמינה רק לצילום תמונות. אי אפשר להפעיל אותו בצילום וידאו או באמצעות תוספים למצלמה.
לבסוף, מאחר שהשימוש בפלאש גורם לזמן אחזור ארוך יותר, התכונה 'זמן חשיפה אפס' לא פועלת כשהפלאש מופעל או במצב אוטומטי. מידע נוסף על הגדרת מצב הפלאש זמין במאמר setFlashMode()
.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 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)."]]