Linux/ALSA: 帧写入声卡回调
Linux/ALSA: Callback when frame is written to sound card
我是声音编程和 ALSA 的新手。我想创建一个小应用程序,例如,当使用 snd_pcm_writei(...)
将一帧数据写入 ALSA 时,它会打印到控制台。这可能吗?如果可能的话,怎么做?
目前,我正在考虑向 ALSA 注册一个回调,以便在应用程序调用 snd_pcm_writei(...)
时执行回调。但我不确定它是如何工作的。
您可以使用
- blocking mode(默认),其中
snd_pcm_write*()
returns只有当所有的数据都写入ring buffer时(或者当一个发生错误),或
- non-blocking模式(打开时用
SND_PCM_NONBLOCK
启用,或snd_pcm_nonblock()
),其中可以使用poll()
/epoll()
等以获取通知。
使用 ALSA 异步处理程序仅适用于某些设备,并且具有信号处理程序的所有缺点;它已被弃用。
我是声音编程和 ALSA 的新手。我想创建一个小应用程序,例如,当使用 snd_pcm_writei(...)
将一帧数据写入 ALSA 时,它会打印到控制台。这可能吗?如果可能的话,怎么做?
目前,我正在考虑向 ALSA 注册一个回调,以便在应用程序调用 snd_pcm_writei(...)
时执行回调。但我不确定它是如何工作的。
您可以使用
- blocking mode(默认),其中
snd_pcm_write*()
returns只有当所有的数据都写入ring buffer时(或者当一个发生错误),或 - non-blocking模式(打开时用
SND_PCM_NONBLOCK
启用,或snd_pcm_nonblock()
),其中可以使用poll()
/epoll()
等以获取通知。
使用 ALSA 异步处理程序仅适用于某些设备,并且具有信号处理程序的所有缺点;它已被弃用。