我正在用 录制音频AVAudioRecorder
。但是,我想在录制开始之前播放一个简短的声音。我正在这样做AudioServicesCreatSystemSoundId
。我注意到我需要在调用音效后暂停线程,否则它将开始播放,然后被AVAudioRecord
record
调用中断,然后在再次停止录制后完成播放。
所以我有这样的事情:
AudioServicesCreateSystemSoundID((__bridge CFURLRef) pathURL, &audioEffect);
AudioServicesPlaySystemSound(audioEffect);
[NSThread sleepForTimeInterval:0.7];
[_audioRecorder record];
问题是人们注意到了延迟。我知道有一些应用程序(比如 Voxer)可以在不延迟实际录音的情况下发出声音。我尝试将前两行拆分为一个块,但这没有帮助。他们是怎么做到的呢?
谢谢