前几天在嵌入式linux上用到alsa command,网上查的资料多不给力,仅仅有动手一点点查,最终能够用了,将这个用法告诉大家,以免大家少走弯路。

0.先查看系统支持哪几个alsa cmd:

ll /system/bin/asla*

经查,我的android4.4.2+linux3.10  的系统支持例如以下 alsa cmd

-rwxr-xr-x root     shell       68242 2014-10-08 05:18 alsa_amixer

-rwxr-xr-x root     shell       67639 2014-10-08 05:18 alsa_aplay

-rwxr-xr-x root     shell      130323 2014-10-08 05:18 alsa_ctl

不同的系统能够稍有不同,比方有的系统就叫aplay\amixer .....

1.怎样使用alsa_aplay:

alsa_aplay -h //看一下眼下支持哪些使用方法

-h, --help              help

    --version           print current version

-l, --list-devices      list all soundcards and digital audio devices

-L, --list-pcms         list device names

-D, --device=NAME       select PCM by name

-q, --quiet             quiet mode

-t, --file-type TYPE    file type (voc, wav, raw or au)

-c, --channels=#        channels

-f, --format=FORMAT     sample format (case insensitive)

-r, --rate=#            sample rate

-d, --duration=#        interrupt after # seconds

-M, --mmap              mmap stream

-N, --nonblock          nonblocking mode

-F, --period-time=#     distance between interrupts is # microseconds

-B, --buffer-time=#     buffer duration is # microseconds

    --period-size=#     distance between interrupts is # frames

    --buffer-size=#     buffer duration is # frames

-A, --avail-min=#       min available space for wakeup is # microseconds

-R, --start-delay=#     delay for automatic PCM start is # microseconds

                        (relative to buffer size if <= 0)

-T, --stop-delay=#      delay for automatic PCM stop is # microseconds from xrun

-v, --verbose           show PCM structure and setup (accumulative)

-V, --vumeter=TYPE      enable VU meter (TYPE: mono or stereo)

-I, --separate-channels one file for each channel

    --disable-resample  disable automatic rate resample

    --disable-channels  disable automatic channel conversions

    --disable-format    disable automatic format conversions

    --disable-softvol   disable software volume control (softvol)

    --test-position     test ring buffer position

    --test-coef=#        test coeficient for ring buffer position (default 8)

                        expression for validation is: coef * (buffer_size / 2)

    --test-nowait       do not wait for ring buffer - eats whole CPU

    --max-file-time=#   start another output file when the old file has recorded

                        for this many seconds

    --process-id-file   write the process ID here

    --use-strftime      apply the strftime facility to the output file name

会有具体的help说明,这个就不说了,能够自己试。

alsa_aplay -l //列出系统有几个声卡(card 0/1/2....), 及每一个卡的一个设备(device 0/1/2....)

比方我的系统为:

**** List of PLAYBACK Hardware Devices ****

card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]

  Subdevices: 8/8

  Subdevice #0: subdevice #0

  Subdevice #1: subdevice #1

  Subdevice #2: subdevice #2

  Subdevice #3: subdevice #3

  Subdevice #4: subdevice #4

  Subdevice #5: subdevice #5

  Subdevice #6: subdevice #6

  Subdevice #7: subdevice #7

card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]

  Subdevices: 8/8

  Subdevice #0: subdevice #0

  Subdevice #1: subdevice #1

  Subdevice #2: subdevice #2

  Subdevice #3: subdevice #3

  Subdevice #4: subdevice #4

  Subdevice #5: subdevice #5

  Subdevice #6: subdevice #6

  Subdevice #7: subdevice #7

card 1: IntelALSASSP [IntelALSASSP], device 0: BT_DEVICE [IntelALSASSP]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 1: IntelALSASSP [IntelALSASSP], device 2: BUILTIN_DEVICE [IntelALSASSP]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 2: cloverviewaudio [cloverview_audio], device 0: 4 []

  Subdevices: 2/2

  Subdevice #0: subdevice #0

  Subdevice #1: subdevice #1

