Wenn Sie den Blitz des Geräts während einer AR-Sitzung aktivieren, kann das die Sichtbarkeit verbessern.
Prüfen, ob die aktuelle Kamerakonfiguration den Blitz unterstützt
Nicht alle Kamerakonfigurationen unterstützen die Aktivierung eines Blitzes. Bevor Sie den Blitz aktivieren oder Nutzern die Möglichkeit dazu geben, prüfen Sie, ob der Blitz für die aktive Kamerakonfiguration verfügbar ist:
// 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);
Blitz aktivieren
Aktivieren Sie den Blitz, indem Sie die AR-Sitzung mit AR_FLASH_MODE_TORCH
konfigurieren:
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);
Blitz deaktivieren
Deaktivieren Sie den Blitz, indem Sie die AR-Sitzung mit AR_FLASH_MODE_OFF
konfigurieren:
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);