【发布时间】:2013-02-14 16:14:22
【问题描述】:
使用不断输出数据的 USB 音频设备(它是具有多个通道的 HID)。
我希望实现的是在设备发出信号之前忽略音频。那时我会开始监控提要。来自设备的第二个信号表明我可以重新忽略数据。我已经在非阻塞模式下打开了该设备,因此它不会干扰其他 USB 信号进入。
除了当我开始读取数据(通过snd_pcm_readi)时,我得到一个 EPIPE 错误,表明缓冲区溢出。这可以通过每次调用snd_pcm_prepare 来解决,但我希望有一种方法可以让缓冲区清空而我忽略它。
我查看了snd_pcm_drain 和snd_pcm_drop,但它们阻止了 PCM,我宁愿让它保持打开状态。
建议?
【问题讨论】:
-
为什么要保持 PCM 设备运行?您是否测量到
snd_pcm_start的延迟太高? -
嗯 - 这是一个很好的问题。也许我可以通过简单地忽略它..好吧..忽略它..