gpt4 book ai didi

iphone - AVFoundation 对焦模式 iPad2

转载 作者:行者123 更新时间:2023-12-03 20:25:32 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中实现自动对焦,并在 iPad2 中进行了测试。我的问题是,当我调用像 isFocusModeSupported:AVCaptureFocusModeContinouslyAutoFocus 这样的检查方法时,它总是返回 NO。不过,我可以通过设备中的其他相机应用程序点击进行对焦

devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *tempDevice in devices) {
[tempDevice lockForConfiguration:nil];
if ([tempDevice isFocusModeSupported:AVCaptureFocusModeAutoFocus]) {
NSLog(@"Here");
}

if ([tempDevice isFocusModeSupported:AVCaptureFocusModeContinuousAutoFocus]) {
NSLog(@"Here");
}

if ([tempDevice isFocusModeSupported:AVCaptureFocusModeLocked]) {
NSLog(@"Here");
}

if ([tempDevice isFocusPointOfInterestSupported]) {
NSLog(@"Here");
}
[tempDevice unlockForConfiguration];
}

最佳答案

今晚我只是在研究这个。据我所知,iPad 2 不进行对焦,而是进行曝光调整,因此在默认的相机应用程序中,点击屏幕会弹出一个矩形,其中点击发生指示要进行白点调整的区域。

也许我错了,但这就是我发现的,并且似乎已被您的 API(isFocusModeSupported:AVCaptureFocusModeContinouslyAutoFocus 返回 NO)测试所证实。

iPad 2 的摄像头相当弱——尤其是前置摄像头。我很惊讶苹果公司也提供了这个功能。

更新:这是来自最新的 AVCamDemo Apple 示例的代码,用于处理焦点+曝光+白点。我不认为这在 AVCam 示例中。 AVCamDemo 可能只能从开发人员中心下载 WWDC 代码 .dmg 包,而不是从网络上单独下载。 在我的 iPad 2 上,曝光代码永远不会被调用。//-来自 AVCamDemo:

- (BOOL) hasExposure
{
AVCaptureDevice *device = [[self videoInput] device];

return [device isExposureModeSupported:AVCaptureExposureModeLocked] ||
[device isExposureModeSupported:AVCaptureExposureModeAutoExpose] ||
[device isExposureModeSupported:AVCaptureExposureModeContinuousAutoExposure];
}

- (AVCaptureExposureMode) exposureMode
{
return [[[self videoInput] device] exposureMode];
}

- (void) setExposureMode:(AVCaptureExposureMode)exposureMode
{
if (exposureMode == 1) {
exposureMode = 2;
}
AVCaptureDevice *device = [[self videoInput] device];
if ([device isExposureModeSupported:exposureMode] && [device exposureMode] != exposureMode) {
NSError *error;
if ([device lockForConfiguration:&error]) {
[device setExposureMode:exposureMode];
[device unlockForConfiguration];
} else {
id delegate = [self delegate];
if ([delegate respondsToSelector:@selector(acquiringDeviceLockFailedWithError:)]) {
[delegate acquiringDeviceLockFailedWithError:error];
}
}
}
}

- (BOOL) hasWhiteBalance
{
AVCaptureDevice *device = [[self videoInput] device];

return [device isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeLocked] ||
[device isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeAutoWhiteBalance];
}

- (AVCaptureWhiteBalanceMode) whiteBalanceMode
{
return [[[self videoInput] device] whiteBalanceMode];
}

- (void) setWhiteBalanceMode:(AVCaptureWhiteBalanceMode)whiteBalanceMode
{
if (whiteBalanceMode == 1) {
whiteBalanceMode = 2;
}
AVCaptureDevice *device = [[self videoInput] device];
if ([device isWhiteBalanceModeSupported:whiteBalanceMode] && [device whiteBalanceMode] != whiteBalanceMode) {
NSError *error;
if ([device lockForConfiguration:&error]) {
[device setWhiteBalanceMode:whiteBalanceMode];
[device unlockForConfiguration];
} else {
id delegate = [self delegate];
if ([delegate respondsToSelector:@selector(acquiringDeviceLockFailedWithError:)]) {
[delegate acquiringDeviceLockFailedWithError:error];
}
}
}
}

- (BOOL) hasFocus
{
AVCaptureDevice *device = [[self videoInput] device];

return [device isFocusModeSupported:AVCaptureFocusModeLocked] ||
[device isFocusModeSupported:AVCaptureFocusModeAutoFocus] ||
[device isFocusModeSupported:AVCaptureFocusModeContinuousAutoFocus];
}

- (AVCaptureFocusMode) focusMode
{
return [[[self videoInput] device] focusMode];
}

- (void) setFocusMode:(AVCaptureFocusMode)focusMode
{


AVCaptureDevice *device = [[self videoInput] device];
if ([device isFocusModeSupported:focusMode] && [device focusMode] != focusMode) {
NSError *error;

printf(" setFocusMode \n");
if ([device lockForConfiguration:&error]) {
[device setFocusMode:focusMode];
[device unlockForConfiguration];
} else {
id delegate = [self delegate];
if ([delegate respondsToSelector:@selector(acquiringDeviceLockFailedWithError:)]) {
[delegate acquiringDeviceLockFailedWithError:error];
}
}
}
}

关于iphone - AVFoundation 对焦模式 iPad2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9107773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com