#Camera Xでライトをつける
Camera Xでカメラの機能を実装して、トーチライトを使おうとしたら、あれっ、ライト付かないんだけど...ってなったので今後忘れないようにメモ。
####Camera Xの前までやってた書き方↓(※Camera Xではライトが付かなかった例)
val cameraManager = getSystemService(Context.CAMERA_SERVICE) as CameraManager
cameraManager.registerTorchCallback(object: CameraManager.TorchCallback(){
override fun onTorchModeChanged(cameraId: String, enabled: Boolean) {
super.onTorchModeChanged(cameraId, enabled)
cameraID = cameraId
lightOn = enabled
}
}, Handler())
//トーチライトオン
cameraManager.setTorchMode(cameraID, lightOn)
これだとCamera 2とかでは使えるけど Camera Xでは使えずトーチライトが付かない。ちなみにビルドは普通に通る。
####Camera Xでの書き方↓
前提として、Camera Xのプレビューまで実装済み
val preview = Preview(previewConfig)
CameraX.bindToLifecycle(this, preview)
//ライトをつける
preview.enableTorch(true)
まさかのこれだけ。プレビューuse caseを使ってトーチライトをつけることができる。
すごく便利だった。
ちなみに自分は最初付かねーってなったけど、ちゃんと公式には書いてあった...