swift - AV 基金会关于相机问题

标签 swift swift3 avcapturedevice

我正在尝试使用自定义相机,并将代码从 swift 2 转换为 swift 3;我已经很完整了;但是我收到与设备有关的错误;我想要一个后置和前置摄像头,在 swift 2 之前,您可以像这样设置设备:

 let devices = AVCaptureDevice.devices(withMediaType: AVMediaTypeVideo) as! [AVCaptureDevice]

现在我正在使用 xcode 告诉我使用的是:

let devices = AVCaptureDeviceDiscoverySession(deviceTypes: [AVCaptureDevice], mediaType: AVMediaTypeVideo, position: AVCaptureDevicePosition)

但是我收到这个错误

cannot convert value of type 'AVCaptureDevice.type' to expected argument type '[AVCaptureDeviceType]'

最佳答案

对于 deviceTypes 参数,您需要传入一个或多个 AVCaptureDeviceType 的数组。您的选择是:

  • 内置麦克风
  • 内置广角摄像头
  • 内置长焦相机
  • 内置双摄像头

参见 here有关这些常量的更多信息。

话虽如此,您可能正在寻找类似的东西:

let devices = AVCaptureDeviceDiscoverySession(deviceTypes: [AVCaptureDeviceType.builtInWideAngleCamera, AVCaptureDeviceType.builtInTelephotoCamera], mediaType: AVMediaTypeVideo, position: AVCaptureDevicePosition.unspecified)

关于swift - AV 基金会关于相机问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41515077/

相关文章:

iOS - 如何在 Sprite 套件中水平滚动

ios - 在 iOS 相机中停止相机捕获 session

ios - UIVisualEffectView 和 UITableView

ios - 在 Swift 中从 ATR 确定卡号

swift - 改变用 let 关键字声明的数组

ios - 不能将 AVCaptureDevice 与闪光灯一起使用

ios - 记录裁剪视频方形长宽比 AVCaptureSession

ios - 如何查看两个 UIImageView 是否已接触

ios - 更新多个同名的 Spritekit 节点

swift - 在函数 swift 3 中发送不同的 Nib