前几天在嵌入式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: ll ...

  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. 【No.2】监控Linux性能25个命令行工具

    接着上一篇博文继续 [No.1]监控Linux性能25个命令行工具 10:mpstat -- 显示每个CPU的占用情况 该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一 ...

随机推荐

  1. 文艺青年装B指南

        和大龄文艺青年们去凤凰的时候,很难不注意到狭窄小道旁边的文艺小店.有提供焦糖玛奇朵的咖啡店,有兜售梦露赫本明信片和烟雨 凤凰笔记本的店铺,还有复古式的静吧,常驻唱民谣小众歌曲的流浪歌手.我每看 ...

  2. python--sha256

    import hmacimport hashlib def get_hmacsha256(key, message): key_bytes = bytes(key, 'utf-8') message_ ...

  3. mysql 标点符号

    w攻防一体化.

  4. packages managers

    nodejs npm/bower/component ...rubygemsperl cpanpython pipOS X homebrewsublime text的package-control 那 ...

  5. Count the string---hdu3336(kmp Next数组的运用)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336 题意就是求串s的前缀的个数和: 例如:abab 前缀 个数 a     2 ab    2 ab ...

  6. xpath草稿

    (一)日期和简介 date:2017/12/18 name:a标签href属性提取抛出异常list index out of range (二)问题详细说明: 以百度新闻页面为例: 1.node_li ...

  7. vs2010 重新配置帮助文档

    1.VS2010帮助文件不支持重新配置,这个时候打开C:\Program Files\Microsoft Help Viewer\1.0目录,找到“HelpLibManager.exe.config” ...

  8. @JsonFormat与@DateTimeFormat注解的使用

    背景:从数据库获取时间传到前端进行展示的时候,我们有时候可能无法得到一个满意的时间格式的时间日期,在数据库中显示的是正确的时间格式,获取出来却变成了很丑的时间戳,@JsonFormat注解很好的解决了 ...

  9. Hadoop2.7.3+spark2.1.0+hbase0.98分布式集群部署

    运行环境配置(10.79.115.111-114) 1.关闭防火墙与selinux 关闭防火墙: CentOS 7.x默认使用的是firewall作为防火墙. systemctl stop firew ...

  10. Linux系统——日志文件

    日志文件的分类 (1)内核及系统日志 由系统服务rsyslog管理,根据去主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置. /etc/rsyslog ...