关于Linux的alsa音频问题解决
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于Linux的alsa音频问题解决
cset 到今日,在android平台上调试声音的方面终于有了进展,原来是需要改一个配置文件,目前只是解决了问题,具体原因以后再分析。
硬件平台是6410+WM9714,软件平台是ANDROID。
现在由于android系统启动时,加载音频服务不成功,处于一个死循环中,老停在登陆界面。
此时打印的Logcat信息如下:
.........
AudioFlinger not published, waiting...
.........。
一开始我以为是WM9714的内核音频驱动有问题,所以先验证音频驱动是否OK。
(1)用cat xxx.wav > /dev/snd/audio时耳机全是播出滋滋的噪声,没有一点音乐声;
(2)用aplay xxx.wav时没有声音,会提示Unable to install hw params。
由此分析是alsa配置存在问题,但具体是什么参数不得而知;
(3)在实验方法(1)播放出噪声时,直接用语句读出WM9714的全部寄存器值。
读出的ID号正确,说明AC97与codec的通讯无误;后来将寄存器值发给wofson原厂工程师烧到他们自己的平台上,播放音频文件正常。
进一步证明寄存器设置是无误的,AC-LINK通讯无误,寄存器设置正常,驱动无误。
由此原因集中在配置上。
后来同事分析和试了一把,改动\vendor\sec\smdk6410\init.smdk6410.rc中的
setprop ro.radio.noril yes改成setprop ro.radio.noril no。
虽然我们做的是MID产品,没有RIL电话功能硬件,但还是要将这部分服务加载上去。
(但最后试验过,no值也OK)
另一个需要补充的地方在于:同目录下的init.rc中的:
service media /system/bin/mediaserver
user media
group system audio camera graphics inet net_bt net_bt_admin。