card 2: cloverviewaudio [cloverview_audio], device 1: Voice rt5640-aif2-1 []

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 2: cloverviewaudio [cloverview_audio], device 3: BTSCO snd-soc-dummy-dai-3 []

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 2: cloverviewaudio [cloverview_audio], device 4: VOIP rt5640-aif2-4 []

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 2: cloverviewaudio [cloverview_audio], device 5: IFX_MODEM_MIXING snd-soc-dummy-dai-5 []

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 2: cloverviewaudio [cloverview_audio], device 6: virtual-stream rt5640-aif1-6 []

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 2: cloverviewaudio [cloverview_audio], device 7: CTP Probe snd-soc-dummy-dai-7 []

  Subdevices: 1/1

  Subdevice #0: subdevice #0

因为我的codec 为alc5640,所以

从上面得知alc5640挂在card2上,所以以后我们当配置amixer 5640时就-c 2 就对了。

2. alsa_amixer的使用方法

alsa_amixer -h //一样的help,这里不列了。

用alc5640进行mixer控制的使用方法:

# alsa_amixer -c 2 controls

例如以下:

alsa_amixer -c 2 controls

numid=35,iface=MIXER,name='Headphone Switch'

numid=20,iface=MIXER,name='Mono ADC Capture Volume'

numid=122,iface=MIXER,name='Mono ADC L1 Mux'

numid=123,iface=MIXER,name='Mono ADC L2 Mux'

numid=114,iface=MIXER,name='Mono ADC MIXL ADC1 Switch'

numid=115,iface=MIXER,name='Mono ADC MIXL ADC2 Switch'

numid=112,iface=MIXER,name='Mono ADC MIXR ADC1 Switch'

numid=113,iface=MIXER,name='Mono ADC MIXR ADC2 Switch'

numid=121,iface=MIXER,name='Mono ADC R1 Mux'

numid=120,iface=MIXER,name='Mono ADC R2 Mux'

numid=93,iface=MIXER,name='Mono DAC MIXL DAC L1 Switch'

numid=94,iface=MIXER,name='Mono DAC MIXL DAC L2 Switch'

numid=95,iface=MIXER,name='Mono DAC MIXL DAC R2 Switch'

numid=92,iface=MIXER,name='Mono DAC MIXR DAC L2 Switch'

numid=90,iface=MIXER,name='Mono DAC MIXR DAC R1 Switch'

numid=91,iface=MIXER,name='Mono DAC MIXR DAC R2 Switch'

numid=11,iface=MIXER,name='Mono DAC Playback Volume'

numid=44,iface=MIXER,name='Mono MIX BST1 Switch'

numid=41,iface=MIXER,name='Mono MIX DAC L2 Switch'

numid=40,iface=MIXER,name='Mono MIX DAC R2 Switch'

numid=43,iface=MIXER,name='Mono MIX OUTVOL L Switch'

numid=42,iface=MIXER,name='Mono MIX OUTVOL R Switch'

numid=85,iface=MIXER,name='Mono dacr Mux'

numid=8,iface=MIXER,name='Mono Playback Switch'

numid=21,iface=MIXER,name='ADC Boost Gain'

numid=24,iface=MIXER,name='ADC IF1 Data Switch'

numid=26,iface=MIXER,name='ADC IF2 Data Switch'

numid=18,iface=MIXER,name='ADC Capture Switch'

numid=19,iface=MIXER,name='ADC Capture Volume'

numid=22,iface=MIXER,name='Class D SPK Ratio Control'

numid=25,iface=MIXER,name='DAC IF1 Data Switch'

numid=27,iface=MIXER,name='DAC IF2 Data Switch'

numid=103,iface=MIXER,name='DAC L2 Mux'

numid=107,iface=MIXER,name='DAC MIXL INF1 Switch'

numid=106,iface=MIXER,name='DAC MIXL Stereo ADC Switch'

numid=105,iface=MIXER,name='DAC MIXR INF1 Switch'

numid=104,iface=MIXER,name='DAC MIXR Stereo ADC Switch'

numid=102,iface=MIXER,name='DAC R2 Mux'

numid=10,iface=MIXER,name='DAC1 Playback Volume'

numid=9,iface=MIXER,name='DAC2 Playback Switch'

numid=108,iface=MIXER,name='DAI select'

numid=88,iface=MIXER,name='DIG MIXL DAC L1 Switch'

numid=89,iface=MIXER,name='DIG MIXL DAC L2 Switch'

numid=86,iface=MIXER,name='DIG MIXR DAC R1 Switch'

