前几天在嵌入式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. java枚举类型(转载)

    public class TestEnum {     /*最普通的枚举*/     public enum ColorSelect {         red, green, yellow, blu ...

  2. json学习之JSONArray的应用(转载)

    从json数组中得到相应java数组,如果要获取java数组中的元素,只需要遍历该数组. 1 /** 2 * 从json数组中得到相应java数组 3 * JSONArray下的toArray()方法 ...

  3. java环境变量、集成开发环境与使用两个类

    1.集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器.编译器.调试器和图形用户界面等工具.集成了代码编 ...

  4. web安全之xss攻击

    xss攻击的全称是Cross-Site Scripting (XSS)攻击,是一种注入式攻击.基本的做法是把恶意代码注入到目标网站.由于浏览器在打开目标网站的时候并不知道哪些脚本是恶意的,所以浏览器会 ...

  5. win10系统安装Oracle11报错不满足最低要求

    以下问题是,在安装Oracle过程中遇到的问题以及自己的解决方法: 问题一:下载好两个Oracle的安装压缩包文件,同时解压后,启动setup.exe,报错:[INS-13001]环境不满足最低要求. ...

  6. Spoken English Practice(1、This is between you and me, Don't let it out. 2、Don't let your dreams be dreams, no matter how hard it gets, say to yourself, I'm going to make it.)

    绿色:连读:                  红色:略读:               蓝色:浊化:               橙色:弱读     下划线_为浊化 口语蜕变(2017/7/12) ...

  7. d3.js:数据可视化利器之 修改文档:DOM操作符

    style: CSS样式操作符 style()操作符用来设置或获取选择集中各DOM元素的CSS样式: selection.style(name[,value[,priority]]) style()操 ...

  8. 爬虫之Xpath详解

    XPath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 ...

  9. VMware 虚拟机 Ubuntu 不能全屏问题

    在刚安装完ubuntu后,屏幕不能全屏显示,此时: 1.安装VMware Tools 步骤: 1.1     进入ubuntu系统后,点击虚拟机上的[虚拟机]->[安装 vmware tools ...

  10. html5游戏开发-零基础开发《圣诞老人送礼物》小游戏

    开言: 以前lufy前辈写过叫“ HTML5游戏开发-零基础开发RPG游戏”的系列文章,在那里面我学习了他的引擎以及了解了游戏脚本.自从看了那几篇文章,我便对游戏开发有了基本的认识.今天我也以零基础为 ...