我正在尝试将此代码切换为使用前置摄像头

安迪·迪万(Andy Dewan)

我是编程新手,因此尝试修复此代码以使用前置摄像头,而不是默认使用后置摄像头。我不确定要使其正常工作需要进行哪些更改。

这是我的示例代码:

-(void)viewWillAppear:(BOOL)animated{
session = [[AVCaptureSession alloc] init];
[session setSessionPreset:AVCaptureSessionPresetPhoto];

AVCaptureDevice *inputDevice = [AVCaptureDevice       defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error;
AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:inputDevice error:&error];

if ([session canAddInput:deviceInput]) {
    [session addInput:deviceInput];
}

AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc]  initWithSession:session];
                [previewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
                                            CALayer *rootLayer = [[self view] layer];
                                            [rootLayer setMasksToBounds:YES];
                                            CGRect frame = self.frameForCapture.frame;

[previewLayer setFrame:frame];

[rootLayer insertSublayer:previewLayer atIndex:0];


stillImageOutput = [[AVCaptureStillImageOutput alloc] init];
NSDictionary *outputSettings = [[NSDictionary alloc] initWithObjectsAndKeys:AVVideoCodecJPEG, AVVideoCodecKey, nil];
[stillImageOutput setOutputSettings:outputSettings];

[session addOutput:stillImageOutput];

[session startRunning];
洛根

替换为:

AVCaptureDevice *inputDevice = [AVCaptureDevice       defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error;
AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:inputDevice error:&error];

有了这个:

NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
AVCaptureDevice *frontCamera;
for (AVCaptureDevice *dev in devices) {
    if (dev.position == AVCaptureDevicePositionFront) {
        frontCamera = dev;
        break;
    }
}
if (!frontCamera) {
    NSLog(@"No front camera found!");
    // Handle no front camera error
}
NSError *error;
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:frontCamera error:&error];

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用AVCaptureSession切换前置/后置摄像头

即使成功切换到前置摄像头,iPhone仍显示后置摄像头的视图

切换到前置摄像头和后置摄像头Android SurfaceView

如何在javascript中切换前置摄像头和后置摄像头?

使用Circuit SDK在WebRTC通话时在Android上切换前置/后置摄像头

切换至前置摄像头无法正常工作

Android Camera2 API切换回-前置摄像头

如何在Windows Phone 8.1(WinRT / Jupiter)中切换到前置摄像头

如何在CameraX上切换到前置摄像头?

Android-CameraX:在多个前置摄像头之间切换

切换到前置摄像头时应用程序崩溃

我正在尝试使用简单的网络摄像头捕获上传,上传不起作用吗?

我正在尝试运行基于手势识别的项目,而我的iOS模拟器显示未找到前置摄像头

WebRTC 切换摄像头

尝试启动前置摄像头时出现错误(Swift)

打开前置摄像头

如何使用AVCaptureDeviceDiscoverySession获取前置摄像头,后置摄像头和音频

检测使用前置摄像头还是后置摄像头

无法使用前置摄像头2拍照

使用前置摄像头时不会保存照片

无法在Swift中使用前置摄像头

修复使用前置摄像头 ios 拍摄的图像的方向

在Android服务中使用前置摄像头拍照

我正在尝试在 Raspberry Pi 中连接两个网络摄像头

前置摄像头上延伸的摄像头预览

故意启动前置摄像头

UIImagePickerController中的前置摄像头

ZXing自动启动前置摄像头

前置摄像头图片的奇怪问题