バッファのサイズに関係なく、AudioQueueNewInputに提供されるコールバックはほぼ同じ時間間隔で発生します。
例えば:
.05秒のバッファがあり、44kで記録している場合、コールバックは最初に約.09秒で呼び出され、次に2番目の呼び出しが(.001秒)の直後に発生します。次に、再び〜.09秒待ちます。バッファサイズが.025の場合。.09秒待ってから、ほぼ瞬時にさらに3つのバッファーが表示されます。
サンプルレートを変更すると、レイテンシーが増加します。
16ビット8kオーディオを録音すると、バッファフラッドの間に0.5秒の遅延が発生します。
したがって、舞台裏で使用されている8000バイトのバッファがあるのではないかと思います。いっぱいになると、コールバックは空になるまで指定されたバッファで実行されます。
できるだけレイテンシーを抑えて16k16ビットオーディオを録音したいと思います。上記のことを考えると、私は常に約1/4秒のレイテンシーを目にします。レイテンシーを減らす方法はありますか?内部バッファサイズを設定するためのオーディオセッションプロパティはありますか?kAudioSessionProperty_PreferredHardwareIOBufferDurationを試しましたが、役に立たないようです。
ありがとう!