AVFoundationを用いたフロントカメラのフラッシュの設定について

前提

現在,AVFoundationを用いてカメラアプリの作成をしています.

実現したいこと

カメラアプリの作成方法としてAVFoundationを使う方法とUIImagePickerControllerを使う方法があると認識しています.
UIImagePickerControllerではfrontcameraで画面を白くしてフラッシュを焚くRetina Flashが存在しており,以下の一部抜粋したコードのように書くことで実行されます.

swift

picker.sourceType = .camera picker.cameraDevice = .front picker.cameraFlashMode = .on

これをAVFoundationでも実行したいと考えています.

試したこと

試したこととしては,AVCaptureTorchModeの実装やうまくはいきませんでしたがAVCaptureFlashModeも試してみました.

func ledFlash(_ flg: Bool) { // guard let avDevice = AVCaptureDevice.default(.builtInWideAngleCamera,for: .video,position: .front) else { return } guard let avDevice = AVCaptureDevice.default(for: .video) else { return } if avDevice.hasTorch { do { try avDevice.lockForConfiguration() avDevice.torchMode = flg ? .on : .off avDevice.unlockForConfiguration() } catch { print("Torch could not be used") } } }

しかし,frontの設定ではフラッシュがたくことができませんでした.このため解決策を教えていただきたく思います.
現在,設定としてfront cameraのフラッシュがなければRetina Flashを模して,撮影時に白い背景画像を一瞬表示させることも考えており,こちらに関してもアドバイスをいただければと思います.

コメントを投稿

0 コメント