嵌入式linux mono,嵌入式linux/android alsa_aplay alsa_amixer命令行用法(示例代码)
几天在嵌入式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 mono,嵌入式linux/android alsa_aplay alsa_amixer命令行用法(示例代码)相关推荐
- 嵌入式linux/android alsa_aplay alsa_amixer命令行用法
几天在嵌入式linux上用到alsa command,网上查的资料多不给力,只有动手一点点查,终于可以用了,将这个使用方法告诉大家,以免大家少走弯路. 0.先查看系统支持哪几个alsa cmd: ll ...
- linux快捷命令补齐,Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式.doc...
Linux Shell简介--自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式 Unix (及后继者 Linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能. ...
- Linux 下五个顶级的开源命令行 Shell
这个世界上有两种 Linux 用户:敢于冒险的和态度谨慎的. 其中一类用户总是本能的去尝试任何能够戳中其痛点的新选择.他们尝试过不计其数的窗口管理器.系统发行版和几乎所有能找到的桌面插件. 另一类用户 ...
- linux 垃圾桶命令,linux下的一些好用的命令行
linux下的一些好用的命令行 添加环境变量 Linux 中需要将 libjakaAPI.so 和 jkrc.so 放在同一个文件夹下,并添加当前文件夹路径到环境变量, 使用命令 export LD_ ...
- android.mk 添加v7_在Android上以命令行方式移植FFmpeg
最近要做视频I帧提取和摘要生成的项目,在Android平台上的应用,经过调研,发现ffmpeg有很多相关功能的轮子,因此考虑将ffmpeg移植到Android平台.为了更好解耦和以及更多的文档参考,选 ...
- android studio shell 命令行自动打包(mac 平台)
android studio shell 命令行自动打包(mac 平台) 作者 CrazySongHang 关注 2015.04.10 22:56* 字数 494 阅读 4165评论 1喜欢 2 如果 ...
- 【Android】通过命令行adb install 将apk下载到手机之中
背景 mac 电脑中有一个apk,想将该apk下载install到Android手机中. 操作 首先在手机中删除原有的apk,然后再连上数据线到电脑中(我是在Android studio的命令行)进行 ...
- Linux mono环境,linux+mono+xsp+apache搭建asp.net环境
linux+mono+xsp+apache搭建asp.net环境 发布时间:2020-10-09 18:20:35 来源:51CTO 阅读:3101 作者:huilinux 环境: 系统:centos ...
- Linux 发展史,以及常用的一些命令行。
1.fiLinux基础 1.1.Unix Windows 生产环境 服务器–>windows server 2008 托管 FTP服务器(空间) VPS 独享主机 (远程桌面链接) Linux ...
最新文章
- MTK OEM Unlock
- 吉林艺术学院监考人员被指为考生改画 学校回应
- AI浪潮席卷而来,现在加入还来得及吗?
- 软件接口测试 (1)
- Centos 7 定时关机
- Odoo与ERP传统软件有什么不同?
- 最简单的YUV422转jpg的例程
- vue源码学习:Object.defineProperty 对数组监听
- matlab rsenc函数,Xilinx RS编码IP核仿真验证
- AutoCAD2016-2020设置经典模式界面
- 复杂截面抗扭惯矩计算
- PCA、PCoA、NMDS、Anosim学习
- 【HEC-RAS】02 软件下载及安装
- 算术左移,逻辑左移,算术右移,逻辑右移之间的区别
- 【pion】ice-single-port解析
- Screen使用教程
- 服务器30M带宽能承受多少人同时请求?
- TVS管 具体原理和作用
- 造车烧钱,服务烧钱,电池自燃,蔚来造车“火中如何取粟”
- 伍德里奇计量经济学导论之计算机操作题的R语言实现(一些重要专题)
热门文章
- Android 代码实现整数处理为小数,Android EditText限制输入整数和小数的位数的方法示例...
- DPCM 压缩系统的实现和分析
- [网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站防护
- 【数据结构与算法】之深入解析“奇怪的打印机”的求解思路与算法示例
- RxSwift之UI控件UITextField与UITextView扩展的使用
- 中国大学MOOC 人工智能导论第七章测试
- LDC1000循迹小车
- 《算法竞赛入门经典》 例题3-5 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
- 【Linux网络编程】Linux多播问题(No such device)解决方法
- 【C语言】Linux内核源码--min,swap宏定义