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