CameraX 1.2'den itibaren, deklanşör gecikmesi sıfır çekim modu kullanılabilir. Varsayılan çekim moduna kıyasla gecikmeyi önemli ölçüde azaltmak için sıfır deklanşör gecikmesi özelliğini etkinleştirerek fotoğraf çekme fırsatını kaçırmayın.
Sıfır Deklanşör Gecikmesi'ni etkinleştirme
Sıfır Deklanşör Gecikmesi'ni etkinleştirmek için CAPTURE_MODE_ZERO_SHOT_LAG
'i ImageCapture.Builder.setCaptureMode()
'e iletin. Başarısız olursa setCaptureMode()
, CAPTURE_MODE_MINIMIZE_LATENCY
değerine geri döner.
Kayıt modları hakkında daha fazla bilgi için Resim yakalama kılavuzuna bakın.
İşleyiş şekli
Sıfır Deklanşör Gecikmesi, en son üç yakalama çerçevesini depolayan bir halka arabelleği kullanır. Kullanıcı yakalama düğmesine bastığında CameraX, takePicture()
çağrısını yapar ve halka arabelleği, düğmeye basma zamanına en yakın zaman damgasıyla yakalanan kareyi alır. Ardından CameraX, bu kareden bir resim oluşturmak için kayıt oturumunu yeniden işler ve JPEG biçiminde diske kaydeder.
Ön koşullar
Sıfır Deklanşör Gecikmesi'ni etkinleştirmeden önce, cihazınızın aşağıdaki koşulları karşılayıp karşılamadığını belirlemek için isZslSupported()
'i kullanın:
- Android 6.0 ve sonraki sürümleri (API düzeyi 23 ve sonraki sürümler) hedefler.
PRIVATE
yeniden işlemeyi destekler.
Minimum gereksinimleri karşılamayan cihazlarda CameraX, CAPTURE_MODE_MINIMIZE_LATENCY
sürümüne geri döner.
Sıfır Deklanşör Gecikmesi yalnızca Görüntü yakalama için kullanılabilir. Video yakalama için veya Kamera uzantılarıyla etkinleştiremezsiniz.
Son olarak, flaş kullanıldığında gecikme süresi arttığından, flaş AÇIK veya OTO modundayken Sıfır Deklanşör Gecikmesi özelliği çalışmaz. Flaş modunu ayarlama hakkında daha fazla bilgi için setFlashMode()
bölümüne bakın.