reading/writing 到同一设备时 Portaudio 挂起

Portaudio hangs when reading/writing to same device

问题:

我似乎无法在带有 ARM v7l 处理器的 32 位 Ubuntu 系统上同时实现有效的音频输入和输出,我不明白为什么。

总结:

我编写了 PortAudio 代码,可以在主要平台和架构(Windows、Linux, OS X,x32 和 x64)。

出于某种原因,在我最需要工作的 ARM v7l 平台上 (NVIDIA Jetson),音频回调在正常运行很短的一段时间后就停止了。它总是在任意数量的帧之后,这在运行和不同的 Jetsons(具有不同的 OSes)之间是恒定的。

我发现只有当我为输入和输出初始化 PortAudio 流时才会发生这种情况,但是如果我为 outputParams 传递 nullptr,一切正常。

我试过的:

诊断:

这似乎是 PortAudio 中的错误,我发现 bug reports 记录了类似的行为。我正在遵循非常简单的记录程序来识别我要使用的硬件设备、提取相关属性并相应地准备我的流。同样,它 几乎 无处不在。

是否有人需要更多信息来对此进行诊断或有可能的解释实验临时解决方法?

经过一个星期的实验,终于在这里发帖,我自然在发帖几分钟内解决了这个问题。

我在参数中传递了 LowLatency,但硬件跟不上。乘以一个常数立即解决了问题。

虽然由于神秘的原因它仍然周期性地挂起,但它不再是总是挂起的情况。我猜玩延迟会使我更接近永久解决方案。

解法:

调整input/output延迟。