diff --git a/ios/Classes/SwiftFlutterAudioRecorderPlugin.swift b/ios/Classes/SwiftFlutterAudioRecorderPlugin.swift index 23e774c..e52f851 100644 --- a/ios/Classes/SwiftFlutterAudioRecorderPlugin.swift +++ b/ios/Classes/SwiftFlutterAudioRecorderPlugin.swift @@ -64,7 +64,14 @@ public class SwiftFlutterAudioRecorderPlugin: NSObject, FlutterPlugin, AVAudioRe AVNumberOfChannelsKey: 1, AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue ] - + + guard let destinationUrl = URL(string: mPath) else { + let errorMessage = "Failed to initialize URL path from string: \(mPath)" + print(errorMessage) + result(FlutterError(code: "", message: errorMessage, details: error)) + return + } + do { #if swift(>=4.2) try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playAndRecord, options: AVAudioSession.CategoryOptions.defaultToSpeaker) @@ -72,7 +79,7 @@ public class SwiftFlutterAudioRecorderPlugin: NSObject, FlutterPlugin, AVAudioRe try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, with: AVAudioSessionCategoryOptions.defaultToSpeaker) #endif try AVAudioSession.sharedInstance().setActive(true) - audioRecorder = try AVAudioRecorder(url: URL(string: mPath)!, settings: settings) + audioRecorder = try AVAudioRecorder(url: destinationUrl, settings: settings) audioRecorder.delegate = self audioRecorder.isMeteringEnabled = true audioRecorder.prepareToRecord()