我在点击“录制”按钮后发现了延迟,所以我想出了一个导致其他问题的解决方案。我的解决方案是经常准备录音机,但这将始终创建一个空文件,有时永远不会记录。请注意,这仅发生在物理设备上,而不是模拟中。
有没有办法(1)减少录制文件时的延迟而不创建空文件或(2)有效清理未录制的文件?似乎每次应用或视图加载时都应该运行(2)。
第0部分:我的变量
var audioRecorder : AVAudioRecorder!
var currentAudioFilename = "" // the file to play
var nextAudioFilename = "" // the file to record
let audioSession = AVAudioSession.sharedInstance()
第1部分:我的setupRecorder()
do {
try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
nextAudioFilename = NSUUID().UUIDString + ".wav"
try audioRecorder = AVAudioRecorder(URL: self.directoryURL(nextAudioFilename)!,
settings: recordSettings)
}
catch {}
audioRecorder.prepareToRecord()
audioRecorder.delegate = self
print("Recorder setup with new name: current-" + currentAudioFilename + " next-" + nextAudioFilename + " forceSetup-\(forceSetup)")
第2部分:
// set player's filename to recorder's filename
currentAudioFilename = nextAudioFilename
if !audioRecorder.recording {
do {
try audioSession.setActive(true)
audioRecorder.record()}
catch {print("could activate the recorder")
}
}
提前致谢!
丹