Android NDK (C) এ ডিভাইসের ফ্ল্যাশ ইউনিট ব্যবহার করুন

একটি AR সেশনের সময় ডিভাইসের ফ্ল্যাশ ইউনিট সক্ষম করা দৃশ্যমানতা উন্নত করতে সাহায্য করতে পারে।

বর্তমান ক্যামেরা কনফিগারেশন ফ্ল্যাশ সমর্থন করে তা পরীক্ষা করুন

সমস্ত ক্যামেরা কনফিগারেশন একটি ফ্ল্যাশ ইউনিট সক্রিয় করতে সমর্থন করে না। ফ্ল্যাশ সক্ষম করার আগে বা ব্যবহারকারীদের ফ্ল্যাশ সক্ষম করার বিকল্প দেওয়ার আগে, সক্রিয় ক্যামেরা কনফিগারেশনের জন্য ফ্ল্যাশ ইউনিট উপলব্ধ রয়েছে তা নিশ্চিত করুন:

// Get the camera ID from the current session.
ArCameraConfig* ar_camera_config = NULL;
ArSession_getCameraConfig(ar_session, ar_camera_config);
char* camera_id = NULL;
ArCameraConfig_getCameraId(ar_session, ar_camera_config, &camera_id);
ArCameraConfig_destroy(ar_camera_config);

// Get the camera characteristics.
ACameraManager* camera_manager = ACameraManager_create();
CHECK(camera_manager != NULL);
ACameraMetadata* characteristics = NULL;
camera_status_t status = ACameraManager_getCameraCharacteristics(camera_manager, camera_id, &characteristics);
ArString_release(camera_id);
CHECK(status == ACAMERA_OK);
CHECK(characteristics != NULL);

// Check if flash is supported.
ACameraMetadata_const_entry entry;
status = ACameraMetadata_getConstEntry(characteristics, ACAMERA_FLASH_INFO_AVAILABLE, &entry);
CHECK(status == ACAMERA_OK);
uint32_t is_flash_supported = false;
if (entry.count == 1 && entry.data.u8[0] == ACAMERA_FLASH_INFO_AVAILABLE_TRUE) {
  is_flash_supported = true;
}

ACameraManager_delete(camera_manager);

ফ্ল্যাশ ইউনিট সক্ষম করুন

AR_FLASH_MODE_TORCH এর সাথে AR সেশন কনফিগার করে ফ্ল্যাশ ইউনিট সক্ষম করুন :

ArConfig* ar_config = NULL;
ArSession_getConfig(ar_session, ar_config);
if (is_flash_supported) {
  ArConfig_setFlashMode(ar_session, ar_config, AR_FLASH_MODE_TORCH);
}
CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS);
ArConfig_destroy(ar_config);

ফ্ল্যাশ ইউনিট নিষ্ক্রিয় করুন

AR_FLASH_MODE_OFF এর সাথে AR সেশন কনফিগার করে ফ্ল্যাশ ইউনিট নিষ্ক্রিয় করুন :

ArConfig* ar_config = NULL;
ArSession_getConfig(ar_session, ar_config);
if (is_flash_supported) {
  ArConfig_setFlashMode(ar_session, ar_config, AR_FLASH_MODE_OFF);
}
CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS);
ArConfig_destroy(ar_config);
,

একটি AR সেশনের সময় ডিভাইসের ফ্ল্যাশ ইউনিট সক্ষম করা দৃশ্যমানতা উন্নত করতে সাহায্য করতে পারে।

বর্তমান ক্যামেরা কনফিগারেশন ফ্ল্যাশ সমর্থন করে তা পরীক্ষা করুন

সমস্ত ক্যামেরা কনফিগারেশন একটি ফ্ল্যাশ ইউনিট সক্রিয় করতে সমর্থন করে না। ফ্ল্যাশ সক্ষম করার আগে বা ব্যবহারকারীদের ফ্ল্যাশ সক্ষম করার বিকল্প দেওয়ার আগে, সক্রিয় ক্যামেরা কনফিগারেশনের জন্য ফ্ল্যাশ ইউনিট উপলব্ধ রয়েছে তা নিশ্চিত করুন:

// Get the camera ID from the current session.
ArCameraConfig* ar_camera_config = NULL;
ArSession_getCameraConfig(ar_session, ar_camera_config);
char* camera_id = NULL;
ArCameraConfig_getCameraId(ar_session, ar_camera_config, &camera_id);
ArCameraConfig_destroy(ar_camera_config);

// Get the camera characteristics.
ACameraManager* camera_manager = ACameraManager_create();
CHECK(camera_manager != NULL);
ACameraMetadata* characteristics = NULL;
camera_status_t status = ACameraManager_getCameraCharacteristics(camera_manager, camera_id, &characteristics);
ArString_release(camera_id);
CHECK(status == ACAMERA_OK);
CHECK(characteristics != NULL);

// Check if flash is supported.
ACameraMetadata_const_entry entry;
status = ACameraMetadata_getConstEntry(characteristics, ACAMERA_FLASH_INFO_AVAILABLE, &entry);
CHECK(status == ACAMERA_OK);
uint32_t is_flash_supported = false;
if (entry.count == 1 && entry.data.u8[0] == ACAMERA_FLASH_INFO_AVAILABLE_TRUE) {
  is_flash_supported = true;
}

ACameraManager_delete(camera_manager);

ফ্ল্যাশ ইউনিট সক্ষম করুন

AR_FLASH_MODE_TORCH এর সাথে AR সেশন কনফিগার করে ফ্ল্যাশ ইউনিট সক্ষম করুন :

ArConfig* ar_config = NULL;
ArSession_getConfig(ar_session, ar_config);
if (is_flash_supported) {
  ArConfig_setFlashMode(ar_session, ar_config, AR_FLASH_MODE_TORCH);
}
CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS);
ArConfig_destroy(ar_config);

ফ্ল্যাশ ইউনিট নিষ্ক্রিয় করুন

AR_FLASH_MODE_OFF এর সাথে AR সেশন কনফিগার করে ফ্ল্যাশ ইউনিট নিষ্ক্রিয় করুন :

ArConfig* ar_config = NULL;
ArSession_getConfig(ar_session, ar_config);
if (is_flash_supported) {
  ArConfig_setFlashMode(ar_session, ar_config, AR_FLASH_MODE_OFF);
}
CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS);
ArConfig_destroy(ar_config);