红联Linux门户
Linux帮助

linux/ALSA SRC重采样造成的问题及解决

发布时间:2016-05-13 15:21:43来源:linux网站作者:huanghai381

背景:

在给imx6移植声卡驱动的时候出现一个怪异的现象:

codec做I2S主机,imx6做I2S从机,codec设置的采样率固定为8Khz,但是使用aplay命令播放8K采样率的PCM文件的时候出现播的很慢很慢,如果我把codec采样率设置到44.1K的时候,或者我使用aplay -r44100命令即骗aplay我播放的音频文件是44.1K的时候,播放就能正常!

出现此现象我一度以为是imx6的分频没设好,时钟不准,NND。

最后发现是alsa-lib搞的鬼。


解决:

/usr/share/alsa目录下有alsa-lib的配置文件,alsa.conf这个文件是配置的总入口,发现里面又导入了两个配置文件

linux/ALSA SRC重采样造成的问题及解决

在我的系统里没有发现.asoundrc这个文件。

而上面描述现象出现的根源就是/etc/asound.conf这个文件搞的鬼。

这个文件最后面有如下配置:

linux/ALSA SRC重采样造成的问题及解决

看到没有,默认导入了asymed这个插件,而asymed这个插件指定了播放和采集的采样率为44.1K,也就是说无论你播放的是什么采样率的文件,都会给你重采样到44.1K。

所以,我把上面两个44100改为8000,一切正常。


本文永久更新地址:http://www.linuxdiyf.com/linux/20615.html