我是一名有用的助手,可以为您进行翻译。以下是需要翻译的内容:
更新1:添加了代码
这是我用来显示相机的代码(它在自定义视图下,而不是本地相机视图控制器下)。
我在尝试使用相机时遇到了一些问题。问题在于某些设备在设置下显示相机条目,而另一些则没有。在那些相机开关未出现的设备上,我无法使用相机,因为它没有权限,并且也不会在设置中出现以启用它们。
这是在正常工作的设备上的样子:
这是在不工作的设备上的显示效果。 当我拍摄这些截图时,应用程序应该已经请求了权限,但它没有这样做。我还验证了这些设备没有启用限制。有什么想法吗?更新1:添加了代码
这是我用来显示相机的代码(它在自定义视图下,而不是本地相机视图控制器下)。
self.captureSession = [[AVCaptureSession alloc] init];
AVCaptureDevice *videoCaptureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error = nil;
AVCaptureDeviceInput *videoInput = [AVCaptureDeviceInput deviceInputWithDevice:videoCaptureDevice error:&error];
if(videoInput)
{
[self.captureSession addInput:videoInput];
}
else
{
NSLog(@"Error: %@", error);
}
AVCaptureMetadataOutput *metadataOutput = [[AVCaptureMetadataOutput alloc] init];
[self.captureSession addOutput:metadataOutput];
[metadataOutput setMetadataObjectsDelegate:self
queue:dispatch_get_main_queue()];
[metadataOutput setMetadataObjectTypes:@[AVMetadataObjectTypeCode39Code, AVMetadataObjectTypeQRCode]];
AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:self.captureSession];
previewLayer.frame = self.view.layer.bounds;
UIView * previewView = [[UIView alloc] initWithFrame:self.view.frame];
[previewView.layer addSublayer:previewLayer];
[self.view addSubview:previewView];
[self.view sendSubviewToBack:previewView];
[self.captureSession startRunning];