相关疑难解决方法(0)

iPhone iOS4低级摄像头控制?

有没有办法在iPhone 4上手动设置iOS4中的低速静态相机设置,如快门速度,光圈或ISO?我不认为它存在于官方SDK中,但也许有人发现了一些私有API来允许这个?

我发现我的iPhone 4相机无法使用,因为即使在相当不错的光线下,它始终坚持以最慢的1/15秒快门速度拍摄,如果拍摄对象完全移动,会导致运动模糊.

谢谢!

iphone camera low-level ios4

11
推荐指数
1
解决办法
3174
查看次数

如何为视频录制指定曝光,对焦和白平衡?

我有一个程序来拍摄带有默认参数的视频,当我移动相机时,将自动调整曝光,聚焦和白平衡.我想在程序中添加2个按钮:LOCK和PRESET.按下LOCK按钮时,曝光,对焦和白平衡将被修复,其值将作为用户设置存储.PRESET按钮用于将用户设置设置为相机,以确保我们可以拍摄具有相同曝光,对焦和白平衡值的所有视频.

锁定部分很简单,我只需要改变模式,所以我想知道是否有任何方法可以获得并设置曝光,聚焦和白平衡的值.

以曝光为例,默认情况下,曝光模式设置为AVCaptureExposureModeContinuousAutoExposure,这意味着,当我拿着iPhone拍摄视频时,曝光将自动调整,以确保我们可以在明亮或黑暗的环境中清晰地看到场景.

AVCaptureDevice* pCaptureDevice = [self videoDeviceWithPosition:AVCaptureDevicePositionBack];
[pCaptureDevice lockForConfiguration:nil];
[pCaptureDevice setExposureMode:AVCaptureExposureModeContinuousAutoExposure];
[pCaptureDevice unlockForConfiguration];
Run Code Online (Sandbox Code Playgroud)

按下LOCK按钮时,我将exposureMode更改为AVCaptureExposureModeLocked,因此不再更改当前曝光值.

[pCaptureDevice lockForConfiguration:nil];
[pCaptureDevice setExposureMode:AVCaptureExposureModeLocked];
[pCaptureDevice unlockForConfiguration];
Run Code Online (Sandbox Code Playgroud)

但是,如何在按下按钮时获取曝光值?更重要的是,当按下PRESET时,如何将曝光值设置回AVCaptureDevice.

我在论坛中搜索过,只发现了Michael Grinich的帖子:访问iOS 6新的API,用于相机曝光和快门速度.我按照他的发现并尝试使用私有API获取并设置exposureGain和exposureDuration,但我发现在AVCaptureExposureModeContinuousAutoExposure模式下,当我将相机从黑暗环境移动到明亮时(曝光增益= 1.0和exposureDuration = {1,30,1,0}).设置它们并没有改变曝光度.

[pCaptureDevice lockForConfiguration:nil];
[pCaptureDevice setExposureMode:AVCaptureExposureModeLocked];
[pCaptureDevice setManualExposureSupportEnabled:YES];
NSLog(@"exposure gain: %f", [pCaptureDevice exposureGain]);
[pCaptureDevice setExposureGain:3.0];
NSLog(@"exposure gain: %f", [pCaptureDevice exposureGain]);
[pCaptureDevice unlockForConfiguration];
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?首先十分感谢!

camera ios avcapturedevice

9
推荐指数
1
解决办法
6151
查看次数

AVFoundation - 如何控制曝光

攻进行拍照,我要锁定曝光,一旦曝光,不再调整关闭的火炬.所以,我添加了一个观察者来处理adjustExposure:

- (IBAction)configureImageCapture:(id)sender
{
    [self.session beginConfiguration];

    [self.cameraController device:self.inputDevice exposureMode:AVCaptureExposureModeAutoExpose];
    [self.cameraController device:self.inputDevice torchMode:AVCaptureTorchModeOn torchLevel:0.8f];

    [self.session commitConfiguration];

    [(AVCaptureDevice *)self.inputDevice addObserver:self forKeyPath:@"adjustingExposure" options:NSKeyValueObservingOptionNew context:MyAdjustingExposureObservationContext];        
}
Run Code Online (Sandbox Code Playgroud)

这是observeValueForKeyPath方法:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if (context == MyAdjustingExposureObservationContext) {
        if( [keyPath isEqualToString:@"adjustingExposure"] )
        {
            BOOL adjustingExposure = [ [change objectForKey:NSKeyValueChangeNewKey] isEqualToNumber:[NSNumber numberWithInt:1] ];

            if (!adjustingExposure)
            {
                [(AVCaptureDevice *)self.cameraController.inputDevice removeObserver:self forKeyPath:@"adjustingExposure"];

                if ([self.inputDevice isExposureModeSupported:AVCaptureExposureModeLocked]) {
                    dispatch_async(dispatch_get_main_queue(),
                                   ^{
                                       NSError *error = nil;
                                       if ([self.inputDevice lockForConfiguration:&error]) {
                                           // 5) lock the exposure
                                           [self.cameraController device:self.inputDevice …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c avfoundation

7
推荐指数
1
解决办法
1930
查看次数

更改 ISO 或快门速度

我想控制 iPhone 的 ISO 和快门速度,但它在 AVFoundation 中没有 API。它只能改变曝光,wb for iphone。

如何控制 ISO 或快门速度?

iphone performance camera

4
推荐指数
2
解决办法
1万
查看次数