يمكن أن يساعد تفعيل وحدة الفلاش في الجهاز أثناء جلسة الواقع المعزّز في تحسين مستوى الرؤية.
التأكّد من أنّ إعدادات الكاميرا الحالية تتيح استخدام الفلاش
لا تتيح بعض إعدادات الكاميرا تفعيل وحدة الفلاش. قبل تفعيل الفلاش أو منح المستخدمين خيار تفعيله، تأكَّد من توفّر وحدة الفلاش لإعدادات الكاميرة النشطة:
// 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);