2012-09-11 30 views
1

我正在用AVAudioRecorder录制音频。然而,我想在录制开始之前播放一段短暂的声音。我正在用AudioServicesCreatSystemSoundId这样做。我注意到我需要在调用音效后暂停线程,否则它将开始播放,然后被呼叫中断,然后在录音再次停止后结束播放。在AVAudioRecorder之前播放音效

所以我有这样的事情:

AudioServicesCreateSystemSoundID((__bridge CFURLRef) pathURL, &audioEffect); 
AudioServicesPlaySystemSound(audioEffect); 
[NSThread sleepForTimeInterval:0.7]; 
[_audioRecorder record]; 

的问题是,一个告示的延迟。我知道有些应用程序(如Voxer)可以在不延迟实际录制的情况下发出声音。我尝试在一个块中分割前两行,但这没有帮助。他们是如何做到的呢?

感谢

回答

0

低延迟(没有明显的延迟启动)音频录制,使用开始前RemoteIO音频单元,而不是AVAudioRecorder API的。