关于Linux的alsa音频问题解决
到今日,在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
要打开,不能屏蔽。
相关文档:
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
[root@apache02 home]# rpm -q -a|grep http
httpd-2.0.52-25.ent
httpd-manual-2.0.52-25.ent
system-config-httpd-1.3.1-1
httpd-devel-2.0.52-25.ent
httpd-suexec-2.0.52-25.ent
#rpm -e httpd-2.0.52-25.ent
error: Failed dependencies:
httpd-mmn = 20020903 is ......
fork函数学习:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
main ()
{
pid_t pid; pid=fork();
if (pid < 0)
printf("error in fork!");
else if (pid == 0)
printf("i ......
Top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopp ......
LINUX 下VI设置
应用程序启动时,先读其配置文件。这对于vi/vim来说就是工作目录下的隐藏文件.vimrc。
过程(以root用户为例)
#vi ~/.vimrc
用以下命令写.vimrc文件为:
&nb ......