我在自定义UIView中创建捕获会话时遇到问题。我像这样设置委托
class Camera: UIView, AVCaptureFileOutputRecordingDelegate, AVAudioRecorderDelegate {
}
然后我设置了所有内容并像这样设置代理
self.recordingDelegate? = self
captureSession.sessionPreset = AVCaptureSessionPresetHigh
let devices = AVCaptureDevice.devices()
for device in devices {
if (device.hasMediaType(AVMediaTypeVideo)) {
if(device.position == AVCaptureDevicePosition.Back) {
captureDevice = device as? AVCaptureDevice
if captureDevice != nil {
beginSession()
}
}
}
}
一切顺利。但是,在beginSession函数中:
func beginSession() {
let err : NSError? = nil
do {
self.captureSession.addInput(try AVCaptureDeviceInput(device: self.captureDevice!))
}
catch {
print("dang")
}
if err != nil {
print("error: \(err?.localizedDescription)")
}
...
当我尝试添加捕获设备输入时,抛出了捕获,因为它没有添加,我无法弄清楚原因。
我目前正在使用的所有代码在我在UIViewController中使用之前工作正常但是当我将其切换到UIView的子类时它停止工作。如果需要更多代码,我们将不胜感激,谢谢!谢谢!
答案 0 :(得分:2)
我认为我正在使用的iOS设备没有启用相机因为某些原因导致输入无法添加导致预览图层无法捕获任何数据