我正在使用的应用程序仅在生成足够的声音后才播放声音。假设我点击鼠标 10 次,没有声音,然后在这十次点击之后我会听到十次鼠标点击声音(例如)
我发现缓解这个问题的唯一方法是设置一个非常短的缓冲区大小,我不想这样做。
我一直在尝试使用 start_threshold sw 参数,但这没有效果。
似乎我应该能够在写入指定数量的小于缓冲区大小的数据时强制它播放,这是正确的吗?这就是 start_threshold 似乎表明的,因为周期长度可能比缓冲区短得多(或者我在示例中看到过)。
我的代码是这样的:
调用硬件参数设置
获取包含数据的字节数组
循环并写入缓冲区,每次加上一个字节偏移量
调用 start (这应该强制它播放,对吗??)
如果有 -EPIPE,请调用 prepare 并将 0 添加到偏移量(我认为这是唯一一次播放。)
谢谢!