Saving Recorded Audio (Swift)

混江龙づ霸主 提交于 2019-12-03 08:48:12

I think the file is probably still there when the app quits, the problem is that your viewDidLoad() method immediately calls setupRecorder(), which in turn creates a new AVAudioRecorder using exactly the same filename as last time – overwriting your work.

To help you re-arrange your code, go to audioRecorderDidFinishRecording() and change print(recordedAudio.title) to print(recorder.url). If you're running in the iOS Simulator that will give you a long path to an exact filename on your OS X disk drive.

If you browse there using Finder you'll be able to see your "audioFile.m4a" file being created and overwritten again and again, which will let you see exactly when your problem occurs. If you want to see the exact problem, set a breakpoint in your code when you call prepareToPlay(), check your file's size, then press F6 to execute that line of code, then check your file's size again – you should see it being cleared :)

The solution is probably to generate a new filename every time. You could use NSUUID for that if you wanted:

let filename = NSUUID().UUIDString + ".m4a"

You might find my tutorial on AVAudioRecorder useful.

Note: your getCacheDirectory() method is poorly named. It's fetching the documents directory, not the caches directory, which is a bit of a red herring when trying to debug issues like this.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!