1
我关注的苹果公司最新的示例代码AVCam斯威夫特,这将更新为使用AVCapture照片输出。AVCapture照片输出isFlashScene键 - 值观察
VAR isFlashScene:布尔{}获取指示是否现场目前正由相机权证使用闪光灯的预览
一个布尔值。该属性的值根据相机当前可见的场景而变化 。例如, 您可以使用此属性来突出显示您的应用的相机UI中的闪光灯控件,向用户表明该场景足够暗 可以启用闪光灯。如果图片捕获 输出的supportedFlashModes值已关闭,则此属性的值为 始终为false。该属性支持键值观察。
我想键值观察这个,所以当自动闪光模式表明这是一个场景,闪光灯将触发(就像股票iOS相机应用),所以我可以改变用户界面,就像文档说明。
所以我把它像这样:
private let photoOutput = AVCapturePhotoOutput()
private var FlashSceneContext = 0
self.addObserver(self, forKeyPath: "photoOutput.isFlashScene", options: .new, context: &FlashSceneContext)
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if context == & FlashSceneContext {
print ("Flash Scene Changed")
}
}
以上从未展示的变化。即使我登录检查
print (self.photoOutput.isFlashScene)
这出来作为False所有的时间虽然出了应用程序。
我也试过:
self.photoOutput.addObserver(self, forKeyPath: "isFlashScene", options: .new, context: &FlashSceneContext)
....仍然没有改变闪光灯的场景,它是贴在假。
[This](http://stackoverflow.com/questions/28285118/ios-check-if-torch-is-on)线程可以帮助你,我希望。 – iphonic
不幸的是没有......但看起来像添加观察者的正确方法是:self.photoOutput.addObserver(self,forKeyPath:“isFlashScene”,选项:.new,上下文:&FlashSceneContext) – Gizmodo
这似乎是一个错误isFlashScene 。 – Gizmodo