私はAppleの最新のサンプルコードAVCapture写真出力を使用するように更新されAVCamスウィフトを、次のようしています。AVCapture写真出力isFlashSceneキー値観測
するvar isFlashScene:ブール{う}
シーンが現在フラッシュのカメラを保証用途によって をプレビューしているかどうかを示すブール値。このプロパティの値は、カメラに現在表示されているシーンに応じて に変更されます。たとえば、 このプロパティを使用して、 アプリのカメラUIのフラッシュコントロールをハイライト表示することができます。これは、シーンを暗くして、フラッシュを有効にするのに十分な暗さがあることをユーザに示します。フォトキャプチャ 出力のsupportedFlashModes値がオフの場合、このプロパティの値は 常にfalseです。このプロパティは、キー値の観測をサポートします。
私はKey-Valueを観察しようとしています。これは、自動フラッシュモードでは、フラッシュが発射されるシーンであることを示しています(ストックiOSカメラアプリのように)ので、UIを変更できますドキュメンテーションノート。
だから私はこのようにそれを設定しない:
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)
これはアプリから出てきても常に偽になります。
私も試してみました:まだ変更はフラッシュシーンではありません
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"、options:.new、context:&FlashSceneContext) – Gizmodo
これはisFlashScene 。 – Gizmodo