החל מ-CameraX 1.2, התכונה 'זמן חשיפה אפס' זמינה כמצב צילום. מומלץ להפעיל את התכונה 'זמן אחזור אפס של הצמצם' כדי לצמצם משמעותית את זמן האחזור בהשוואה למצב הצילום שמוגדר כברירת מחדל, וכך לא לפספס אף תמונה.
הפעלת Zero-Shutter Lag
כדי להפעיל את התכונה 'זמן חשיפה אפס', מעבירים את CAPTURE_MODE_ZERO_SHOT_LAG
אל ImageCapture.Builder.setCaptureMode()
. אם הפעולה נכשלת, setCaptureMode()
חוזר לערך CAPTURE_MODE_MINIMIZE_LATENCY
.
מידע נוסף על מצבי הצילום זמין במדריך לצילום תמונות.
איך זה עובד
התכונה 'זמן חשיפה אפס' משתמשת במאגר טבעת שמאחסן את שלושת הפריימים האחרונים שצולמו. כשמשתמש לוחץ על לחצן הצילום, CameraX מפעיל את takePicture()
, ומאגר הטבעות מאחזר את הפריים שצולם עם חותמת הזמן הקרובה ביותר ללחיצה על הלחצן. לאחר מכן, CameraX מעבד מחדש את סשן הצילום כדי ליצור תמונה מהפריים הזה, שנשמרת בדיסק בפורמט JPEG.
דרישות מוקדמות
לפני שמפעילים את התכונה 'זמן חשיפה אפס', צריך להשתמש בisZslSupported()
כדי לקבוע אם המכשיר עומד בדרישות הבאות:
- מטרגטת ל-Android מגרסה 6.0 ואילך (רמת API 23 ואילך).
- תמיכה בעיבוד חוזר של
PRIVATE
.
במכשירים שלא עומדים בדרישות המינימליות, CameraX חוזרת ל-CAPTURE_MODE_MINIMIZE_LATENCY
.
התכונה 'זמן חשיפה אפס' זמינה רק לצילום תמונות. אי אפשר להפעיל אותו בצילום וידאו או באמצעות תוספים למצלמה.
לבסוף, מאחר שהשימוש בפלאש גורם לזמן אחזור ארוך יותר, התכונה 'זמן חשיפה אפס' לא פועלת כשהפלאש מופעל או במצב אוטומטי. מידע נוסף על הגדרת מצב הפלאש זמין במאמר setFlashMode()
.