1

更新 :カメラのフラッシュをオン/オフする方法を知っています。私が知りたいのは、カメラのフラッシュがすでに点灯しているかどうかです。

iPhoneでカメラのフラッシュが点灯しているかどうかを知りたいのですが、UIImagePickerControllerこれを可能にする方法が見つかりません。cameraFlashMode を取得できることはわかっています。しかし、カメラのフラッシュがすでに点灯しているかどうかを知りたいです。

たとえば、モードが の場合UIImagePickerControllerCameraFlashModeAuto、制御を行う前にカメラのフラッシュが点灯または消灯する可能性があり、何らかの操作を行う前にカメラのフラッシュの状態を知りたい。

4

3 に答える 3

0

私はあなたと同じ問題を経験しました。

iOS は、Flash Light と Torch の 2 つのモードをサポートしています。以下のコードは、それぞれが利用可能かどうかを確認し、呼び出したものに応じてそれらをオンまたはオフにします。また、ライトが既にオン/オフされているかどうかもチェックします。

フラッシュオン -

-(void)flashOn {
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    [device lockForConfiguration:nil];

    if ([device hasFlash]) {
        if ([device flashMode] == AVCaptureFlashModeOff) {
            [device setFlashMode:AVCaptureFlashModeOn];
        }
    }

    if ([device hasTorch]) {
        if ([device torchMode] == AVCaptureTorchModeOff) {
            [device setTorchMode:AVCaptureTorchModeOn];
        }
    }

    [device unlockForConfiguration];
  }
}

フラッシュオフ-

-(void)flashOff {
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    [device lockForConfiguration:nil];

    if ([device hasFlash]) {
        if ([device flashMode] == AVCaptureFlashModeOn) {
            [device setFlashMode:AVCaptureFlashModeOff];
        }
    }

    if ([device hasTorch]) {
        if ([device torchMode] == AVCaptureTorchModeOn) {
            [device setTorchMode:AVCaptureTorchModeOff];
        }
    }

    [device unlockForConfiguration];
  }

}
于 2016-07-12T08:58:45.177 に答える
0

次のコードを使用して、それを見つけることができます

#import <AVFoundation/AVFoundation.h>


- (void) turnTorchOn: (bool) on {

Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch] && [device hasFlash]){

    [device lockForConfiguration:nil];
    if (on) {
        NSLog(@"Torch is ON");
    } else {
      NSLog(@"Torch is OFF");

    }
    [device unlockForConfiguration];
}
}
}

ハッピーコーディング...!!!

于 2013-03-01T10:46:36.020 に答える