Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 30分钟后,alsa上出现波涛汹涌的声音_C_Linux_Audio_Ubuntu_Alsa - Fatal编程技术网

C 30分钟后,alsa上出现波涛汹涌的声音

C 30分钟后,alsa上出现波涛汹涌的声音,c,linux,audio,ubuntu,alsa,C,Linux,Audio,Ubuntu,Alsa,我在10毫秒的时间内写信给alsa播放音乐,开始时效果很好,但30分钟后会有一些起伏的声音,起伏的声音只持续几分钟 你知道为什么吗 环境是: 臂皮质-A8 音频编解码器TLV320AIC3106 linux内核版本:3.2.0 操作系统:ubuntu 12.04.2 LTS好的,我发现了问题 在PC上,我们不需要调用snd_pcm_sw_params_set_avail_min,它工作得很好。然而,在我们的arm机器上,我们必须对其进行设置,否则,缓冲区的状态是不可预测的,这会导致杂音和背景噪声

我在10毫秒的时间内写信给alsa播放音乐,开始时效果很好,但30分钟后会有一些起伏的声音,起伏的声音只持续几分钟

你知道为什么吗

环境是: 臂皮质-A8 音频编解码器TLV320AIC3106 linux内核版本:3.2.0
操作系统:ubuntu 12.04.2 LTS

好的,我发现了问题

在PC上,我们不需要调用snd_pcm_sw_params_set_avail_min,它工作得很好。然而,在我们的arm机器上,我们必须对其进行设置,否则,缓冲区的状态是不可预测的,这会导致杂音和背景噪声。当你检查回放设备的状态时,你不会看到欠载,除了avail和avail_max值之外,一切都很正常


希望这对其他人有帮助。:)

您的代码可能有问题。@CL.我将我的alsa写入代码与mpg123进行了比较,唯一的区别是mpg123设置了硬件缓冲区大小,但我没有,我使用了默认的缓冲区大小。有些参数是不同的,例如:我使用非常小的周期和周期大小。小的缓冲区可能会导致问题。您需要生成低延迟的样本有什么特殊原因吗?如果没有,请使用尽可能大的缓冲区。@CL。我们希望voip呼叫的延迟较低,因此我们将其设置为尽可能低。这些参数是硬件允许的,应该可以正常工作,不是吗?因为我们设计了自己的arm板,是硬件问题吗?播放音乐不是VoIP。在任何情况下,都必须配置缓冲区大小,使其足够大,以防止硬件/内核上出现欠运行。(PulseAudio可以动态调整延迟。)