ALSAは循環バッファを埋めるために書き込み関数を使用し、サウンドカードはサンプルを再生してバッファを排出します。アプリケーションは、ストリームの次のフラグメントでバッファを再充填する役割を担います。もしアプリケーションアプリケーションがバッファをいっぱいにして遅くすると、音楽にギャップがあります。アプリケーションがすぐに再生しないと、まだ再生されていないサンプルは、バッファーが円形であるため、新しいサンプルで上書きされます。ALSAバッファをタイムリーに埋め込む方法
私の質問は、バッファをどのくらい補充する必要があるのか、どのくらいそれを知っているかです。 alsaによって定義されたいくつかのイベントがありますか、それとも他のテクニックですか?
ポーリングでは多くのプロセッサ時間が使用されます。 alsaにはコールバックに基づく解決策がありますか? – Trismegistos
'poll()'はポーリングしていません。 –
タイムアウト0が与えられると、実際にポーリングがポーリングされます。 0より大きいタイムアウトが与えられたときにブロックされます。 – Trismegistos