Android 15 লো লাইট বুস্ট অটো এক্সপোজার (AE) মোড প্রবর্তন করেছে, একটি নতুন অটো-এক্সপোজার মোড ক্যামেরা 2 এবং নাইট মোড ক্যামেরা এক্সটেনশন উভয়ের জন্য উপলব্ধ৷ লো লাইট বুস্ট AE মোড স্বয়ংক্রিয়ভাবে কম-আলো অবস্থায় প্রিভিউ স্ট্রিমের উজ্জ্বলতা সামঞ্জস্য করে। নাইট মোড ক্যামেরা এক্সটেনশন যেভাবে স্থির চিত্র তৈরি করে তার থেকে এটি আলাদা, কারণ নাইট মোড একটি একক, উন্নত চিত্র তৈরি করতে ফটোগুলির একটি বিস্ফোরণকে একত্রিত করে। যদিও নাইট মোড একটি স্থির চিত্র তৈরি করার জন্য খুব ভাল কাজ করে, এটি একটি ক্রমাগত ফ্রেম তৈরি করতে পারে না, তবে লো লাইট বুস্ট AE মোড করতে পারে। এইভাবে, লো লাইট বুস্ট AE মোড নতুন ক্যামেরার ক্ষমতা সক্ষম করে, যেমন নিম্নলিখিত:
- একটি উন্নত ইমেজ প্রিভিউ প্রদান করা, যাতে ব্যবহারকারীরা তাদের কম-আলোতে ছবি ফ্রেম করতে পারে।
- কম আলোতে QR কোড স্ক্যান করা হচ্ছে।
আপনি যদি লো লাইট বুস্ট AE মোড সক্ষম করেন, কম আলোর স্তর থাকলে এটি স্বয়ংক্রিয়ভাবে চালু হয় এবং যখন বেশি আলো থাকে তখন বন্ধ হয়ে যায়।
অ্যাপ্লিকেশানগুলি একটি উজ্জ্বল ভিডিও সংরক্ষণ করতে কম আলোতে প্রিভিউ স্ট্রিম রেকর্ড করতে পারে৷
আপনি Camera2 বা ক্যামেরা এক্সটেনশনের মাধ্যমে লো লাইট বুস্ট AE মোড ব্যবহার করতে পারেন। এই ডকুমেন্টটি Camera2 এর সাথে লো লাইট বুস্ট AE মোড কিভাবে ব্যবহার করতে হয় তা কভার করে। আপনি নাইট মোড ক্যামেরা এক্সটেনশনের সাথে লো লাইট বুস্ট AE মোড ব্যবহার করতে পারেন যদি এটি ডিভাইস দ্বারা সমর্থিত হয়।
প্রাপ্যতা জন্য পরীক্ষা করুন
লো লাইট বুস্ট AE মোড ব্যবহার করার আগে, এটি ডিভাইসে সমর্থিত কিনা তা পরীক্ষা করুন। যদি এটি উপলব্ধ থাকে, তাহলে লো লাইট বুস্ট AE মোড হল camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES
এ তালিকাভুক্ত এক্সপোজার মোডগুলির মধ্যে একটি। (লো লাইট বুস্ট হল তার নিজস্ব অটো এক্সপোজার সেটিং, যেহেতু অন্যান্য অটো এক্সপোজার সেটিংস লো লাইট বুস্ট AE মোড দ্বারা সম্পাদিত প্রিভিউ উজ্জ্বল করার সাথে সামঞ্জস্যপূর্ণ নয়।)
তাই, লো লাইট বুস্ট 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 }
জাভা
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 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 )
জাভা
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 AE mode set successfully result.get(CaptureResult.CONTROL_AE_MODE) == CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY; } }, mCameraHandler );
কম আলো বুস্ট AE মোড মনিটর
লো লাইট বুস্ট AE মোড কম-আলোর অবস্থায় প্রিভিউ স্ট্রীমকে উজ্জ্বল করে, এবং যদি পরিবেশ ইতিমধ্যেই স্বাভাবিক ক্যাপচারের জন্য যথেষ্ট উজ্জ্বল থাকে তাহলে কোনো প্রভাব ফেলবে না। আপনি CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE
ফিল্ড চেক করে লো লাইট বুস্ট AE মোড বর্তমানে সক্রিয় কিনা তা নিশ্চিত করতে পারেন৷ আপনি যদি লো লাইট বুস্ট AE মোড চালু করে থাকেন এবং এটি বর্তমানে সক্রিয় থাকে, তাহলে ক্ষেত্রটি CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE
সেট করা আছে।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 )
জাভা
mSession.setRepeatingRequest( captureRequestBuilder.build(), new CaptureCallback() { @Override public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) { // 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 } } }, mCameraHandler );
Android 15 লো লাইট বুস্ট অটো এক্সপোজার (AE) মোড প্রবর্তন করেছে, একটি নতুন অটো-এক্সপোজার মোড ক্যামেরা 2 এবং নাইট মোড ক্যামেরা এক্সটেনশন উভয়ের জন্য উপলব্ধ৷ লো লাইট বুস্ট AE মোড স্বয়ংক্রিয়ভাবে কম-আলো অবস্থায় প্রিভিউ স্ট্রিমের উজ্জ্বলতা সামঞ্জস্য করে। নাইট মোড ক্যামেরা এক্সটেনশন যেভাবে স্থির চিত্র তৈরি করে তার থেকে এটি আলাদা, কারণ নাইট মোড একটি একক, উন্নত চিত্র তৈরি করতে ফটোগুলির একটি বিস্ফোরণকে একত্রিত করে। যদিও নাইট মোড একটি স্থির চিত্র তৈরি করার জন্য খুব ভাল কাজ করে, এটি একটি ক্রমাগত ফ্রেম তৈরি করতে পারে না, তবে লো লাইট বুস্ট AE মোড করতে পারে। এইভাবে, লো লাইট বুস্ট AE মোড নতুন ক্যামেরার ক্ষমতা সক্ষম করে, যেমন নিম্নলিখিত:
- একটি উন্নত ইমেজ প্রিভিউ প্রদান করা, যাতে ব্যবহারকারীরা তাদের কম-আলোতে ছবি ফ্রেম করতে পারে।
- কম আলোতে QR কোড স্ক্যান করা হচ্ছে।
আপনি যদি লো লাইট বুস্ট AE মোড সক্ষম করেন, কম আলোর স্তর থাকলে এটি স্বয়ংক্রিয়ভাবে চালু হয় এবং যখন বেশি আলো থাকে তখন বন্ধ হয়ে যায়।
অ্যাপ্লিকেশানগুলি একটি উজ্জ্বল ভিডিও সংরক্ষণ করতে কম আলোতে প্রিভিউ স্ট্রিম রেকর্ড করতে পারে৷
আপনি Camera2 বা ক্যামেরা এক্সটেনশনের মাধ্যমে লো লাইট বুস্ট AE মোড ব্যবহার করতে পারেন। এই ডকুমেন্টটি Camera2 এর সাথে লো লাইট বুস্ট AE মোড কিভাবে ব্যবহার করতে হয় তা কভার করে। আপনি নাইট মোড ক্যামেরা এক্সটেনশনের সাথে লো লাইট বুস্ট AE মোড ব্যবহার করতে পারেন যদি এটি ডিভাইস দ্বারা সমর্থিত হয়।
প্রাপ্যতা জন্য পরীক্ষা করুন
লো লাইট বুস্ট AE মোড ব্যবহার করার আগে, এটি ডিভাইসে সমর্থিত কিনা তা পরীক্ষা করুন। যদি এটি উপলব্ধ থাকে, তাহলে লো লাইট বুস্ট AE মোড হল camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES
এ তালিকাভুক্ত এক্সপোজার মোডগুলির মধ্যে একটি। (লো লাইট বুস্ট হল তার নিজস্ব অটো এক্সপোজার সেটিং, যেহেতু অন্যান্য অটো এক্সপোজার সেটিংস লো লাইট বুস্ট AE মোড দ্বারা সম্পাদিত প্রিভিউ উজ্জ্বল করার সাথে সামঞ্জস্যপূর্ণ নয়।)
তাই, লো লাইট বুস্ট 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 }
জাভা
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 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 )
জাভা
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 AE mode set successfully result.get(CaptureResult.CONTROL_AE_MODE) == CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY; } }, mCameraHandler );
কম আলো বুস্ট AE মোড মনিটর
লো লাইট বুস্ট AE মোড কম-আলোর অবস্থায় প্রিভিউ স্ট্রীমকে উজ্জ্বল করে, এবং যদি পরিবেশ ইতিমধ্যেই স্বাভাবিক ক্যাপচারের জন্য যথেষ্ট উজ্জ্বল থাকে তাহলে কোনো প্রভাব ফেলবে না। আপনি CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE
ফিল্ড চেক করে লো লাইট বুস্ট AE মোড বর্তমানে সক্রিয় কিনা তা নিশ্চিত করতে পারেন৷ আপনি যদি লো লাইট বুস্ট AE মোড চালু করে থাকেন এবং এটি বর্তমানে সক্রিয় থাকে, তাহলে ক্ষেত্রটি CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE
সেট করা আছে।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 )
জাভা
mSession.setRepeatingRequest( captureRequestBuilder.build(), new CaptureCallback() { @Override public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) { // 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 } } }, mCameraHandler );