
声音
|
131
讨论
AVAudioRecorder
对象就好比
AVAudioPlayer
对象一样,也需要保持一个强引用以
防它被意外释放。
要进行录音,首先要提供一个文件地址,用于存放录音文件。如果文件不存在,
AVAudioRecorder
会自动创建这个文件,如果文件存在,
AVAudioRecorder
将会擦
除文件中的内容并覆写它。因此,如果你要避免录音数据被意外擦除,不要用同一
个地址录两次音,或者在录音完成后将录音文件移到别的地方。
录音后声音文件应该存放到游戏的安全沙盒中。一个比较好的选择是放到游戏的
Documents
目录中;在这个文件中存放的文件在设备同步时会被备份。
通过
FileManager
类来获得游戏的
Documents
目录:
let documentsURL = FileManager.default
.urls(for: FileManager.SearchPathDirectory.documentDirectory,
in:FileManager.SearchPathDomainMask.userDomainMask).last!
一旦你准备好文件路径,你就可以创建它的
URL
。注意,
URL
所指向的文件不一
定存在,如果这样,在录音开始后会真正创建这个文件:
return documentsURL.appendingPathComponent("RecordedSound.wav")
4.3
使用多个
AVAudioPlayer
问题
虽然我们可以同时使用多个
AVAudioPlayer ...