私は難しい時が来ています。 iOSアプリで写真を撮るときにフラッシュを灯したいだけです。私が試みたのはすべて失敗したか、20%しか働いていない。ここでAVCaptureDeviceをフラッシュで使用することはできません
は、コードがフラッシュを点灯する解雇である:
// Here we have: captureDevice.hasFlash && captureDevice.isFlashModeSupported(.On)
do {try captureDevice.lockForConfiguration()
captureDevice.flashMode = .On
captureDevice.unlockForConfiguration()
} catch let error as NSError {
print("captureDevice.lockForConfiguration FAILED")
print(error.code)
}
私は最後までtryブロック内の2行を移動させることにより、または含む関数を呼び出すことにより、コードのいくつかの味を試してみました異なる点からこのコード。しかし、すべてのケースでこれを実行している時:
stillImageOutput.captureStillImageAsynchronouslyFromConnection(videoConnection) {
(imageDataSampleBuffer, error) -> Void in
私は次のエラーを取得する:
Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSUnderlyingError=0x13f079340 {Error Domain=NSOSStatusErrorDomain Code=-16800 "(null)"}, NSLocalizedFailureReason=An unknown error occurred (-16800), NSLocalizedDescription=The operation could not be completed}
私はその後、ライン交換する場合:によって
captureDevice.flashMode = .On
を:
captureDevice.torchMode = .On
多かれ少なかれ動作します(残念ながら少なめ)、エラーなしで、これはトーチを使用しているので、私はタイミングの問題を取得:
captureSession.commitConfiguration()