تقليل وقت الاستجابة باستخدام ميزة "عدم تأخُّر الغالق"

اعتبارًا من الإصدار CameraX 1.2، يتوفّر وضع "عدم تأخُّر الغالق" كوضع لالتقاط الصور. فعِّل ميزة "عدم تأخُّر الغالق" (Zero-Shutter Lag) لتقليل وقت الاستجابة بشكل كبير مقارنةً بوضع الالتقاط التلقائي، حتى لا تفوتك اللقطة.

تفعيل ميزة "عدم تأخُّر الغالق"

لتفعيل ميزة "عدم تأخُّر الغالق"، انتقِل من CAPTURE_MODE_ZERO_SHOT_LAG إلى ImageCapture.Builder.setCaptureMode(). وفي حال عدم نجاح المحاولة، يتم الرجوع إلى CAPTURE_MODE_MINIMIZE_LATENCY.setCaptureMode()

لمزيد من المعلومات حول أوضاع الالتقاط، يُرجى الاطّلاع على دليل التقاط الصور.

آلية العمل

تستخدم ميزة "عدم تأخُّر الغالق" مخزنًا دائريًا لتخزين آخر ثلاث لقطات. عندما يضغط المستخدم على زر الالتقاط، تستدعي CameraX takePicture()، ويسترجع المخزن الدائري اللقطة التي تم التقاطها باستخدام الطابع الزمني الأقرب إلى وقت الضغط على الزر. بعد ذلك، تتم إعادة معالجة جلسة الالتقاط في CameraX لإنشاء صورة من هذا اللقطة، ويتم حفظها على القرص بتنسيق JPEG.

المتطلّبات الأساسية

قبل تفعيل ميزة "عدم تأخُّر الغالق"، استخدِم isZslSupported() لتحديد ما إذا كان جهازك يستوفي المتطلبات التالية:

  • يستهدف الإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث (المستوى 23 من واجهة برمجة التطبيقات والإصدارات الأحدث).
  • تتيح إعادة معالجة PRIVATE.

بالنسبة إلى الأجهزة التي لا تستوفي الحد الأدنى من المتطلبات، تعود CameraX إلى استخدام CAPTURE_MODE_MINIMIZE_LATENCY.

لا تتوفّر ميزة "عدم تأخُّر الغالق" إلا في وضع التقاط الصور. لا يمكنك تفعيله لتسجيل الفيديو أو باستخدام إضافات الكاميرا.

أخيرًا، بما أنّ استخدام الفلاش يؤدي إلى زيادة وقت الاستجابة، فإنّ ميزة "عدم تأخُّر الغالق" لا تعمل عندما يكون الفلاش مفعَّلاً أو في الوضع "تلقائي". لمزيد من المعلومات عن ضبط وضع الفلاش، يُرجى الاطّلاع على setFlashMode().