我是声音编程和ALSA的新手。我想创建一个小应用程序,例如,当使用snd_pcm_writei(...)
将一帧数据写入ALSA时,该应用程序会输出到控制台。那有可能吗?
目前,我正在考虑向ALSA注册回调,因此当应用程序调用{{1}}时,将执行回调。但是我不确定那是如何工作的。
答案 0 :(得分:1)
您可以使用
snd_pcm_write*()
仅在所有数据都已写入环形缓冲区(或发生错误)时返回,或者SND_PCM_NONBLOCK
或snd_pcm_nonblock()
启用),您可以在其中使用poll()
/ epoll()
等以获得通知。使用ALSA异步处理程序仅适用于某些设备,并且具有信号处理程序的所有缺点。已弃用。