numid=87,iface=MIXER,name='DIG MIXR DAC R2 Switch'

numid=23,iface=MIXER,name='DMIC Switch'

numid=37,iface=MIXER,name='Ext Spk L Switch'

numid=38,iface=MIXER,name='Ext Spk R Switch'

numid=3,iface=MIXER,name='HP Playback Switch'

numid=4,iface=MIXER,name='HP Playback Volume'

numid=50,iface=MIXER,name='HPO MIX DAC1 Switch'

numid=49,iface=MIXER,name='HPO MIX DAC2 Switch'

numid=51,iface=MIXER,name='HPO MIX HPVOL Switch'

numid=36,iface=MIXER,name='Headset Mic Switch'

numid=111,iface=MIXER,name='IF2 ADC L Mux'

numid=110,iface=MIXER,name='IF2 ADC R Mux'

numid=17,iface=MIXER,name='IN Capture Volume'

numid=13,iface=MIXER,name='IN1 Boost'

numid=12,iface=MIXER,name='IN1 Mode Control'

numid=15,iface=MIXER,name='IN2 Boost'

numid=14,iface=MIXER,name='IN2 Mode Control'

numid=39,iface=MIXER,name='Int Mic Switch'

numid=45,iface=MIXER,name='LOUT MIX DAC L1 Switch'

numid=46,iface=MIXER,name='LOUT MIX DAC R1 Switch'

numid=47,iface=MIXER,name='LOUT MIX OUTVOL L Switch'

numid=48,iface=MIXER,name='LOUT MIX OUTVOL R Switch'

numid=29,iface=MIXER,name='LPE IHF mixer'

numid=30,iface=MIXER,name='LPE headset mixer'

numid=6,iface=MIXER,name='OUT Channel Switch'

numid=69,iface=MIXER,name='OUT MIXL BST1 Switch'

numid=68,iface=MIXER,name='OUT MIXL BST3 Switch'

numid=74,iface=MIXER,name='OUT MIXL DAC L1 Switch'

numid=73,iface=MIXER,name='OUT MIXL DAC L2 Switch'

numid=72,iface=MIXER,name='OUT MIXL DAC R2 Switch'

numid=70,iface=MIXER,name='OUT MIXL INL Switch'

numid=71,iface=MIXER,name='OUT MIXL REC MIXL Switch'

numid=62,iface=MIXER,name='OUT MIXR BST1 Switch'

numid=61,iface=MIXER,name='OUT MIXR BST2 Switch'

numid=60,iface=MIXER,name='OUT MIXR BST3 Switch'

numid=65,iface=MIXER,name='OUT MIXR DAC L2 Switch'

numid=67,iface=MIXER,name='OUT MIXR DAC R1 Switch'

numid=66,iface=MIXER,name='OUT MIXR DAC R2 Switch'

numid=63,iface=MIXER,name='OUT MIXR INR Switch'

numid=64,iface=MIXER,name='OUT MIXR REC MIXR Switch'

numid=5,iface=MIXER,name='OUT Playback Switch'

numid=7,iface=MIXER,name='OUT Playback Volume'

numid=138,iface=MIXER,name='RECMIXL BST1 Switch'

numid=137,iface=MIXER,name='RECMIXL BST2 Switch'

numid=136,iface=MIXER,name='RECMIXL BST3 Switch'

numid=134,iface=MIXER,name='RECMIXL HPOL Switch'

numid=135,iface=MIXER,name='RECMIXL INL Switch'

numid=139,iface=MIXER,name='RECMIXL OUT MIXL Switch'

numid=132,iface=MIXER,name='RECMIXR BST1 Switch'

numid=131,iface=MIXER,name='RECMIXR BST2 Switch'

numid=130,iface=MIXER,name='RECMIXR BST3 Switch'

numid=128,iface=MIXER,name='RECMIXR HPOR Switch'

numid=129,iface=MIXER,name='RECMIXR INR Switch'

numid=133,iface=MIXER,name='RECMIXR OUT MIXR Switch'

numid=28,iface=MIXER,name='Register Control'

numid=109,iface=MIXER,name='SDI select'

numid=82,iface=MIXER,name='SPK MIXL DAC L1 Switch'

numid=83,iface=MIXER,name='SPK MIXL DAC L2 Switch'

numid=81,iface=MIXER,name='SPK MIXL INL Switch'

