以我的旧手机华为P8青春版为例,我没有root,所以权限有限。
找到开发者选项
在设置中找到开发者选项,然后打开usb调试
下载adb工具
这个网上有很多,可以自行下载,
主要包含如下四个文件
打开命令窗口
cmd窗口
可以右击屏幕左下角的windows图标,选择运行,然后输入cmd,进入cmd窗口。
然后通过命令“cd adb所在的目录”
输入命令"adb shell"
powershell
运行后输入powershell
进入adb文件存放的路径。
powershell可以使用ls
需要注意的是,powershell的命令“.\adb shell”
查看声卡信息
需要进入proc/asound目录
命令:
cd proc/asound
ls -l
ls -l 列出当前目录下的文件及其属性
文件类型
其中“lrwxrwxrwx”的第一个符号"l",表示这是一个链接,链接到card0目录
“dr-xr-xr-x”的第一个符号“d”,表示这是一个文件夹
“-r–r--r–”的第一个符号"-",表示这是一个字符型文件,可以直接看它的内容
命令是cat 文件名
cards(声卡信息)
这里直接获取cards的信息
0 表示这是第0个声卡。如果你外接一个usb耳机,这里就会显示另一个声卡信息
HI6210_HISSC_CARD 是声卡名,这个声卡名在配置中起到重要作用,后续整理解析音频配置文件的时候介绍
devices
这是创建的设备,可以在dev/snd目录下查看到这些device的信息,但是由于我没有root,所以看不了。
pcm
这里的pcm设备信息对应的就是devices中的audio playback和audio capture
其中audio capture只有一个,而audio playback有五种
pcm设备是提供给用户空间的一个接口。
对于播放声音或者录制声音来说,Audio HAL层是通过对PCM设备文件的读写来实现的。
timers
实际开发过程中没怎么注意过,只看到过它的创建和注册。和control创建在一起好像
搜了下介绍:它是一个ALSA已知的计时器的列表,并且(好像)描述了当前哪个是实际正在实际使用。
但是我在播放的时候没看到这个获取有什么变化
version
ALSA版本信息
ALSA:Advanced Linux Sound Architecture 高级linux声音架构
是Linux中提供声音设备驱动的内核组件,用来代替原来的开放声音系统(Open Sound System,OSSv3)。除了声音设备驱动,ALSA还包含一个用户空间的函数库,开发者可以通过这些高级 API 使用驱动,不必直接与内核驱动进行交互。
从2.6 版本开始ALSA成为Linux内核中默认的标准音频驱动程序集,OSS则被标记为废弃。
card0
card0/id,也就是声卡名信息
pcm0c
还记得之前提到的pcm设备吗,这就对应着那些pcm设备
0 表示pcm设备0
c 表示该pcm设备是提供录制的
p 表示该pcm设备是提供播放的
在dev/snd目录下我们会看到pcmC0D0c
其中的C0表示声卡0
D0表示pcm设备0
c表示录制
抓取pcn设备信息
其中介绍了card号0,设备号0,stream为录制capture
在sub0目录下就是该pcm设备的状态信息了