My scenario, I am trying to create audio record and save file into iPhone documentdirectory.
I have done recording functionality but I need to implement save file name based on user input. After audio record, If user click save button I am asking file name to user by alertviewcontroller with textfield.
Here, my audio file saving by static file name(audio.m4a) because inside viewdidload I implemented save document directory code but I dont know how to implement save file name based on user input within save action.
override func viewDidLoad() {
super.viewDidLoad()
let session = AVAudioSession.sharedInstance()
try? session.setCategory(AVAudioSessionCategoryPlayAndRecord)
try? session.overrideOutputAudioPort(.speaker)
try? session.setActive(true)
if let basePath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {
let baseComponents = [basePath,"audio.m4a"]
if let audioURL = NSURL.fileURL(withPathComponents: baseComponents) {
var settings: [String: Any] = [:]
self.audioURL = audioURL
settings[AVFormatIDKey] = Int(kAudioFormatMPEG4AAC)
settings[AVSampleRateKey] = 44100.0
settings[AVNumberOfChannelsKey] = 2
audioRecorder = try? AVAudioRecorder(url: audioURL, settings: settings)
audioRecorder?.prepareToRecord()
}
}
}
@IBAction func record_click(_ sender: Any) {
if let audioRecorder = self.audioRecorder {
if (audioRecorder.isRecording) {
audioRecorder.stop()
} else {
audioRecorder.record()
}
}
}
// Within below action I am calling alertview with textfield for asking file name
@IBAction func save_click(_ sender: Any) {
self.savefileAlertView()
}