Android NDK (C) पर डिवाइस की फ़्लैश यूनिट का इस्तेमाल करें

एआर सेशन के दौरान, डिवाइस की फ़्लैश यूनिट चालू करने से, ऐप्लिकेशन को बेहतर बनाने में मदद मिल सकती है किसको दिखे.

देखें कि मौजूदा कैमरा कॉन्फ़िगरेशन, फ़्लैश के साथ काम करता है या नहीं

सभी कैमरा कॉन्फ़िगरेशन फ़्लैश यूनिट को सक्षम करने का समर्थन नहीं करते है. फ़्लैश को चालू करने या उपयोगकर्ताओं को फ़्लैश चालू करने का विकल्प देने से पहले, सुनिश्चित करें कि सक्रिय कैमरे के लिए फ़्लैश यूनिट उपलब्ध है कॉन्फ़िगरेशन:

// 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:

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:

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