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