Mengaktifkan unit flash perangkat selama sesi AR dapat membantu meningkatkan visibilitas.
Pastikan konfigurasi kamera saat ini mendukung flash
Tidak semua konfigurasi kamera mendukung pengaktifan unit flash. Sebelum mengaktifkan flash atau menawarkan opsi kepada pengguna untuk mengaktifkan flash, pastikan unit flash tersedia untuk konfigurasi kamera aktif:
// Get the camera ID from the current session. ArCameraConfig* ar_camera_config = NULL; ArCameraConfig_create(ar_session, &ar_camera_config); 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);
Mengaktifkan unit flash
Aktifkan unit flash dengan mengonfigurasi sesi AR dengan
AR_FLASH_MODE_TORCH
:
ArConfig* ar_config = NULL; ArConfig_create(ar_session, &ar_config); 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);
Menonaktifkan unit flash
Nonaktifkan unit flash dengan mengonfigurasi sesi AR dengan
AR_FLASH_MODE_OFF
:
ArConfig* ar_config = NULL; ArConfig_create(ar_session, &ar_config); 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);