0

再生中にアンダーランが発生した場合、ALSA によって (コールバックなどを介して) 通知される可能性はありますか?

私は snd_async_handler_t を使用していましたが、残念ながらsnd_async_add_pcm_handler()が失敗し、この関数が実装されていないことがわかりました。

4

1 に答える 1

1

ALSA は、現在の位置を読み取るまで、アンダーランが発生したことを認識しません。

  • アプリケーションが位置を必要とする ALSA 関数を呼び出したとき、または
  • 割り込みハンドラーで、現在待機中の snd_pcm_write*() 呼び出しを起こします。

したがって、実際には、個別の通知は意味がありません。

通常は、snd_pcm_write*() の戻り値を確認するか、明示的に snd_pcm_status() を呼び出すだけです。

于 2012-05-30T11:31:24.853 に答える