Việc bật đơn vị flash của thiết bị trong phiên thực tế tăng cường có thể giúp cải thiện khả năng hiển thị.
Kiểm tra để chắc chắn rằng cấu hình máy ảnh hiện tại có hỗ trợ đèn flash
Không phải tất cả các cấu hình máy ảnh đều hỗ trợ việc bật bộ đèn flash. Trước khi bật đèn flash hoặc cung cấp cho người dùng tuỳ chọn bật đèn flash, đảm bảo có thiết bị flash tương thích với máy ảnh đang hoạt động cấu hình:
// 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);
Bật thiết bị flash
Bật đơn vị flash bằng cách định cấu hình phiên thực tế tăng cường bằng
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);
Tắt thiết bị flash
Tắt đơn vị flash bằng cách định cấu hình phiên thực tế tăng cường bằng
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);