当前位置: 首页 > 面试题库 >

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

邹桐
2023-03-14
问题内容

在iOS 10发布之前,我使用以下代码获取录像机的视频和音频捕获:

 for device in AVCaptureDevice.devices()
 {
     if (device as AnyObject).hasMediaType( AVMediaTypeAudio )
     {
         self.audioCapture = device as? AVCaptureDevice
     }
     else if (device as AnyObject).hasMediaType( AVMediaTypeVideo )
     {
         if (device as AnyObject).position == AVCaptureDevicePosition.back
         {
             self.backCameraVideoCapture = device as? AVCaptureDevice
         }
         else
         {
             self.frontCameraVideoCapture = device as? AVCaptureDevice
         }
     }
 }

当iOS 10最终问世时,我在运行代码时收到以下警告。请注意,我的录像机仍可以正常运行约2周。

在iOS 10.0中不建议使用“ devices()”:请改用AVCaptureDeviceDiscoverySession。

今天早上运行代码时,录像机停止工作。xCode8没有给我任何错误,但是相机捕获的PreviewLayer是完全白色的。当我开始记录时,出现以下错误:

错误域= AVFoundationErrorDomain代码= -11800“操作无法完成” UserInfo =
{NSLocalizedDescription =操作无法完成,NSUnderlyingError = 0x17554440 {Error Domain
= NSOSStatusErrorDomain Code = -12780“(null)”},NSLocalizedFailureReason =
An发生未知错误(-12780)}

我认为这与我使用不赞成使用的方法有关AVCaptureDevice.devices()。因此,我想知道如何使用它AVCaptureDeviceDiscoverySession

提前谢谢你的帮助!


问题答案:

您可以通过以下方式获得前置摄像头:

AVCaptureDevice.default(.builtInWideAngleCamera, for: AVMediaType.video, position: .front)

后置摄像头:

AVCaptureDevice.default(.builtInWideAngleCamera, for: AVMediaType.video, position: .back)

和麦克风:

AVCaptureDevice.default(.builtInMicrophone, for: AVMediaType.audio, position: .unspecified)


 类似资料:
  • 本文向大家介绍Android中判断是否有前置摄像头、后置摄像头的方法,包括了Android中判断是否有前置摄像头、后置摄像头的方法的使用技巧和注意事项,需要的朋友参考一下 通常我们进行摄像头操作,如扫描二维码需要判断是否有后置摄像头(Rear camera),比如Nexus 7 一代就没有后置摄像头,这样在尝试使用的时候,我们需要进行判断进行一些提示或者处理。 以下代码为一系列的方法,用来判断是否

  • 我们希望使用后摄像头进行扫描,并选择正确的后摄像头-主摄像头,而不是宽镜头摄像头。 较新的移动设备(例如三星galaxy s10)有几个前后摄像头。调用enumerateDevices()时,我们会得到前后摄像头的列表。我们想从后摄像机列表中选择主摄像机。我们可以使用约束来选择后置摄像机(面向:“环境”),但我们不知道如何区分每个设备的摄像机是主摄像机还是宽镜头摄像机。

  • 本文向大家介绍如何在iOS中同时使用前置和后置摄像头?,包括了如何在iOS中同时使用前置和后置摄像头?的使用技巧和注意事项,需要的朋友参考一下 截至目前,您无法同时访问前置和后置摄像头。由于两个摄像头的会话都不相同,因此一个摄像头将立即开始,其他会话将消失。 根据由苹果支持团队回答的苹果开发者论坛- “应用程序无法同时从前置和后置摄像头捕获。您可以从一个切换到另一个(之间有短暂的延迟),但不能同时

  • 问题内容: 我正在尝试使前置摄像头具有实时取景。我可以使用以下方法获取后置摄像头: 但是我似乎找不到找到前置摄像头的方法。如何更改上面的代码以使用前置摄像头? 问题答案: 这是我的一个项目的工作示例,用于获取前置摄像头。这是在Objective-C中实现的,但事实证明它是可行的,并且足够容易转换为快捷方式。 在Swift 3.2+中:

  • 问题内容: 我正在使用来开发iPad2中的前置摄像头应用程序。 当我捕获图像时,它显示为从左向右翻转。 我该如何纠正? 问题答案: 您可以使用源图像翻转图像 编辑: 添加了快速代码