【发布时间】:2016-01-19 19:56:57
【问题描述】:
我正在使用带有AVFoundation 的前置摄像头开发一个镜像应用程序。我已经完成向UIView 显示相机屏幕。但是如何调节亮度?
代码是这样的:
-(void)AVCaptureInit {
mCameraAVSession = [[AVCaptureSession alloc] init];
[mCameraAVSession setSessionPreset:AVCaptureSessionPresetPhoto];
mCaptureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *device in devices) {
if ([device position] == AVCaptureDevicePositionFront) {
mCaptureDevice = device;
break;
}
}
//if ([mCaptureDevice hasTorch] && [mCaptureDevice hasFlash])
{
[mCaptureDevice lockForConfiguration:nil];
// [mCaptureDevice setTorchMode:AVCaptureTorchModeOn];
//[mCaptureDevice setExposurePointOfInterest:0.5];
[mCaptureDevice setExposureMode:AVCaptureExposureModeManual];
[mCaptureDevice unlockForConfiguration];
}
// [inputDevice setTorchModeOnWithLevel:0.5 error:NULL];
NSError *error;
AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:mCaptureDevice error:&error];
if ([mCameraAVSession canAddInput:deviceInput]) {
[mCameraAVSession addInput:deviceInput];
}
AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:mCameraAVSession];
[previewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
CALayer *rootLayer = [mCameraView layer];
[rootLayer setMasksToBounds:YES];
CGRect frame = mCaptureView.frame;
[previewLayer setFrame:frame];
[rootLayer insertSublayer:previewLayer atIndex:0];
mCameraImageOutput = [[AVCaptureStillImageOutput alloc] init];
NSDictionary *outputSettings = [[NSDictionary alloc] initWithObjectsAndKeys:AVVideoCodecJPEG, AVVideoCodecKey, nil];
[mCameraImageOutput setOutputSettings:outputSettings];
[mCameraAVSession addOutput:mCameraImageOutput];
[mCameraAVSession startRunning];
[self setVisible:mCaptureImage IsVisible:NO];
}
有人说可以用曝光来调节亮度,但我不知道怎么用。特别是,我想在捏合时调整相机亮度。
【问题讨论】:
-
你读过文档吗?你是指图像曝光还是相机曝光?
-
感谢您的回复。这意味着相机曝光。
-
是否可以像 iPhone 上的默认相机应用一样通过相机曝光来调整亮度?
-
是的。试试这个例子github.com/IFTTT/FastttCamera
标签: ios objective-c avfoundation avcapturesession