1

我正在用 录制音频AVAudioRecorder。但是,我想在录制开始之前播放一个简短的声音。我正在这样做AudioServicesCreatSystemSoundId。我注意到我需要在调用音效后暂停线程,否则它将开始播放,然后被AVAudioRecord record调用中断,然后在再次停止录制后完成播放。

所以我有这样的事情:

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

问题是人们注意到了延迟。我知道有一些应用程序(比如 Voxer)可以在不延迟实际录音的情况下发出声音。我尝试将前两行拆分为一个块,但这没有帮助。他们是怎么做到的呢?

谢谢

4

1 回答 1

0

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

于 2012-09-12T00:57:35.467 回答