कम रोशनी वाला बूस्ट

Android 15 में लो लाइट बूस्ट को लॉन्च किया गया है. यह एक नया ऑटो-एक्सपोज़र मोड उपलब्ध है कैमरा 2 और नाइट मोड वाला कैमरा एक्सटेंशन, दोनों. कम रोशनी वाला बूस्ट कम रोशनी में प्रीव्यू स्ट्रीम की चमक को अपने आप समायोजित करता है शर्तें. यह नाइट मोड कैमरा एक्सटेंशन के बनाए जाने के तरीके से अलग है स्टिल इमेज की सुविधा देता है, क्योंकि नाइट मोड में कई फ़ोटो को जोड़कर सिंगल बनाया जाता है. बेहतर बनाई गई इमेज. स्टिल इमेज बनाने के लिए नाइट मोड बहुत अच्छे से काम करता है, लेकिन फ़्रेम की लगातार स्ट्रीम नहीं बना सकता, लेकिन कम रोशनी वाला बूस्ट कर सकता है. इसलिए, कम रोशनी वाले मोड में, कैमरे की ये नई सुविधाएं इस्तेमाल की जा सकती हैं:

  • इमेज की बेहतर झलक उपलब्ध करवाता है, ताकि उपयोगकर्ता अपनी इमेज को बेहतर तरीके से फ़्रेम कर सकें कम रोशनी में ली गई तस्वीरें.
  • कम रोशनी में क्यूआर कोड स्कैन किए जा रहे हैं.

अगर आपने कम रोशनी वाले मोड में यह सुविधा चालू की है, तो रोशनी कम होने पर यह अपने-आप चालू हो जाएगा लाइट का स्तर कम कर देता है और ज़्यादा रोशनी होने पर बंद हो जाता है.

ऐप्लिकेशन प्रीव्यू स्ट्रीम को कम रोशनी में रिकॉर्ड कर सकते हैं. इससे बढ़ा दिया गया है.

कम रोशनी में बूस्ट करने की सुविधा का इस्तेमाल, Camera2 में या इसके ज़रिए किया जा सकता है कैमरा एक्सटेंशन. इस दस्तावेज़ में Camera2 से कम रोशनी में बूस्ट करने की सुविधा इस्तेमाल करने का तरीका बताया गया है. Google आपके यूआरएल पैरामीटर को कैसे इस्तेमाल करेगा, यह तय करने के लिए नाइट मोड के कैमरा एक्सटेंशन के साथ, कम रोशनी में चालू करें. ऐसा तब ही होगा, जब यह एक्सटेंशन डिवाइस.

देखें कि होटल में कमरे उपलब्ध हैं या नहीं

कम रोशनी वाला मोड इस्तेमाल करने से पहले, देख लें कि यह डिवाइस पर काम करती है या नहीं. अगर यह है उपलब्ध है, तो कम रोशनी वाला बूस्ट, इनमें से एक एक्सपोज़र मोड है camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES. (कम रोशनी में) Boost अपनी खुद की ऑटो एक्सपोज़र सेटिंग है, क्योंकि अन्य ऑटो एक्सपोज़र की सेटिंग ये विकल्प, Low Light Boost के ज़रिए परफ़ॉर्म किए गए प्रीव्यू ब्राइटनिंग के साथ काम नहीं करते.)

इसलिए, यह देखने के लिए कि Low Light Boost की सुविधा उपलब्ध है या नहीं, 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 फ़ील्ड. आपको देखना होगा, क्योंकि कम रोशनी में बूस्ट, सभी कैमरा कॉन्फ़िगरेशन के साथ काम नहीं करता है. उदाहरण के लिए, हाई-स्पीड एफ़पीएस (फ़्रेम प्रति सेकंड) से जुड़ी समस्याओं की वजह से, रिकॉर्डिंग में कम रोशनी वाली सुविधा काम नहीं करती. अगर आपने लो लाइट बूस्ट चालू नहीं है. आपको कैमरा बदलना पड़ सकता है कॉन्फ़िगरेशन करके फिर से कोशिश करें.

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
);