Mulai CameraX 1.2, Shutter Tanpa Jeda tersedia sebagai mode pengambilan. Aktifkan Shutter Tanpa Jeda untuk mengurangi latensi secara signifikan dibandingkan dengan mode pengambilan default, sehingga Anda tidak akan melewatkan gambar.
Mengaktifkan Shutter Tanpa Jeda
Untuk mengaktifkan Shutter Tanpa Jeda, teruskan CAPTURE_MODE_ZERO_SHOT_LAG
ke
ImageCapture.Builder.setCaptureMode()
. Jika tidak berhasil,
setCaptureMode()
akan kembali ke CAPTURE_MODE_MINIMIZE_LATENCY
.
Untuk mengetahui informasi selengkapnya tentang mode pengambilan, lihat Panduan pengambilan gambar.
Cara kerjanya
Shutter Tanpa Jeda menggunakan buffering ring yang menyimpan tiga bingkai pengambilan
terbaru. Saat pengguna menekan tombol rekam, CameraX akan memanggil
takePicture()
, dan buffering ring akan mengambil bingkai yang diambil dengan
stempel waktu yang paling dekat dengan penekanan tombol tersebut. CameraX kemudian
memproses ulang sesi pengambilan untuk menghasilkan gambar dari bingkai tersebut, yang
disimpan ke disk dalam format JPEG.
Prasyarat
Sebelum mengaktifkan Shutter Tanpa Jeda, gunakan isZslSupported()
untuk menentukan apakah
perangkat Anda memenuhi persyaratan berikut:
- Menargetkan Android 6.0+ (level API 23 dan yang lebih baru).
- Mendukung pemrosesan ulang
PRIVATE
.
Untuk perangkat yang tidak memenuhi persyaratan minimum, CameraX akan dikembalikan ke
CAPTURE_MODE_MINIMIZE_LATENCY
.
Shutter Tanpa Jeda hanya tersedia untuk Pengambilan gambar. Anda tidak dapat mengaktifkannya untuk Perekaman video atau dengan Ekstensi kamera.
Terakhir, karena menggunakan flash menghasilkan latensi yang lebih besar, Shutter Tanpa Jeda
tidak berfungsi saat flash AKTIF atau dalam mode OTOMATIS. Untuk mengetahui informasi selengkapnya tentang cara menyetel
mode flash, lihat setFlashMode()
.