在嵌入式系统上,我发现只有一个应用程序可以同时使用声卡。据我所知,为了解决这个问题,ALSA提供了dmix
在用户空间中执行混音的插件,从而允许多个应用程序共享声卡。
在尝试弄清楚如何使用 时dmix
,我偶然发现了一个问题。播放音频文件(立体声、16 位、44.1KHz)时,音频就像与自身重叠一样,出现奇怪的回声效果,随着播放时间的推移,回声数量会像雪球一样不断增加。 (播放 10 秒后,声音“增强”到我不得不停止播放的程度,以免对扬声器造成永久性损坏。)
从我的感觉来看,只有第一秒的音频能够正常播放,第二秒左右就开始出现奇怪的情况。我尝试调整缓冲设置但aplay
无济于事:效果与缓冲无关。
这有效:
aplay /mnt/annie-honestly.wav
但这显示了奇怪的回声效果:
aplay -Dplug:dmix /mnt/annie-honestly.wav
我试图用谷歌搜索这个问题,但我什至不知道如何调用效果/问题,而且我在其他 ALSA 问题的洪流中什么也没发现。
PS Linux v3.18.24,ALSA-lib/-utils v1.0.29。硬件:带有SGTL5000声音芯片的FreeScale i.MX35(在48KHz模式下使用)。