使用不断输出数据的 USB 音频设备(它是具有多个通道的 HID)。
我希望实现的是在设备发出信号之前忽略音频。那时我会开始监控提要。来自设备的第二个信号表明我可以重新忽略数据。我已经以非阻塞模式打开了该设备,因此它不会干扰其他 USB 信号进入。
这工作正常,除了当我开始读取数据(通过snd_pcm_readi
)时,我收到一个 EPIPE 错误,指示缓冲区溢出。这可以通过snd_pcm_prepare
每次调用来解决,但我希望有一种方法可以让缓冲区清空而我忽略它。
我看过snd_pcm_drain
,snd_pcm_drop
但这些停止了 PCM,我宁愿让它保持打开状态。
建议?