【发布时间】:2016-03-19 03:12:56
【问题描述】:
我遇到了困难,因为我认为应该很简单。 我只想在我的 iOS 应用中拍照时点亮闪光灯。而我尝试的所有方法都失败了,或者只成功了 20%。
这是触发闪光灯的代码:
// 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()
【问题讨论】:
标签: ios swift2 avfoundation avcapturesession avcapturedevice