私が提供するバッファのサイズにかかわらず、AudioQueueNewInputに提供されるコールバックは、ほぼ同じ時間間隔で発生します。例えばAudioQueueNewInputコールバック待ち時間
:
あなたが0.05秒のバッファを持っており、44Kで最初の0.09秒で約呼ばれるコールバックを記録し、その後、2回目の呼び出しは、右(0.001秒)後に発生した場合。その後、~09秒待ってください。あなたのバッファサイズが.025だったら。 .09秒待ってからすぐに3つのバッファをほぼ瞬時に見ることができます。
サンプルレートを変更するとレイテンシが増加します。
16ビット8kオーディオを録音すると、バッファフラッド間に0.5秒の遅延が発生します。
私は、舞台裏で使用されている8000バイトのバッファがあると思われます。それが満たされると、私のコールバックは空にされるまで、指定されたバッファで実行されます。
できるだけ少ないレイテンシーで16kの16ビットオーディオを録音したいと思います。上記を考えると、私はいつも約4分の1の待ち時間を見ます。待ち時間を短縮する方法はありますか?内部バッファサイズを設定するオーディオセッションプロパティはありますか?私はkAudioSessionProperty_PreferredHardwareIOBufferDurationを試しましたが、それは役に立たないようです。
ありがとうございました!
RemoteIO APIで少し作業した後、私は非常に低いレイテンシーの録音を得ることができました。このウェブサイトは助けになりました。 http://atastypixel.com/blog/using-remoteio-audio-unit/ – madmik3