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