[iPhone] フラッシュの制御
2014/06/02
新年あけて初めての記事になりますが依然として、プログラミングメモな状態です。
そんなわけで、iPhoneのカメラデバイスのフラッシュの制御です。
どこかに、
1 | BOOL flashMode = FALSE; |
なんてフラグを用意しつつ。
1 2 3 4 5 6 7 8 | if ( flashMode == TRUE ) { pickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff; flashMode = FALSE; } else { pickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn; flashMode = TRUE; } |
こう書いたのですが、全然、反応がありません。
んで、代わりにこういうふうに書くと反応します。
1 | #import <avfoundation/AVFoundation.h> |
1 2 3 4 5 6 7 8 9 10 11 | AVCaptureDevice* device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; [device lockForConfiguration:nil]; if ( flashMode == TRUE ) { [device setTorchMode:AVCaptureFlashModeOff]; flashMode = FALSE; } else { [device setTorchMode:AVCaptureFlashModeOn]; flashMode = TRUE; } [device unlockForConfiguration]; |
という感じです。これでフラッシュのオン・オフできるアプリがすぐ作れちゃうわけですね。
わーぉ!