在 AR 工作階段期間啟用裝置的閃光燈有助於提升 曝光率。
確認目前的相機設定是否支援閃光燈
並非所有相機設定都支援啟用閃光燈。在啟用 Flash 或讓使用者選擇啟用 Flash 之前 確認使用中的相機可以使用閃光燈 設定:
Java
boolean flashAvailable; try { CameraManager cameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(session.getCameraConfig().getCameraId()); flashAvailable = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE); } catch (Exception e) { flashAvailable = false; }
Kotlin
val flashAvailable = runCatching { val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager val characteristics = cameraManager.getCameraCharacteristics(session.cameraConfig.cameraId) characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE) } .getOrNull() ?: false
啟用 Flash 單元
透過以下設定 AR 工作階段啟用 Flash 單元:
Config.FlashMode.TORCH
:
Java
if (flashAvailable) { Config config = session.getConfig(); config.setFlashMode(Config.FlashMode.TORCH); session.configure(config); }
Kotlin
if (flashAvailable) { session.configure(session.config.apply { flashMode = Config.FlashMode.TORCH }) }
停用閃光燈
透過以下設定 AR 工作階段來停用 Flash 單元:
Config.FlashMode.OFF
:
Java
Config config = session.getConfig(); config.setFlashMode(Config.FlashMode.OFF); session.configure(config);
Kotlin
session.configure(session.config.apply { flashMode = Config.FlashMode.OFF })