2013/12/12

[iOS][Objective-C]AVCaptureDeviceInputを使ってFlashモードの切り替え

AVCaptureDeviceInputのdeviceプロパティはreadonlyと書かれていたため、てっきりFlashの設定ができないと思っていたが、どうやら可能なようだ。

ずばり下のように動的に制御することができる。

    NSError *error;
    AVCaptureDeviceInput *backFacingCameraDeviceInput;
    if([backFacingCameraDeviceInput.device lockForConfiguration:&error]){
        //Flashがついている場合
        if(backFacingCameraDeviceInput.device.flashActive){
            backFacingCameraDeviceInput.device.flashMode = AVCaptureFlashModeOff;
        //Flashがついていない場合
        }else{
            backFacingCameraDeviceInput.device.flashMode = AVCaptureFlashModeOn;
        }
        [backFacingCameraDeviceInput.device unlockForConfiguration];
    //エラーが発生した場合
    }else{
        
    }
上のプログラムは、FlashモードがOnになっている場合はOffにし、逆にOnの場合はOffにするというプログラムです。

今後は、このソースをコピペする形で使っていきたいと思う。

0 コメント:

コメントを投稿