1

私は現在、オーディオファイル(mp3ですが、デコード時間を短縮するためにWAVに変更できます)を再生し、同時にオーディオを録音するアプリを開発しています。
同期のために、オーディオの再生が開始された正確な時間を推定したいと考えています。

AudioQueue を使用して各バッファーを制御すると、最初のバッファーが空になった時間を推定できます。私の質問は次のとおりです。

  1. AudioQueue バッファが排出されてから実際に再生されるまでのハードウェア遅延はどのくらいですか?
  2. (ハードウェア遅延測定で) より優れたパフォーマンスを持つ低レベル API (具体的には AudioUnit) はありますか?
  3. バッファのデコードなしで、AudioQueue を使用してハードウェア レイテンシの上限を設定することは可能ですか? 5ms は私が扱えるもののように思えますが、それ以上は別のアプローチが必要になります。

ありがとう!

4

1 に答える 1

0

Audio Queue API は Audio Units の上で実行されるため、生の非圧縮オーディオを使用する RemoteIO Audio Unit は、より低く、より確定的なレイテンシーを可能にします。一部の iOS デバイスで (オーディオ セッション API を使用して) 設定できる最小 RemoteIO バッファー期間は、アプリケーションの状態に応じて約 6 ~ 24 ミリ秒です。レイテンシ測定ポイントに使用しているイベントによっては、再生と記録の両方のレイテンシに下限が設定される場合があります。

圧縮されたオーディオをデコードすると、デコード開始から約 1 桁または 2 倍の遅延が追加される可能性があります。

于 2012-08-21T20:48:56.503 に答える