gpt4 book ai didi

ios - AVCaptureDevice 无法捕获后置摄像头

转载 作者:行者123 更新时间:2023-11-29 02:51:11 25 4
gpt4 key购买 nike

我正在尝试通过 AVCaptureDevice 使用 iPhone 的后置摄像头。我尝试了 AVCaptureDevicePositionBackAVCaptureDevicePositionFront 但无论如何它仍然使用 FrontCamera。

这是我的代码:

- (void)setupCamera
{
_captureDevice = nil;

NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];

for (AVCaptureDevice *device in devices)
{
if (device.position == AVCaptureDevicePositionBack)
{
_captureDevice = device;
break;
}
}

}


- (void)turnCameraOn
{
NSError *error;

_session = [[AVCaptureSession alloc] init];
[_session beginConfiguration];
[_session setSessionPreset:AVCaptureSessionPresetMedium];

AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:_captureDevice error:&error];

if (input == nil)
NSLog(@"%@", error);

[_session addInput:input];

AVCaptureVideoDataOutput *output = [[AVCaptureVideoDataOutput alloc] init];
[output setSampleBufferDelegate:self queue:dispatch_queue_create("myQueue", NULL)];
output.videoSettings = @{(id)kCVPixelBufferPixelFormatTypeKey:@(kCVPixelFormatType_32BGRA)};
output.alwaysDiscardsLateVideoFrames = YES;

[_session addOutput:output];

[_session commitConfiguration];
[_session startRunning];
}


- (void)turnCameraOff
{
[_session stopRunning];
_session = nil;
}

最佳答案

使用以下代码:

    AVCaptureDevicePosition desiredPosition;

if (isUsingFrontFacingCamera)

desiredPosition = AVCaptureDevicePositionBack;

else

desiredPosition = AVCaptureDevicePositionFront;



for (AVCaptureDevice *d in [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]) {

if ([d position] == desiredPosition) {

[[captureVideoPreviewLayer session] beginConfiguration];

AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:d error:nil];

for (AVCaptureInput *oldInput in [[captureVideoPreviewLayer session] inputs]) {

[[captureVideoPreviewLayer session] removeInput:oldInput];

}

[[captureVideoPreviewLayer session] addInput:input];

[[captureVideoPreviewLayer session] commitConfiguration];

break;

}

}

关于ios - AVCaptureDevice 无法捕获后置摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24505321/

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