Iphone 如何在UIImagePickerController上访问照相机闪光灯?
我想知道如何使用UIImagePickerController打开iPhone 4上的照相机闪光灯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"
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;
}