কম আলোয় বুস্ট অটো এক্সপোজার মোড

Android 15-এ কম আলোতে বুস্ট অটো এক্সপোজার (AE) মোড, একটি নতুন অটো-এক্সপোজার মোড যা Camera 2 এবং নাইট মোড ক্যামেরা এক্সটেনশন, দুটিতেই উপলভ্য। কম আলোতে বুস্ট AE মোড কম আলোতে প্রিভিউ স্ট্রিমের উজ্জ্বলতা অটোমেটিক অ্যাডজাস্ট করে। এটি নাইট মোড ক্যামেরা এক্সটেনশন যেভাবে স্থির ছবি তৈরি করে তার থেকে আলাদা, কারণ নাইট মোড একটি একক, উন্নত ছবি তৈরি করতে ফটোর একটি বার্স্ট একত্রিত করে। স্টিল ইমেজ তৈরি করার জন্য নাইট মোড খুব ভাল কাজ করলেও, এটি ফ্রেমের একটানা স্ট্রিম তৈরি করতে পারে না, তবে লো লাইট বুস্ট AE মোড তা করতে পারে। তাই, লো লাইট বুস্ট AE মোড নতুন ক্যামেরা ফিচার চালু করে, যেমন:

  • উন্নত ইমেজ প্রিভিউ প্রদান করা, যাতে ব্যবহারকারীরা কম আলোতে তোলা ছবি আরও ভালোভাবে ফ্রেম করতে পারেন।
  • কম আলোতে QR কোড স্ক্যান করা।

আপনি'কম আলোতে বুস্ট AE মোড' চালু করলে, আলো কম থাকলে এটি অটোমেটিক চালু হয়ে যায় এবং আলো বেশি থাকলে বন্ধ হয়ে যায়।

অ্যাপ কম আলোয় প্রিভিউ স্ট্রিম থেকে রেকর্ড করতে পারে যাতে উজ্জ্বল ভিডিও সেভ করা যায়।

আপনি Camera2-তে অথবা ক্যামেরা এক্সটেনশন-এর মাধ্যমে 'কম আলোয় বুস্ট AE' মোড ব্যবহার করতে পারবেন। Camera2-এর সাথে কীভাবে কম আলোর বুস্ট AE মোড ব্যবহার করতে হয় তা এই ডকুমেন্টে কভার করা হয়েছে। এছাড়াও, ডিভাইসে কাজ করলে, আপনি নাইট মোড ক্যামেরা এক্সটেনশনের সাথে কম আলোর বুস্ট AE মোড ব্যবহার করতে পারবেন।

উপলভ্য কিনা চেক করুন

'লো লাইট বুস্ট AE মোড' ব্যবহার করার আগে, এটি ডিভাইসে কাজ করে কিনা তা চেক করুন। এটি উপলভ্য থাকলে, camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES-এ তালিকাভুক্ত এক্সপোজার মোডগুলির মধ্যে একটি হল লো লাইট বুস্ট AE মোড। (লো লাইট বুস্টের নিজস্ব অটো এক্সপোজার সেটিং আছে, কারণ অন্যান্য অটো এক্সপোজার সেটিং লো লাইট বুস্ট AE মোডের মাধ্যমে করা প্রিভিউ ব্রাইট করার সাথে মানানসই নয়।)

তাই, Low Light Boost AE মোড উপলভ্য আছে কিনা তা চেক করতে, 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.
}

লো লাইট বুস্ট AE মোড চালু করুন

Camera2 সেশনে লো লাইট বুস্ট AE মোড চালু করতে, CaptureRequest.CONTROL_AE_MODE-কে ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY হিসেবে সেট করুন। এটি করার পরে, আপনাকে কনফার্ম করতে হবে যে 'কম আলোতে বুস্ট AE মোড' চালু করা হয়েছে; আপনি CaptureResult.CONTROL_AE_MODE ফিল্ড চেক করে এটি করতে পারবেন। আপনাকে চেক করতে হবে কারণ সব ক্যামেরা কনফিগারেশনের সাথে 'কম আলোয় বুস্ট' ফিচার কাজ করে না। যেমন, FPS-এর কারণে হাই-স্পিড রেকর্ডিংয়ে লো লাইট বুস্ট AE মোড কাজ করে না। 'কম আলোতে বুস্ট AE' মোড চালু করা না থাকলে, আপনাকে ক্যামেরা কনফিগারেশন পরিবর্তন করে আবার চেষ্টা করতে হতে পারে।

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
)

লো লাইট বুস্ট AE মোড মনিটর করুন

লো লাইট বুস্ট AE মোড কম আলোর পরিস্থিতিতে প্রিভিউ স্ট্রিমকে উজ্জ্বল করে, এবং পরিবেশ যদি ইতিমধ্যেই স্বাভাবিক ক্যাপচারের জন্য যথেষ্ট উজ্জ্বল হয় তবে এর কোনও প্রভাব পড়ে না। CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE ফিল্ড চেক করে আপনি কনফার্ম করতে পারবেন যে লো লাইট বুস্ট AE মোড বর্তমানে অ্যাক্টিভ আছে কিনা। আপনি যদি'লো লাইট বুস্ট AE মোড' চালু করে থাকেন এবং এটি বর্তমানে অ্যাক্টিভ থাকে, তাহলে ফিল্ডটি 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
)