يقدّم Android 15 ميزة تعزيز الإضاءة المنخفضة، وهو وضع جديد للتعرض التلقائي للضوء. كل من الكاميرا 2 وإضافة كاميرا الوضع الليلي. تعزيز الإضاءة المنخفضة يضبط تلقائيًا سطوع بث المعاينة في الإضاءة المنخفضة الظروف. ويختلف ذلك عن الطريقة التي تنشئ بها إضافة الكاميرا في "الوضع الليلي" الصور الثابتة، لأن الوضع الليلي يدمج مجموعة من الصور لإنشاء صورة واحدة صورة محسّنة في حين أن الوضع الليلي يعمل بشكل جيد جدًا لإنشاء صورة ثابتة، لا يمكنها إنشاء بث مستمر من الإطارات، ولكن يمكن لميزة "تحسين الإضاءة المنخفضة" إجراء ذلك. وبالتالي، تتيح ميزة "تحسين الإضاءة المنخفضة" إمكانات جديدة للكاميرا، مثل ما يلي:
- توفير معاينة محسّنة للصور، حتى يتمكن المستخدمون من تأطير الصور ذات الإضاءة المنخفضة.
- جارٍ مسح رموز الاستجابة السريعة ضوئيًا في الإضاءة المنخفضة.
في حال تفعيل ميزة "تحسين الإضاءة المنخفضة"، سيتم تشغيلها تلقائيًا عند انخفاض درجة الحرارة. ويتوقف مستوى الإضاءة عند وجود المزيد من الإضاءة.
يمكن للتطبيقات تسجيل إيقاف بث المعاينة في ظروف الإضاءة المنخفضة لحفظ زيادة السطوع.
يمكنك استخدام ميزة "تحسين الإضاءة المنخفضة" إما في الكاميرا2 أو من خلال إضافات الكاميرا. يتناول هذا المستند كيفية استخدام ميزة "تحسين الإضاءة المنخفضة" مع الكاميرا2. يمكنك أيضًا استخدام "تعزيز الإضاءة المنخفضة" مع إضافة كاميرا "الوضع الليلي" إذا كانت هذه الميزة متوافقة مع الخاص بك.
التحقّق من توفّر غرف
قبل استخدام ميزة "تحسين الإضاءة المنخفضة"، تأكَّد من أنّها متوافقة مع الجهاز. إذا كان
"تعزيز الإضاءة المنخفضة" هو أحد أوضاع التعرض المدرجة في
camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES
(إضاءة منخفضة
إن ميزة "تعزيز" هي الإعداد الخاص بالإضاءة التلقائية، بما أنّ الإعدادات الأخرى للتعريض التلقائي للضوء
غير متوافقة مع درجة سطوع المعاينة التي يتم إجراؤها من خلال ميزة "تحسين الإضاءة المنخفضة").
لمعرفة ما إذا كانت ميزة "تحسين الإضاءة المنخفضة" متاحة، يُرجى الاتصال
CameraCharacteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES)
وتأكَّد ممّا إذا كانت الأوضاع المعروضة تتضمّن ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
:
Kotlin
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 (next section) } else { // Proceed without Low Light Boost }
Java
CameraCharacteristics characteristics = mCameraManager.getCameraCharacteristics(cameraId); int[] autoExposureModes = characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES); boolean lowLightBoostSupported = autoExposureModes.contains( CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY); if (lowLightBoostSupported) { // Enable Low Light Boost (next section) } else { // Proceed without Low Light Boost }
تفعيل ميزة "تحسين الإضاءة المنخفضة"
لتفعيل ميزة "تحسين الإضاءة المنخفضة" في جلسة Camera2، عليك ضبط
CaptureRequest.CONTROL_AE_MODE
إلى
ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
بعد القيام بذلك، ستحتاج إلى
التأكّد من أنّ ميزة "تحسين الإضاءة المنخفضة" مفعَّلة فيمكنك القيام بذلك عن طريق التحقق من
CaptureResult.CONTROL_AE_MODE
. تحتاج إلى التحقّق لأنّ الإضاءة منخفضة
لا يتوافق تطبيق Boost مع بعض إعدادات الكاميرا. على سبيل المثال، تسمح نماذج المواقع الإلكترونية
لا يوفّر التسجيل ميزة "تعزيز الإضاءة المنخفضة"، وذلك بسبب اعتبارات عدد اللقطات في الثانية. في حال حذف
ميزة "تحسين الإضاءة المنخفضة" غير مفعّلة، وقد تحتاج إلى تغيير الكاميرا.
وإعادة المحاولة.
Kotlin
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 set successfully result.get(CaptureResult.CONTROL_AE_MODE) == CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY } }, cameraHandler )
Java
CaptureRequest.Builder captureRequestBuilder = mCamera.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 mSession.setRepeatingRequest( captureRequestBuilder.build(), new CaptureCallback() { @Override public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) { // verify Low Light Boost AE mode set successfully result.get(CaptureResult.CONTROL_AE_MODE) == CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY; } }, mCameraHandler );
مراقبة تعزيز الإضاءة المنخفضة
تؤدي ميزة "تعزيز الإضاءة المنخفضة" إلى زيادة سطوع بث المعاينة في ظروف الإضاءة المنخفضة.
ليس له أي تأثير إذا كانت البيئة ساطعة بالفعل بدرجة كافية
الحصول عليها. يمكنك التأكّد مما إذا كانت ميزة "تحسين الإضاءة المنخفضة" مفعَّلة حاليًا من خلال التحقّق من ذلك
الحقل CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE
. في حال تشغيل
تفعيل ميزة "تحسين الإضاءة المنخفضة" وأنّه عندما يكون مفعَّلاً حاليًا، وتم ضبط الحقل على
CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE
قد تظهر بعد ذلك
رمز القمر أو أي مؤشر آخر على زيادة سطوع المعاينة.
Kotlin
session.setRepeatingRequest( captureRequestBuilder.build(), object : CaptureCallback() { @Override fun onCaptureCompleted(session: CameraCaptureSession, request: CaptureRequest, result: TotalCaptureResult) { // check if Low Light Boost is active or inactive if (result.get(CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE) == CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE) { // Low Light Boost state is active // Show Moon Icon } else { // Low Light Boost state is inactive or AE mode is not set // to Low Light Boost // Hide Moon Icon } } }, cameraHandler )
Java
mSession.setRepeatingRequest( captureRequestBuilder.build(), new CaptureCallback() { @Override public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) { // check if Low Light Boost is active or inactive if (result.get(CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE) == CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE) { // Low Light Boost state is active // Show Moon Icon } else { // Low Light Boost state is inactive or AE mode is not set // to Low Light Boost // Hide Moon Icon } } }, mCameraHandler );