1

で音声を録音していAVAudioRecorderます。ただし、録音を開始する前に短い音を出したいです。でこれをやっていAudioServicesCreatSystemSoundIdます。効果音を呼び出した後にスレッドを一時停止する必要があることに気付きました。そうしないと、再生が開始され、AVAudioRecord record呼び出しによって中断され、録音が再度停止された後に再生が終了します。

だから私はこのようなものを持っています:

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

問題は、遅延に気付くことです。実際の録音を遅らせることなく音を出すアプリ (Voxer など) があることは知っています。ブロック内の最初の 2 行を分割しようとしましたが、それは役に立ちませんでした。どうやってやっているの?

ありがとう

4

1 に答える 1

0

低遅延 (目立った開始遅延がない) オーディオ録音の場合、AVAudioRecorder API の代わりに、事前に開始された RemoteIO Audio Unit を使用します。

于 2012-09-12T00:57:35.467 に答える