Fixed optional checking for audio and video device (e.g. prevent crashing on the simulator)

This commit is contained in:
Michael Prummer 2018-05-03 10:43:39 +02:00
parent 85d713d643
commit c88e8f3d03

View file

@ -712,8 +712,8 @@ open class SwiftyCamViewController: UIViewController {
} }
do { do {
let videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice!) if let videoDevice = videoDevice {
let videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice)
if session.canAddInput(videoDeviceInput) { if session.canAddInput(videoDeviceInput) {
session.addInput(videoDeviceInput) session.addInput(videoDeviceInput)
self.videoDeviceInput = videoDeviceInput self.videoDeviceInput = videoDeviceInput
@ -724,6 +724,8 @@ open class SwiftyCamViewController: UIViewController {
session.commitConfiguration() session.commitConfiguration()
return return
} }
}
} catch { } catch {
print("[SwiftyCam]: Could not create video device input: \(error)") print("[SwiftyCam]: Could not create video device input: \(error)")
setupResult = .configurationFailed setupResult = .configurationFailed
@ -738,17 +740,19 @@ open class SwiftyCamViewController: UIViewController {
return return
} }
do { do {
let audioDevice = AVCaptureDevice.default(for: AVMediaType.audio) if let audioDevice = AVCaptureDevice.default(for: AVMediaType.audio){
let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice!) let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice)
if session.canAddInput(audioDeviceInput) { if session.canAddInput(audioDeviceInput) {
session.addInput(audioDeviceInput) session.addInput(audioDeviceInput)
} } else {
else {
print("[SwiftyCam]: Could not add audio device input to the session") print("[SwiftyCam]: Could not add audio device input to the session")
} }
} else {
print("[SwiftyCam]: Could not find an audio device")
} }
catch {
} catch {
print("[SwiftyCam]: Could not create audio device input: \(error)") print("[SwiftyCam]: Could not create audio device input: \(error)")
} }
} }