Mengurangi latensi dengan Shutter Tanpa Jeda

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:

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().