การเปิดใช้แฟลชของอุปกรณ์ระหว่างเซสชัน 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 ด้วย
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 ด้วย 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);