小弟最近在研究alsa捕获声卡输入,使用的是linux C 开发环境
在使用select函数获取声卡输入时,无论是否有声音输入,都会读到数据。
具体做法:
1. 使用snd_pcm_open 打开声卡并配置
2. 使用snd_pcm_poll_descriptors获取file descriptor
3. 使用FD_SET函数将声卡的file decriptor加入set集合
4. 使用select函数读取声卡的输入
5. 使用snd_pcm_readi获取输入声音流
目前的问题是,在第4步时,无论是否有声音输入,都会读取到一些数据(具体是什么无法解析)。而正常情况下(比如读取mqueue),在没有输入时应该会在阻塞在select这里。
请大家帮忙看看应该如何处理。