وضع التعرّض التلقائي لميزة "تحسين الإضاءة المنخفضة"

يقدّم Android 15 وضع التعرض التلقائي للضوء (AE) لتحسين الإضاءة المنخفضة، وهو وضع جديد للتعرض التلقائي للضوء متاح لكل من Camera 2 وإضافة "الوضع الليلي" في الكاميرا. يضبط وضع التعريض التلقائي لميزة "تحسين الإضاءة المنخفضة" تلقائيًا درجة سطوع المعاينة المباشرة على الشاشة في ظروف الإضاءة المنخفضة. ويختلف ذلك عن طريقة إنشاء الصور الثابتة باستخدام إضافة الكاميرا "الوضع الليلي"، لأنّ الوضع الليلي يجمع بين سلسلة من الصور لإنشاء صورة واحدة محسّنة. على الرغم من أنّ "الوضع الليلي" يعمل بشكل جيد جدًا لإنشاء صورة ثابتة، لا يمكنه إنشاء سلسلة متواصلة من اللقطات، ولكن "وضع AE لتحسين الإضاءة المنخفضة" يمكنه ذلك. وبالتالي، يتيح وضع التعرض التلقائي للضوء "تحسين الإضاءة المنخفضة" إمكانات جديدة للكاميرا، مثل ما يلي:

  • توفير معاينة محسَّنة للصور، ما يتيح للمستخدمين ضبط عناصر الصورة بشكلٍ أفضل في الإضاءة المنخفضة
  • مسح رموز الاستجابة السريعة ضوئيًا في الإضاءة المنخفضة

إذا فعّلت وضع "التعرّض التلقائي" في ميزة "تحسين الإضاءة المنخفضة"، سيتم تفعيله تلقائيًا عندما يكون مستوى الإضاءة منخفضًا، وسيتم إيقافه عندما يكون مستوى الإضاءة أعلى.

بإمكان التطبيقات تسجيل فيديو من المعاينة المباشرة على الشاشة في ظروف الإضاءة المنخفضة لحفظه بدرجة سطوع أفضل.

يمكنك استخدام وضع التعرض التلقائي للضوء "تحسين الإضاءة المنخفضة" إما في Camera2 أو من خلال إضافات الكاميرا. يتناول هذا المستند كيفية استخدام وضع "التعرّض التلقائي للضوء" في ميزة "تحسين الإضاءة المنخفضة" مع Camera2. يمكنك أيضًا استخدام وضع التعرض التلقائي للضوء "تحسين الإضاءة المنخفضة" مع إضافة "الوضع الليلي" في الكاميرا إذا كان الجهاز يتيح ذلك.

التحقّق من مدى التوفّر

قبل استخدام وضع "التعرّض التلقائي" في ميزة "تحسين الإضاءة المنخفضة"، تأكَّد من أنّ الجهاز متوافق معها. إذا كان وضع "تحسين الإضاءة المنخفضة" متاحًا، سيكون أحد أوضاع التعرّض للضوء المدرَجة في camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES. (ميزة "تحسين الإضاءة المنخفضة" هي إعداد خاص للتعرّض التلقائي للضوء، لأنّ إعدادات التعرّض التلقائي الأخرى لا تتوافق مع ميزة زيادة سطوع المعاينة التي يوفّرها وضع التعرّض التلقائي في ميزة "تحسين الإضاءة المنخفضة").

لذلك، للتحقّق مما إذا كان وضع "التعرّض التلقائي لتعزيز الإضاءة المنخفضة" متاحًا، يمكنك استدعاء CameraCharacteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES) والتحقّق مما إذا كانت الأوضاع التي تم عرضها تتضمّن ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY:

val characteristics = cameraManager.getCameraCharacteristics(cameraId)
val autoExposureModes =
    characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES)!!
val lowLightBoostSupported = autoExposureModes.contains(
    CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
)

if (lowLightBoostSupported) {
    // Enable Low Light Boost AE Mode (next section).
} else {
    // Proceed without Low Light Boost AE Mode.
}

تفعيل وضع التعريض التلقائي في ميزة "تحسين الإضاءة المنخفضة"

لتفعيل وضع "تحسين الإضاءة المنخفضة" للتعرّض التلقائي للضوء في جلسة Camera2، اضبط CaptureRequest.CONTROL_AE_MODE على ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY. بعد ذلك، عليك التأكّد من تفعيل وضع التعريض التلقائي لـ "تحسين الإضاءة المنخفضة"، ويمكنك إجراء ذلك من خلال التحقّق من حقل CaptureResult.CONTROL_AE_MODE. عليك التحقّق من ذلك لأنّ ميزة "تحسين الإضاءة المنخفضة" غير متوافقة مع بعض إعدادات الكاميرا. على سبيل المثال، لا يتوافق التسجيل العالي السرعة مع وضع التعريض التلقائي في ميزة "تحسين الإضاءة المنخفضة" بسبب اعتبارات عدد اللقطات في الثانية. إذا لم يكن وضع التعريض التلقائي "تحسين الإضاءة المنخفضة" مفعَّلاً، قد تحتاج إلى تغيير إعدادات الكاميرا وإعادة المحاولة.

val captureRequestBuilder = camera.createCaptureRequest(
    CameraDevice.TEMPLATE_PREVIEW
)
if (isLowLightBoostAvailable(cameraId)) {
    captureRequestBuilder.set(
        CaptureRequest.CONTROL_AE_MODE,
        CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
    )
}
// other capture request params.

session.setRepeatingRequest(
    captureRequestBuilder.build(),
    object : CaptureCallback() {
        override fun onCaptureCompleted(
            session: CameraCaptureSession,
            request: CaptureRequest,
            result: TotalCaptureResult
        ) {
            // verify Low Light Boost AE Mode AE mode set successfully.
            result.get(CaptureResult.CONTROL_AE_MODE) ==
                CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
        }
    },
    cameraHandler
)

مراقبة وضع التعريض التلقائي في ميزة "تحسين الإضاءة المنخفضة"

يعمل وضع التعرض التلقائي "تحسين الإضاءة المنخفضة" على زيادة سطوع المعاينة المباشرة على الشاشة في ظروف الإضاءة المنخفضة، وليس له أي تأثير إذا كانت البيئة ساطعة بما يكفي للالتقاط العادي. يمكنك التأكّد مما إذا كان وضع "التعرّض التلقائي" في ميزة "تحسين الإضاءة المنخفضة" نشطًا حاليًا من خلال الاطّلاع على الحقل CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE. إذا فعّلت وضع "تحسين الإضاءة المنخفضة" في "التعرّض التلقائي" وكان نشطًا حاليًا، يتم ضبط الحقل على CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE. يمكنك بعد ذلك عرض رمز القمر أو أي مؤشر آخر على أنّه يتم زيادة سطوع المعاينة.

session.setRepeatingRequest(
    captureRequestBuilder.build(),
    object : CaptureCallback() {
        override fun onCaptureCompleted(
            session: CameraCaptureSession,
            request: CaptureRequest,
            result: TotalCaptureResult
        ) {
            // check if Low Light Boost AE Mode is active or inactive.
            if (result.get(CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE) ==
                CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE
            ) {
                // Low Light Boost AE Mode state is active.
                // Show Moon Icon.
            } else {
                // Low Light Boost AE Mode state is inactive or AE mode is not set
                // to Low Light Boost AE Mode.
                // Hide Moon Icon.
            }
        }
    },
    cameraHandler
)