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

来源:互联网 发布:淘宝网天猫丝巾 编辑:程序博客网 时间:2024/04/29 14:35

背景:

在给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这个文件是配置的总入口,发现里面又导入了两个配置文件

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

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

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

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

oh no~~

所以,我把上面两个44100改为8000,一切正常。岁月静好,现世安稳!

0 0
原创粉丝点击