【发布时间】:2016-05-31 22:33:54
【问题描述】:
我在自定义 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 的子类时它停止工作。如果需要更多代码,任何帮助将不胜感激,请告诉我谢谢!
【问题讨论】:
-
您可以打印捕获的异常并编辑您的帖子吗?
-
什么?这段代码我没有收到任何错误
-
当您说“catch is throws”时,您的意思是您在控制台中看到了“dang”吗?如果是,则抛出异常
标签: ios swift avcapturesession avcapturedevice