Вот код, который я использую для создания аудиофайла, здесь все работает нормально:
func startRecording() {
let audioFilename = getDocumentsDirectory().appendingPathComponent("Meeting_Audio.m4a")
let settings = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 12000,
AVNumberOfChannelsKey: 1,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]
do {
audioRecorder = try AVAudioRecorder(url: audioFilename, settings: settings)
audioRecorder.delegate = self
audioRecorder.record()
} catch {
finishRecording(success: false)
}
}
func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder, successfully flag: Bool) {
makeFileData()
}
@IBAction func onEndMeetingButtonClicked(_ sender: UIButton) {
finishRecording(success: true)
}
func finishRecording(success: Bool) {
audioRecorder.stop()
audioRecorder = nil
if success {
print("recording succeeded :)")
} else {
print("recording failed :(")
}
}
А вот упрощенная версия моей функции, которая по-прежнему воспроизводит проблему. Я вызываю эту функцию из audioRecorderDidFinishRecording
. Кажется, я не могу получить путь к файлу.
func makeFileData() {
if let filePath = Bundle.main.path(forResource: "Meeting_Audio", ofType: "m4a"){
print("File path loaded.")
if let fileData = NSData(contentsOfFile: filePath) {
print("File data loaded.")
}
}
}