Mengaktifkan unit flash perangkat selama sesi AR dapat membantu meningkatkan visibilitas tinggi.
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; 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);
Aktifkan unit flash
Aktifkan unit flash dengan mengonfigurasi sesi AR menggunakan
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);
Nonaktifkan unit flash
Nonaktifkan unit flash dengan mengonfigurasi sesi AR menggunakan
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);