Google Low Light Boost ব্যবহার করতে, আপনার Low Light Boost ক্লায়েন্ট প্রয়োজন হবে।
আপনি ক্লায়েন্ট ব্যবহার করে
চেক করতে পারবেন যে কম আলোয় বুস্ট করার মডিউল ইনস্টল করা আছে কিনা এবং আপনার অ্যাপ যে ডিভাইস ও ক্যামেরায়
রান করছে, সেখানে Google Low Light Boost কাজ করে কিনা। এছাড়াও, আপনি ক্লায়েন্ট ব্যবহার করে LowLightBoostSession তৈরি করবেন।
(কম আলোতে বুস্ট চালু ও বন্ধ করতে আপনি সেশন ব্যবহার করবেন।) এছাড়াও,
কম আলোয় বুস্ট অ্যাক্টিভ থাকলে কলব্যাক পাওয়ার জন্য আপনি লিসেনার সেট-আপ করতে পারবেন।
LowLightBoostClient পদ্ধতি সরাসরি সাফল্য বা ব্যর্থতার সিগন্যাল দেয় না। পরিবর্তে,
তারা একটি Task অবজেক্ট রিটার্ন করে। আপনি Task ব্যবহার করে সাফল্য ও ব্যর্থতা
লিসনার সেট-আপ করেন। এটি পদ্ধতিগুলিকে অ্যাসিঙ্ক্রোনাসভাবে সাফল্য বা ব্যর্থতার সংকেত দিতে দেয়, যা
প্রয়োজন কারণ পদ্ধতিগুলিকে Google Play পরিষেবার সাথে যোগাযোগ করতে হবে।
ডিপেন্ডেন্সি
Kotlin
dependencies {
val low_light_boost_version = "16.0.1-beta04"
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.10.2")
implementation("com.google.android.gms:play-services-base:18.7.0")
implementation("com.google.android.gms:play-services-camera-low-light-boost:${low_light_boost_version}")
implementation("com.google.android.gms:play-services-tasks:18.3.0")
}
গ্ৰুভি
dependencies {
def low_light_boost_version = "16.0.1-beta04"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.10.2'
implementation 'com.google.android.gms:play-services-base:18.7.0'
implementation 'com.google.android.gms:play-services-camera-low-light-boost:${low_light_boost_version}'
implementation 'com.google.android.gms:play-services-tasks:18.3.0'
}
LowLightBoostClient, Google Play পরিষেবা
com.google.android.gms.cameralowlight প্যাকেজের মাধ্যমে প্রদান করা হয়। Google Play পরিষেবা
API অ্যাক্সেস করা সংক্রান্ত তথ্যের জন্য Google Play পরিষেবা ডকুমেন্টেশন দেখুন।
ক্লায়েন্ট তৈরি করুন
অন্য কিছু করতে হলে আপনার লো লাইট বুস্ট ক্লায়েন্ট প্রয়োজন। নিম্নলিখিত কোড একটি ক্লায়েন্ট তৈরি করে:
Kotlin
val lowLightBoostClient = LowLightBoost.getClient(context)
জাভা
LowLightBoostClient lowLightBoostClient = LowLightBoost.getClient(context);
এই কোড সম্পর্কে গুরুত্বপূর্ণ পয়েন্ট
LowLightBoostক্লাসটি স্ট্যাটিক পদ্ধতিgetClientপ্রদান করে, যাLowLightBoostClient-এর একটি ইনস্ট্যান্স রিটার্ন করে।
'লো লাইট বুস্ট' কাজ করে কিনা তা চেক করুন
ক্লায়েন্ট পাওয়ার পরে, যে ডিভাইসে অ্যাপ চলছে সেটি কম আলোয় বুস্ট করার সুবিধা সাপোর্ট করে কিনা তা চেক করতে পারবেন। নিম্নলিখিত কোড চেক করে যে লো লাইট বুস্ট কাজ করে কিনা:
Kotlin
launch {
try {
// Await the result of the Task in a non-blocking way
val isSupported: Boolean = lowLightBoostClient
.isCameraSupported(cameraId).await()
Log.d(TAG, "isCameraSupported: $isSupported")
if (isSupported) {
// Create the low light boost session here
}
} catch (e: Exception) {
Log.e(TAG, "isCameraSupported failed", e)
}
}
জাভা
lowLightBoostClient
.isCameraSupported(cameraId)
.addOnSuccessListener(
lowLightBoostExecutor,
(isSupported) -> {
Log.d(TAG, "isCameraSupported: " + isSupported);
if (isSupported) {
// Create the low light boost session here
}
)
এই কোড সম্পর্কে গুরুত্বপূর্ণ পয়েন্ট
cameraId-কে Camera2 ক্যামেরার আইডি হিসেবে ধরা হয়, যা অন্য কোথাও তৈরি করা হয়েছে।LowLightBoostClient.isCameraSupported()Camera2 ক্যামেরায় কম আলোয় বুস্ট করার সুবিধা আছে কিনা তা চেক করে। কিছু ক্ষেত্রে, কোনও ডিভাইসে 'কম আলোয় বুস্ট' ফিচার কাজ করলেও, তার কোনও একটি ক্যামেরায় তা কাজ নাও করতে পারে, তাই আপনাকে দুটিই চেক করে দেখতে হবে।LowLightBoostClient.isCameraSupported()পদ্ধতিটি একটিTaskঅবজেক্ট রিটার্ন করে। আপনি এই অবজেক্ট ব্যবহার করে সাফল্য ও ব্যর্থতা সংক্রান্ত লিসেনার সেট-আপ করেন। সাকসেস লিসেনারের মধ্যে লো লাইট বুস্ট সেশন তৈরি করুন।
লো লাইট বুস্ট মডিউল ইনস্টল করা আছে কিনা তা চেক করুন
আপনার কাছে ক্লায়েন্ট থাকলে, আপনার ডিভাইসে কম আলোয় বুস্ট করার মডিউল ইনস্টল করা আছে কিনা তা কনফার্ম করতে পারবেন। মডিউল ইনস্টল করা আছে কিনা তা নিম্নলিখিত কোড চেক করে:
Kotlin
// Handle the Google Play services Task API with Kotlin coroutines
// (kotlinx-coroutines-play-services)
launch {
try {
val isInstalled: Boolean = lowLightBoostClient
.isModuleInstalled(context).await()
if (isInstalled) {
Log.d(TAG, "Module is installed")
try {
openCamera(cameraId)
} catch (e: CameraAccessException) {
Log.e(TAG, "Failed to open camera", e)
}
} else {
Log.d(TAG, "Module is not installed")
launchInstallRequest()
}
} catch (e: Exception) {
Log.e(TAG, "Failed to check module availability", e)
}
}
জাভা
lowLightBoostClient
.isModuleInstalled(context)
.addOnSuccessListener(
(isInstalled) -> {
if (isInstalled) {
Log.d(TAG, "Module is installed");
try {
openCamera(cameraId);
} catch (CameraAccessException e) {
Log.e(TAG, "Failed to open camera", e);
}
} else {
Log.d(TAG, "Module is not installed");
launchInstallRequest();
}
})
.addOnFailureListener(
(e) -> {
Log.e(TAG, "Failed to check module availability", e);
});
এই কোড সম্পর্কে গুরুত্বপূর্ণ পয়েন্ট
- এই কোডটি
cameraIdদ্বারা শনাক্ত করা ক্যামেরার সাথে কানেক্ট করে একটি ক্যামেরা সেশন খোলে। আরও তথ্যের জন্য, Camera2 ডকুমেন্টেশন দেখুন। LowLightBoostClient.isModuleInstalled()পদ্ধতিটিTaskঅবজেক্ট রিটার্ন করে। আপনি এই অবজেক্ট ব্যবহার করে সাফল্য ও ব্যর্থতা সংক্রান্ত লিসেনার সেট-আপ করেন।isModuleInstalled()-এ কল সফল হলে, কল করা হয়েছে এমন লিসেনার সেট-আপ করতেTask.addOnSuccessListener()ব্যবহার করুন। গুরুত্বপূর্ণ: সাকসেস লিসেনার কল করা হলে, সেটি আপনাকে শুধু এইটুকু জানায় যে, মডিউলটি ডিভাইসে ইনস্টল করা আছে কিনা তা ক্লায়েন্ট খুঁজে পেয়েছে। আপনার লিসনারের বডিতে, আপনাকে চেক করতে হবে যে মডিউলটি আসলে ইনস্টল করা আছে কিনা।- মডিউলটি আগে থেকে ইনস্টল করা না থাকলে, এই স্নিপেটটি
launchInstallRequest()পদ্ধতি কল করে এটি ইনস্টল করে। কম আলোর বুস্ট মডিউল ইনস্টল করুন বিকল্পের স্নিপেটে এই পদ্ধতিটি উল্লেখ করা আছে।
কম আলোর বুস্ট মডিউল ইনস্টল করুন
ডিভাইসে আগে থেকে কম আলোয় বুস্ট করার মডিউল ইনস্টল করা না থাকলে, আপনাকে Google Play পরিষেবা থেকে এটি ডাউনলোড ও ইনস্টল করতে হবে। এই কোড থেকে বোঝা যায়, কীভাবে তা করতে হয়:
Kotlin
private suspend fun launchInstallRequest() {
Log.v(TAG, "Launching install request")
try {
// Check if this device can support Google LLB.
val isDeviceSupported: Boolean = lowLightBoostClient
.isDeviceSupported(context).await()
if (isDeviceSupported) {
Log.d(TAG, "Device is supported")
// Show download indicator, if needed.
try {
val isInstallSuccessful: Boolean = lowLightBoostClient
.installModule(context,
createInstallStatusCallback()
).await()
if (isInstallSuccessful) {
Log.d(TAG, "Module installed")
// Hide download indicator, if needed.
try {
openCamera()
} catch (e: CameraAccessException) {
Log.e(TAG, "Failed to open camera", e)
}
} else {
Log.d(TAG, "Module install failed")
}
} catch (e: Exception) {
Log.e(TAG, "An error occurred installing the module:", e)
}
} else {
Log.d(TAG, "Device is not supported")
}
} catch (e: Exception) {
Log.e(TAG, "An error occurred checking device support:", e)
}
}
জাভা
private void launchInstallRequest() {
Log.v(TAG, "Launching install request");
// Check if this device can support Google LLB.
lowLightBoostClient
.isDeviceSupported(context)
.addOnSuccessListener(
(isDeviceSupported) -> {
if (isDeviceSupported) {
Log.d(TAG, "Device is supported");
// Show download indicator, if needed.
lowLightBoostClient
.installModule(
this,
createInstallStatusCallback()
)
.addOnSuccessListener(
(result) -> {
if (result) {
Log.d(TAG, "Module installed");
// Hide download indicator, if needed.
try {
openCamera();
} catch (CameraAccessException e) {
Log.e(TAG, "Failed to open camera", e);
}
} else {
Log.d(TAG, "Module install failed");
}
}
);
} else {
Log.d(TAG, "Device is not supported");
}
})
.addOnFailureListener(
(e) -> {
Log.e(TAG, "Failed to check device support", e);
});
}
এই কোড সম্পর্কে গুরুত্বপূর্ণ পয়েন্ট
- আপনি যখন
LowLightBoostClient.installModule()কল করেন, তখন আপনি একটি কলব্যাক অবজেক্ট পাস করেন, যাLowLightBoostClient.InstallStatusCallbackইমপ্লিমেন্ট করে।installModule()ডাউনলোড স্ট্যাটাস দেখানোর জন্য সেই কলব্যাকে মেথড কল করে। যেমন, ডাউনলোড পজ করা থাকলে,installModule()কলব্যাক অবজেক্টেরonDownloadPause()মেথড কল করে। - এই কোড স্নিপেটে, কলব্যাক অবজেক্টটি
createInstallStatusCallback()পদ্ধতির মাধ্যমে তৈরি করা হয়। আপনাকে এই ধরনের পদ্ধতি নিজেই লিখতে হবে:
Kotlin
private fun createInstallStatusCallback(): LowLightBoostClient.InstallStatusCallback =
object : LowLightBoostClient.InstallStatusCallback() {
override fun onDownloadPending() {
Log.d(TAG, "onDownloadPending")
// Code here...
}
override fun onDownloadStart() {
Log.d(TAG, "onDownloadStart")
// Code here...
}
// other overrides here...
}
জাভা
private InstallStatusCallback createInstallStatusCallback() {
new LowLightBoostClient.InstallStatusCallback() {
@Override
public void onDownloadPending() {
Log.d(TAG, "onDownloadPending");
// Code here...
}
@Override
public void onDownloadStart() {
Log.d(TAG, "onDownloadStart");
// Code here...
}
// other overrides here...
}
LowLightBoostClient.isDeviceSupported()Android-চালিত ডিভাইস এবং অপারেটিং সিস্টেম Google Low Light Boost-কে সাপোর্ট করে কিনা তা চেক করে। যদি না হয়, তাহলে মডিউল ডাউনলোড করবেন না।LowLightBoostClient.installModule()পদ্ধতিটিTaskঅবজেক্ট রিটার্ন করে। আপনি এই অবজেক্ট ব্যবহার করে সাফল্য ও ব্যর্থতা সংক্রান্ত লিসেনার সেট-আপ করেন।ইনস্টল করা হয়ে গেলে, ক্যামেরা খুলে সাকসেস লিসেনার ইনস্টল করা হয়েছে কিনা তা যাচাই করে। স্নিপেটে, এটি
openCamera()-এ কল করার মাধ্যমে করা হয়। আপনাকে নিজে সেই পদ্ধতি লিখতে হবে।