关于Linux的alsa音频问题解决
来源:互联网 发布:全国城市数据库 sql 编辑:程序博客网 时间:2024/05/29 03:40
到今日,在android平台上调试声音的方面终于有了进展,原来是需要改一个配置文件,目前只是解决了问题,具体原因以后再分析。硬件平台是6410+WM9714,软件平台是ANDROID。现在由于android系统启动时,加载音频服务不成功,处于一个死循环中,老停在登陆界面。此时打印的Logcat信息如下:
.........
AudioFlinger not published, waiting...
Waiting for sevice media.audio_flinger...
.........。
一开始我以为是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
要打开,不能屏蔽。
*******************************************************************************
另2010-02-04补充:在网上看到了类似的错误记录,出现最上述的Logcat服务信息时,叙述如下:有三种可能原因:一是上面所讲的init.rc中的一定要启动mediaserve服务。二是确保ALSA驱动已经加载到系统中。三是在init.rc中要添加alsa相关信息:
symlink /dev/snd/pcmC0D0c /dev/pcmC0D0c
symlink /dev/snd/pcmC0D0p /dev/pcmC0D0p
symlink /dev/snd/controlC0 /dev/controlC0
symlink /dev/snd/timer /dev/timer
chmod 0777 /dev/pcmC0D0c
chmod 0777 /dev/pcmC0D0p
chmod 0777 /dev/controlC0
chmod 0777 /dev/timer
chown root audio /dev/snd/controlC0
chown root audio /dev/snd/pcmC0D0c
chown root audio /dev/snd/pcmC0D0p
chown root audio /dev/snd/timer
setprop alsa.mixer.playback.master Front
setprop alsa.mixer.capture.master Capture
setprop alsa.mixer.playback.earpiece Master
setprop alsa.mixer.capture.earpiece Capture
setprop alsa.mixer.playback.headset Master
setprop alsa.mixer.playback.speaker Master
- 关于Linux的alsa音频问题解决
- 关于Linux的alsa音频问题解决
- Linux ALSA音频框架分析四:ALSA 的硬件抽象
- linux 下 alsa 音频库的移植
- Linux Alsa音频编程
- Linux ALSA音频应用
- linux ALSA音频驱动框架
- linux alsa 音频路径切换
- Linux音频驱动-ALSA概述
- linux alsa 音频路径切换
- 【Linux&音频】Alsa音频编程【精华】
- 【Linux&音频】Alsa音频编程【精华】
- 【Linux&音频】Alsa音频编程【精华】
- 【Linux&音频】Alsa音频编程【精华】
- Linux&音频】Alsa音频编程【精华】
- 很全的Linux 音频ALSA技术说明
- android audio/linux alsa音频-应用与驱动的接口
- Linux/Android alsa codec音频路由dapm的配置详解
- Linux Mint 笔记本亮度调节总结
- Lua基础 安装LuaSocket
- 转载:Java泛型简明教程
- 关于 外汇中的1手需要的 保证金
- HQL多表联合查询的问题
- 关于Linux的alsa音频问题解决
- 也说说windows 文件系统 文件的三个时间 created time modified time accessed time
- jPanelMenu – 创建面板风格菜单的 jQuery 插件
- 计算机最重要的能力
- Linux多线程中使用信号
- Linux 多线程应用中如何编写安全的信号处理函数
- 由莫名其妙的错误开始
- coreseek在windows上开启日志
- Linux 线程模型的比较:LinuxThreads 和 NPTL