numid=84,iface=MIXER,name='SPK MIXL OUT MIXL Switch'

numid=80,iface=MIXER,name='SPK MIXL REC MIXL Switch'

numid=77,iface=MIXER,name='SPK MIXR DAC R1 Switch'

numid=78,iface=MIXER,name='SPK MIXR DAC R2 Switch'

numid=76,iface=MIXER,name='SPK MIXR INR Switch'

numid=79,iface=MIXER,name='SPK MIXR OUT MIXR Switch'

numid=75,iface=MIXER,name='SPK MIXR REC MIXR Switch'

numid=59,iface=MIXER,name='SPOL MIX BST1 Switch'

numid=56,iface=MIXER,name='SPOL MIX DAC L1 Switch'

numid=55,iface=MIXER,name='SPOL MIX DAC R1 Switch'

numid=58,iface=MIXER,name='SPOL MIX SPKVOL L Switch'

numid=57,iface=MIXER,name='SPOL MIX SPKVOL R Switch'

numid=54,iface=MIXER,name='SPOR MIX BST1 Switch'

numid=52,iface=MIXER,name='SPOR MIX DAC R1 Switch'

numid=53,iface=MIXER,name='SPOR MIX SPKVOL R Switch'

numid=32,iface=MIXER,name='SSP BT Master Mode'

numid=34,iface=MIXER,name='SSP Modem Master Mode'

numid=33,iface=MIXER,name='SSP VOIP Master Mode'

numid=31,iface=MIXER,name='SST Probe Byte Control'

numid=16,iface=MIXER,name='Speaker Boost'

numid=1,iface=MIXER,name='Speaker Playback Switch'

numid=2,iface=MIXER,name='Speaker Playback Volume'

numid=125,iface=MIXER,name='Stereo ADC L1 Mux'

numid=127,iface=MIXER,name='Stereo ADC L2 Mux'

numid=118,iface=MIXER,name='Stereo ADC MIXL ADC1 Switch'

numid=119,iface=MIXER,name='Stereo ADC MIXL ADC2 Switch'

numid=116,iface=MIXER,name='Stereo ADC MIXR ADC1 Switch'

numid=117,iface=MIXER,name='Stereo ADC MIXR ADC2 Switch'

numid=124,iface=MIXER,name='Stereo ADC R1 Mux'

numid=126,iface=MIXER,name='Stereo ADC R2 Mux'

numid=101,iface=MIXER,name='Stereo DAC MIXL ANC Switch'

numid=99,iface=MIXER,name='Stereo DAC MIXL DAC L1 Switch'

numid=100,iface=MIXER,name='Stereo DAC MIXL DAC L2 Switch'

numid=98,iface=MIXER,name='Stereo DAC MIXR ANC Switch'

numid=96,iface=MIXER,name='Stereo DAC MIXR DAC R1 Switch'

numid=97,iface=MIXER,name='Stereo DAC MIXR DAC R2 Switch'

alsa_amixer -c 2 cget numid=2 // 从card2 获得主喇叭当时的音量

alsa_amixer -c 2 cset numid=2 39 // 从card2设置主喇叭的音量=39

alsa_amixer -c 2 cset numid=2 100% // 从card2设置主喇叭的音量=39

