This code was working fine in other project in swift 2.3. But As I am trying to implement it in swift 3.0, I am getting EXC_BAD_ACCESS. in
audioRecorder = try AVAudioRecorder(url: self.directoryURL() as! URL , settings: settings)
Code:
func setUpAudioRecording()
{
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
try audioSession.setActive(true)
let settings = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 44100,
AVNumberOfChannelsKey: 2,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]
audioRecorder = try AVAudioRecorder(url: self.directoryURL() as! URL , settings: settings)
audioRecorder.delegate = self
audioRecorder.isMeteringEnabled = true
audioRecorder.prepareToRecord()
}
catch let error
{
print(error.localizedDescription)
}
}
func directoryURL() -> NSURL? {
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let url = NSURL(fileURLWithPath: path)
let audioURL = url.appendingPathComponent("recording.3gp")
return audioURL as NSURL?
}