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;
開啓閃光燈:iphone
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 }