AVCaptureDevice.h iphone闪光灯什么的

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;

 

 

开启闪光灯
AVCaptureDevice* d = nil;

// find a device by position
NSArray* allDevices = [AVCaptureDevice devices];
for (AVCaptureDevice* currentDevice in allDevices) {
  
if (currentDevice.position == AVCaptureDevicePositionBack) {
    d 
= currentDevice;
  
}
}



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

NSError* err = nil;
BOOL lockAcquired 
= [d lockForConfiguration:&err];

if (!lockAcquired) {
   
// log err and handle...
} else {
   
// flip on the flash mode
   
if ([d hasFlash] && [d isFlashModeSupported:AVCaptureFlashModeOn] ) {
      
[d setFlashMode:AVCaptureFlashModeOn];
   
}

   
[d unlockForConfiguration];
}
from:http://stackoverflow.com/a/3204078
posted @ 2012-12-27 18:07  superchao  阅读(301)  评论(0编辑  收藏  举报