Linux / ALSA:将帧写入声卡时进行回调

时间:2019-06-25 14:26:58

标签: c++ linux alsa

我是声音编程和ALSA的新手。我想创建一个小应用程序,例如,当使用snd_pcm_writei(...)将一帧数据写入ALSA时,该应用程序会输出到控制台。那有可能吗? 目前,我正在考虑向ALSA注册回调,因此当应用程序调用{​​{1}}时,将执行回调。但是我不确定那是如何工作的。

1 个答案:

答案 0 :(得分:1)

您可以使用

  • 阻塞模式(默认设置),其中snd_pcm_write*()仅在所有数据都已写入环形缓冲区(或发生错误)时返回,或者
  • 非阻塞模式(打开时使用SND_PCM_NONBLOCKsnd_pcm_nonblock()启用),您可以在其中使用poll() / epoll()等以获得通知。

使用ALSA异步处理程序仅适用于某些设备,并且具有信号处理程序的所有缺点。已弃用。