看到很多博文关于pcm_open(PCM_CARD) failed描述,都是要修改android上的内容,但声卡是有两片,其中一片能工作,所以想不改,应该有其它方法,费话不多说,记录如下:
1.添加声卡ad1938后显示错误pcm_open(PCM_CARD) failed: cannot set hw params: Invalid argument,card number = 0
2.查看到audio_hw.c中有pcm_open函数,但同时我有一声卡cs4265都能工作,查看到是44.1kHz的频率:
3.另一声卡是没有问题,可以的正常工作,所以不能是这里的问题,只是驱动不匹配,采用命令方式:
发现48KHz能正常工作,44.1KHz不能工作,
查看ad193x.c驱动,内核驱动中只有一种工作频率48KHz,查看原厂驱动,也没有44.1Khz的驱动,转到数据手册,数据手册是低致8k都没有问题,所以改动频率到44.1KHz是没问题的。
4.以下代码是设置频率相关内容,频率能正常工作,没有提示以上错误,直接上代码: