私は最近、iOS向けの非常に特定のプロジェクトに取り組んでいました。私の研究はほとんど最終的なコードになりました。私は今までに見つけたすべての極端な困難を解決しましたが、この上で私は手がかりを持っていないようです(理由や解決の可能性について)。AudioToolbox - 録音中のコールバックの遅れ
オーディオキュー(サンプルレート44100、リニアPCMフォーマット、チャンネルごとに16ビット、フレームごとに2バイト、フレームごとに1チャンネル...)を設定し、12オーディオバッファでサウンドの録音を開始します。しかし、4回のコールバックごとに遅延があるようです。
状況は次のとおりです。最初の4コールバックは、それぞれ約2ミリ秒の間隔で呼び出されます。しかし、4番目と5番目の間には約60msの遅延があります。同じことが8日と9日、12日と13日に起こります。
フレームあたりのバイト数と遅延の瞬間との間には関係があるようです。私はこれを知っています。フレームごとに4バイトに変更すると、私は8番目と9番目の間、そして16番目と17番目の間、24番目と25番目の間に遅れがあります。それにもかかわらず、遅延の瞬間とバッファの数との間の関係。
コールバック関数は、2つのことだけを行います:オーディオデータ(inBuffer-> mAudioData)をクラスが使用できる配列に格納します。別のAudioQueueEnqueueBufferを呼び出して、現在のバッファをキューに戻します。
誰もこの問題を既に解決しましたか?誰でも知っている、少なくとも、それの原因となることができますか?
ありがとうございます。
ありがとう、それはまさに私が探していた道です。リモートIO APIを使用してコードを書き直すには数時間かかりました。ドキュメンテーションとサンプルコードは単純ではなく、理解するための「トラップ」がたくさんあるためです。しかし、それは最終的に今働いています、そして、私はあなたの答えが完璧だと言うことができます。遅延はありませんが、iPhone 4では約2.94msの非常に安定したシーケンスが可能な限り最速の構成です。 –