都能看懂的嵌入式linux/android alsa_aplay alsa_amixer命令行使用方法的更多相关文章

  1. 都能看懂的嵌入式linux/android alsa_aplay alsa_amixer命令行用法

    前几天在嵌入式linux上用到alsa command,网上查的资料多不给力,只有动手一点点查,终于可以用了,将这个使用方法告诉大家,以免大家少走弯路. 0.先查看系统支持哪几个alsa cmd: l ...

  2. 嵌入式linux/android alsa_aplay alsa_amixer命令行用法

    几天在嵌入式linux上用到alsa command,网上查的资料多不给力,只有动手一点点查,终于可以用了,将这个使用方法告诉大家,以免大家少走弯路. 0.先查看系统支持哪几个alsa cmd: ll ...

  3. 每个程序员都可以「懂」一点 Linux

    提到 Linux,作为程序员来说一定都不陌生.但如果说到「懂」Linux,可能就没有那么多人有把握了.到底用 Linux 离懂 Linux 有多远?如果决定学习 Linux,应该怎么开始?要学到什么程 ...

  4. 55张图吃透Nacos,妹子都能看懂!

    大家好,我是不才陈某~ 这是<Spring Cloud 进阶>第1篇文章,往期文章如下: 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强? openFeign夺命连环9问,这谁受得 ...

  5. 搭建分布式事务组件 seata 的Server 端和Client 端详解(小白都能看懂)

    一,server 端的存储模式为:Server 端 存 储 模 式 (store-mode) 支 持 三 种 : file: ( 默 认 ) 单 机 模 式 , 全 局 事 务 会 话 信 息 内 存 ...

  6. 小学生都能看懂的FFT!!!

    小学生都能看懂的FFT!!! 前言 在创新实践重心偷偷看了一天FFT资料后,我终于看懂了一点.为了给大家提供一份简单易懂的学习资料,同时也方便自己以后复习,我决定动手写这份学习笔记. 食用指南: 本篇 ...

  7. 机器学习敲门砖:任何人都能看懂的TensorFlow介绍

    机器学习敲门砖:任何人都能看懂的TensorFlow介绍 http://www.jiqizhixin.com/article/1440

  8. 只要听说过电脑的人都能看懂的网上pdf全书获取项目

    作者:周奇 最近我要获取<概统>的教材自学防挂科(线代已死),于是我看到 htt链ps:/链/max链.book接118接.com接/html/2018/0407/160495927.sh ...

  9. 小学生都能看懂的数位dp

    前言 数位dp其实很久前就知道了,也做过几道和其他算法混在一起的题目,其实通过手玩是能做的 但毕竟是种算法,还是系统学下比较好(节省手玩时间) 模板题 P2602 [ZJOI2010]数字计数 化简题 ...

随机推荐

  1. Linux下如何查看高CPU占用率线程 LINUX CPU利用率计算(转)

    Java 系统性能分析 命令 1. cpu分析 top , pidstat(sysstat) pid -p PID -t 1 10 vmstat 1 CPU上下文切换.运行队列.利用率 ps Hh - ...

  2. Linux平台下裸设备的绑定:

    Linux平台下裸设备的绑定: 运用RAW绑定 方法一 raw的配置(1) [root@qs-dmm-rh2 mapper]# cat /etc/rc.local #!/bin/sh # # This ...

  3. cocos2dx 3.0 学习笔记 引用cocostudio库 的环境配置

    cocostudio创建UI并应用时须要引用cocostudio库,须要额外的环境配置: 之前已经搭配好了基础的开发环境,包含 1) JDK 2) Python 2.7 3) ant 4) visua ...

  4. Extjs Web Desktop申请书

    今天我Web Desktop应用基本完成.多语言支持.现有asp,php,jsp版本号. 废话拍了几张照片让大家有一个直观的了解: watermark/2/text/aHR0cDovL2Jsb2cuY ...

  5. 【剑指offer】面试题28:弦乐

    def Permutation(data, i): if len( data ) == 0: return # i stand for the start of first part for i in ...

  6. 深入理解学习Git工作流(转)

    个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心中的困惑迎刃而解,于是我将这部分资料进行整理放到了github上,欢迎st ...

  7. MVC5

    MVC5 不知不觉 又逢年底, 穷的钞票 所剩无几. 朋友圈里 各种装逼, 抹抹眼泪 MVC 继续走起.. 本系列纯属学习笔记,如果哪里有错误或遗漏的地方,希望大家高调指出,当然,我肯定不会低调改正的 ...

  8. css+js整站变灰(兼容IE7+)

    原文:css+js整站变灰(兼容IE7+) 历年大型地震等自然灾害来临过后,各大网站整站都变成灰色以悼念逝去的生命,那么这种整站变灰的效果是怎么做到的? 重写一套css?NO,即便你有这个时间重写,那 ...

  9. 解决无法切换到jenkins用户的问题

    su - jenkins一直有效,今天在centos发现无效,原因是 /etc/password文件里的/bin/bash被yum安装的时候变成了/bin/false. 改动后就能够了. ubuntu ...

  10. Gradle 载入中 Android 下一个.so档

    1.在project下新建 jni/libs  目录   . jni 是和原来的libs  同级 ,将全部的.so文件放入 新建的libs文件下 2.在build.gradle 文件里新增下面内容到a ...