Мой сценарий, я пытаюсь создать audio
record
и сохранить файл в iPhone
documentdirectory
.
Я выполнил функцию записи, но мне нужно реализовать save file
имя, основанное на вводе пользователем. После audio
record
, если пользователь нажимает кнопку сохранения, я спрашиваю file
имя пользователя по alertviewcontroller
с textfield
.
Здесь мое аудио-файл сохраняется с помощью static
имени файла (audio.m4a), потому что внутри viewdidload
я реализовал код каталога сохранения документа, но я не знаю, как реализовать имя файла сохранения на основе пользовательского ввода в действии сохранения.
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()
}