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,18 +712,20 @@ 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
} else { } else {
print("[SwiftyCam]: Could not add video device input to the session") print("[SwiftyCam]: Could not add video device input to the session")
print(session.canSetSessionPreset(AVCaptureSession.Preset(rawValue: videoInputPresetFromVideoQuality(quality: videoQuality)))) print(session.canSetSessionPreset(AVCaptureSession.Preset(rawValue: videoInputPresetFromVideoQuality(quality: videoQuality))))
setupResult = .configurationFailed setupResult = .configurationFailed
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 {
} print("[SwiftyCam]: Could not add audio device input to the session")
else { }
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)")
} }
} }