Iphone 如何在UIImagePickerController上访问照相机闪光灯?

Iphone 如何在UIImagePickerController上访问照相机闪光灯?,iphone,ios,camera,uiimagepickercontroller,Iphone,Ios,Camera,Uiimagepickercontroller,我想知道如何使用UIImagePickerController打开iPhone 4上的照相机闪光灯 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerCameraDeviceFront] == YES) { /// What code here /// } else { NoFlash = [[UIAlertView alloc] initWithTitle:@"Uh-Oh"

我想知道如何使用UIImagePickerController打开iPhone 4上的照相机闪光灯

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerCameraDeviceFront] == YES)
{
    /// What code here ///
}

else
{
    NoFlash = [[UIAlertView alloc] initWithTitle:@"Uh-Oh"
                                         message:@"Your device doesn't have a flash camera"
                                        delegate:nil
                               cancelButtonTitle:@"mhmm, OK"
                               otherButtonTitles:nil];
    NoFlash.delegate = self;
    [NoFlash show];
    [NoFlash release];
}
}

我已经在这里阅读了UIImagePickerController类参考网页:但我没有找到答案。有人能帮我吗


谢谢你,你可以用这个。当你想打开或关闭闪光灯时,基本上称为“toggleTorch”。希望这就是你想要的

- (void) toggleTorch {

    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

    if ([device hasTorch] && [device hasFlash]){

        if (device.torchMode == AVCaptureTorchModeOff) {

            NSLog(@"It's currently off.. turning on now.");

            [power setImage:[UIImage imageNamed:@"on@2x.png"] forState:UIControlStateNormal];

            AVCaptureDeviceInput *flashInput = [AVCaptureDeviceInput deviceInputWithDevice:device error: nil];
            AVCaptureVideoDataOutput *output = [[AVCaptureVideoDataOutput alloc] init];

            AVCaptureSession *session = [[AVCaptureSession alloc] init];

            [session beginConfiguration];
            [device lockForConfiguration:nil];

            [device setTorchMode:AVCaptureTorchModeOn];
            [device setFlashMode:AVCaptureFlashModeOn];

            [session addInput:flashInput];
            [session addOutput:output];

            [device unlockForConfiguration];

            [output release];

            [session commitConfiguration];
            [session startRunning];

            [self setTorchSession:session];
            [session release];
        }
        else {

            NSLog(@"It's currently on.. turning off now.");

            [power.imageView setImage:[UIImage imageNamed:@"off@2x.png"]];

            [torchSession stopRunning];

        }

    }

}

-(IBAction)powerBtn
{
    [self toggleTorch];
}
交替地

-(void)_flashToggle
{
if (! [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceRear ])
    return;

if (PickerController.cameraFlashMode == UIImagePickerControllerCameraFlashModeOff)
    PickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;
else
    PickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;  
}

这与Xcode无关。我要重新标记这个。这是为了火炬,和闪光灯无关。只需更改闪光灯的PickerController.cameraFlashMode。
-(void)_flashToggle
{
if (! [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceRear ])
    return;

if (PickerController.cameraFlashMode == UIImagePickerControllerCameraFlashModeOff)
    PickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;
else
    PickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;  
}
// not all devices have two cameras or a flash so just check here
    if ( [UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerCameraDeviceRear] ) {
        imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
        if ( [UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerCameraDeviceFront] ) {
            cameraSelectionButton.alpha = 1.0;
            showCameraSelection = YES;
        }
    } else {
        imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
    }

    // flash mode on
      if ([UIImagePickerController isFlashAvailableForCameraDevice:imagePicker.cameraDevice] )
       {
            imagePicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
            flashModeButton.alpha = 1.0;
            showFlashMode = YES;
        }