前提
現在,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 コメント