2010-11-20 12 views
5

मैं जानना चाहता हूं कि आईआईएम 4 पर UIImagePickerController के साथ कैमरा फ्लैश पर स्विच कैसे करें।UIImagePickerController पर कैमरा फ्लैश का उपयोग कैसे करें?

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 कक्षा संदर्भ वेब पेज यहाँ पढ़ें: http://bit.ly/cdAhhB लेकिन मैं इस सवाल का जवाब नहीं मिला। क्या कोई मेरी सहायता कर सकता है?

धन्यवाद

+0

यह Xcode के साथ कोई संबंध नहीं है। मैं इसे पुनः प्राप्त करने जा रहा हूँ। –

उत्तर

4

आप इसका उपयोग कर सकते हैं। मूल रूप से 'टॉगल टॉर्च' को कॉल करें जब आप फ्लैश चालू या बंद करना चाहते हैं। उम्मीद है कि यह वही है जो आप खोज रहे थे।

- (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:@"[email protected]"] 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:@"[email protected]"]]; 

      [torchSession stopRunning]; 

     } 

    } 

} 

-(IBAction)powerBtn 
{ 
    [self toggleTorch]; 
} 
+0

मैं कोशिश करूँगा। धन्यवाद! ; डी – Aluminum

+3

यह मशाल के लिए है, और फ्लैश के साथ कुछ भी नहीं है। फ़्लैश के लिए बस PickerController.cameraFlashMode बदलें। – Fattie

7
-(void)flashSelected 
{ 

if (PickerController.cameraFlashMode == 
UIImagePickerControllerCameraFlashModeOff) { 

    if ([UIImagePickerController 
isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceRear ]) 

    { 
     PickerController.cameraFlashMode = 
UIImagePickerControllerCameraFlashModeOn; 
    } 
} 
else 
{ 
    PickerController.cameraFlashMode = 
UIImagePickerControllerCameraFlashModeOff; 
}  
} 

बारी-बारी से ..

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

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

सही धन्यवाद। – Fattie

0
// 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; 
     } 
संबंधित मुद्दे