我正在使用AVAudioRecorder
录制音频。但是我希望在录制开始之前播放一个简短的声音。我正在使用AudioServicesCreatSystemSoundId
执行此操作。我注意到我需要在调用声音效果后暂停线程,否则它将开始播放,然后被AVAudioRecord
record
调用打断,然后在再次停止录制后完成播放。 / p>
所以我有这样的事情:
AudioServicesCreateSystemSoundID((__bridge CFURLRef) pathURL, &audioEffect);
AudioServicesPlaySystemSound(audioEffect);
[NSThread sleepForTimeInterval:0.7];
[_audioRecorder record];
问题在于注意到延迟。我知道有些应用程序(如Voxer)可以在不延迟实际录制的情况下发出声音。我尝试在一个区块中分割前两行,但这没有帮助。他们是怎么做到的?
由于
答案 0 :(得分:0)
对于低延迟(无明显的启动延迟)音频录制,请使用预启动的RemoteIO音频单元而不是AVAudioRecorder API。