IOS-闪光灯操作

AVCaptureDevice.h主要用来获取iphone一些关于相机设备的属性。

前置和后置摄像头

enum {

AVCaptureDevicePositionBack                = 1,

AVCaptureDevicePositionFront               = 2

};

typedef NSInteger AVCaptureDevicePosition;



闪光灯开关

 

enum {

AVCaptureFlashModeOff  = 0,

AVCaptureFlashModeOn   = 1,

AVCaptureFlashModeAuto = 2

};

typedef NSInteger AVCaptureFlashMode;



手电筒开关

 

enum {

AVCaptureTorchModeOff  = 0,

AVCaptureTorchModeOn   = 1,

AVCaptureTorchModeAuto = 2,

};

typedef NSInteger AVCaptureTorchMode;



焦距调整

 

enum {

AVCaptureFocusModeLocked              = 0,

AVCaptureFocusModeAutoFocus           = 1,

AVCaptureFocusModeContinuousAutoFocus = 2,

};

typedef NSInteger AVCaptureFocusMode;



曝光量调节

 

enum {

AVCaptureExposureModeLocked = 0,

AVCaptureExposureModeAutoExpose = 1,

AVCaptureExposureModeContinuousAutoExposure = 2,

};

typedef NSInteger AVCaptureExposureMode;



白平衡

 

enum {

AVCaptureWhiteBalanceModeLocked         = 0,

AVCaptureWhiteBalanceModeAutoWhiteBalance         = 1,

    AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance = 2,

};

typedef NSInteger AVCaptureWhiteBalanceMode;

开启闪光灯:

 1 AVCaptureDevice* d = nil; // find a device by position 

 2 NSArray* allDevices = [AVCaptureDevice devices]; 

 3 for (AVCaptureDevice* currentDevice in allDevices) {   

 4     if (currentDevice.position == AVCaptureDevicePositionBack) { 

 5             d = currentDevice;   

 6     } 

 7 } // at this point, d may still be nil, assuming we found something we like.... 

 8 NSError* err = nil; 

 9 BOOL lockAcquired = [d lockForConfiguration:&err]; 

10 if (!lockAcquired) {    

11     // log err and handle... 

12 } else {    

13     // flip on the flash mode    

14     if ([d hasFlash] && [d isFlashModeSupported:AVCaptureFlashModeOn] ) {       

15     [d setFlashMode:AVCaptureFlashModeOn];    

16     }    

17     [d unlockForConfiguration]; 

18 }

 

你可能感兴趣的:(ios)