
130
|
第
4
章
播放开始出现一个短暂的延迟。因此总是使用预加载技术是一种比较好的做法。不
过有一点需要注意,如果我们有大量的声音文件,预加载会导致占用较多的内存,
因此需要谨慎。
4.2
用
AVAudioRecorder
进行录音
问题
如何用设备自带的麦克风记录玩家发出的声音?
解决方案
答案是
AVAudioRecorder
。它就像是
AVAudioPlayer
的亲兄弟(参考问题
4.1
),
AVAudioRecorder
也属于
AVFoundation
框架的一部分,因此我们也需要在源文件
中导入
AVFoundation
模块才能使用它。接着就可以创建一个
AVAudioRecorder
了。
像这样:
// destinationURL
是录音文件存放地址
do {
audioRecorder = try AVAudioRecorder(url:destinationURL, settings: [:])
} catch let error {
print("Couldn't create a recorder: \(error)")
}
audioRecorder?.prepareToRecord()
要开始录音,调用
record
方法:
audioRecorder?.record()
要停止录音,调用
stop
方法:
audioRecorder?.stop()
录音结束,录音文件将存放到创建
AVAudioRecorder
对象时指定的
URL
位置,你
可以用
AVAudioPlayer
或任何音频库播放这个录音文件。