我已经读过几次关于它们的文章,当我在jack中设置缓冲区大小过低或退出音频应用程序时,我自己也会遇到它们。虽然没有人解释过XRuns是什么。有人能澄清并给出XRun的定义吗?是什么?也许是怎么引起的?
下面是一个XRun错误的示例:
Mon Mar 16 12:32:23 2015: ERROR: JackEngine::XRun: client = <AUDIO APPLICATION> was not finished, state = Running
Mon Mar 16 12:32:23 2015: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error注意,我用<AUDIO APPLICATION>替换了应用程序。
发布于 2015-08-25 21:32:45
显然是(ubuntu论坛线程),
它是一个缓冲区低于或超过,X代表低于或超过。这表明您的系统没有及时处理一些缓冲区,因此丢失了一些数据。尤其是当您在非常低的缓冲区大小运行时,声卡应该非常快地处理传入缓冲区(溢出)。一些芯片无法应付小的缓冲大小,所以你必须增加缓冲长度来减轻声音芯片所做的工作。
发布于 2017-01-08 11:07:32
要从Alsa Wiki添加一些正式文档:
"xrun“可以是缓冲区不足,也可以是缓冲区溢出。在这两种情况下,音频应用程序要么不够快地将数据传送到ALSA音频缓冲区,要么不够快地处理来自ALSA音频缓冲区的数据。通常,xrun是可以听到的裂纹或持久性有机污染物。各种内核补丁和策略可用于最小化在Jack下运行的xrun,例如。内核抢占和实时Linux安全模块。在编写本报告时(2004年7月),这些策略处于一种不稳定的状态--最新消息见http://jackit.sourceforge.net/docs/faq.php#a5。Alsa的最新版本提供了一种通过proc树记录和调试xrun的方法。
调试xrun的链接中断了,但我找到了一些信息这里。
https://unix.stackexchange.com/questions/199498
复制相似问题