【全志T113-S3_100ask】9-音频输入与输出(amixer、aplay、arecord)
【全志T113-S3_100ask】9-音频输入与输出
- 背景
- (一)amixer 的使用
- (二)amixer 设置音频输出参数
- (三)使用 aplay 播放音乐
- (四)使用 arecord 录音
背景
之前查看系统命令,发现有个aplay命令,然后尝试使用 aplay -Dhw:audiocodec -vvv gz.wav播放音频,然后报错 aplay: pcm_write:2127: write error: Input/output error
# aplay -Dhw:audiocodec gz.wav
Playing WAVE 'gz.wav' : [ 46.786665] [SNDCODEC][sunxi_card_hw_params][620]:stream_flag: 0
Signed 16 bit Little Endian, Rate 16000 Hz, Mono
aplay: pcm_write:2127: write error: Input/output error
然后就不会了。
8月2日100ask出了简单的教程,是需要先使用tinymix 设置参数的,但是。-bash: tinymix: command not found
我又不想再去编译安装 tinymix ,发现有个 amixer 命令,查阅资料成功配置,播放了音乐。
(一)amixer 的使用
1、查看用法
# amixer -h
Usage: amixer <options> [command]Available options:-h,--help this help-c,--card N select the card-D,--device N select the device, default 'default'-d,--debug debug mode-n,--nocheck do not perform range checking-v,--version print version of this program-q,--quiet be quiet-i,--inactive show also inactive controls-a,--abstract L select abstraction level (none or basic)-s,--stdin Read and execute commands from stdin sequentially-R,--raw-volume Use the raw value (default)-M,--mapped-volume Use the mapped volumeAvailable commands:scontrols show all mixer simple controlsscontents show contents of all mixer simple controls (default command)sset sID P set contents for one mixer simple controlsget sID get contents for one mixer simple controlcontrols show all controls for given cardcontents show contents of all controls for given cardcset cID P set control contents for one controlcget cID get control contents for one controlAvailable advanced commands:sevents show the mixer events for simple controlsevents show the mixer events for simple controls
有点复杂看不懂。。。查阅资料。
2、常用命令
本节参考 https://blog.csdn.net/meirixuexi/article/details/71513007
amixer controls 用于查看音频系统提供的操作接口
amixer contents 用于查看接口配置参数
amixer cget + 接口函数
amixer cset + 接口函数 + 设置值
解释:比如想要设置主音量,第一次使用的话先得查询一下接口函数的配置参数,但是又不知道接口叫什么,先查询所有接口
# amixer controls
numid=17,iface=MIXER,name='Headphone volume'
numid=30,iface=MIXER,name='Headphone Switch'
numid=12,iface=MIXER,name='FMINL gain volume'
numid=13,iface=MIXER,name='FMINR gain volume'
numid=2,iface=MIXER,name='ADC1 ADC2 swap'
numid=24,iface=MIXER,name='ADC1 Input FMINL Switch'
numid=25,iface=MIXER,name='ADC1 Input LINEINL Switch'
numid=23,iface=MIXER,name='ADC1 Input MIC1 Boost Switch'
numid=6,iface=MIXER,name='ADC1 volume'
...省略...
找到了Headphone volume,意思是耳机音量,因为我们是使用3.5mm接口的,所以这一项和我们想要的很像。
使用 amixer cget + 接口函数查询现在的参数,如:
# amixer cget numid=17,iface=MIXER,name='Headphone volume'numid=17,iface=MIXER,name='Headphone volume'; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0: values=4| dBscale-min=-42.00dB,step=6.00dB,mute=0
value = 4,最大值为7
修改音量值为6:
# amixer cset numid=17,iface=MIXER,name='Headphone volume' 6numid=17,iface=MIXER,name='Headphone volume'; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0: values=6| dBscale-min=-42.00dB,step=6.00dB,mute=0
(二)amixer 设置音频输出参数
经过查询,之所以出现 aplay: pcm_write:2127: write error: Input/output error 错误是因为没有输出设备。
# amixer cget numid=30,iface=MIXER,name='Headphone Switch'numid=30,iface=MIXER,name='Headphone Switch'; type=BOOLEAN,access=rw------,values=1: values=off
耳机开关的输出是 off !!!
将其开启:
# amixer cset numid=30,iface=MIXER,name='Headphone Switch' onnumid=30,iface=MIXER,name='Headphone Switch'; type=BOOLEAN,access=rw------,values=1: values=on
使用 aplay 可以从耳机输出音乐了!!
(三)使用 aplay 播放音乐
1、配置音频输出渠道:
# amixer cset numid=30,iface=MIXER,name='Headphone Switch' onnumid=30,iface=MIXER,name='Headphone Switch'; type=BOOLEAN,access=rw------,values=1: values=on
2、设置音量1:
# amixer cset numid=17,iface=MIXER,name='Headphone volume' 6numid=17,iface=MIXER,name='Headphone volume'; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0: values=6| dBscale-min=-42.00dB,step=6.00dB,mute=0
设置音量2:
# amixer cset numid=5,iface=MIXER,name="PCM Volume" 170numid=5,iface=MIXER,name='DAC volume'; type=INTEGER,access=rw---R--,values=2,min=0,max=255,step=0: values=170,170| dBscale-min=-119.25dB,step=0.75dB,mute=0
3、播放音乐:
# aplay -Dhw:audiocodec -vvv piao.wavPlaying WAVE 'piao.wav' : [ 228.205229] [SNDCODEC][sunxi_card_hw_params][620]:stream_flag: 0
Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Hardware PCM card 0 'audiocodec' device 0 subdevice 0
Its setup is:stream : PLAYBACKaccess : RW_INTERLEAVEDformat : S16_LEsubformat : STD
...省略...
实测:
(四)使用 arecord 录音
配置音频输入渠道:
amixer cset numid=29,iface=MIXER,name='ADC3 Input MIC3 Boost Switch' on
amixer cset numid=31,iface=MIXER,name='HpSpeaker Switch' on
录音
arecord -Dhw:audiocodec -f S24_LE -r 16000 -c 1 -d 10 -vv ./in.wav
解释:使用 设备audiocodec
录制 格式为S24_LE
输入比特率为16000
通道1
时间为10s
保存在 ./in.wav
更多内容\查看帮助 arecord -h
实测:
【全志T113-S3_100ask】9-音频输入与输出(amixer、aplay、arecord)相关推荐
- ALSA音频工具amixer,aplay,arecord
ALSA音频工具amixer,aplay,arecord http://www.cnblogs.com/cslunatic/p/3227655.html ALSA音频工具编译安装 ========== ...
- amixer 如何切通道_ALSA音频工具amixer,aplay,arecord
ALSA音频工具编译安装 ========================================================================1.官网http://www. ...
- 智能电视只有数字音频输出,传统音响只有模拟音频输入,巧用数字音频转模拟音频转换器,完美解决!
智能电视已经成为了现代家庭的必备家电设备,它不仅可以播放高清视频,还可以连接网络,享受各种在线资源.但是,智能电视的音质往往不能满足我们的要求,尤其是对于喜欢听音乐或者看大片的用户来说,智能电视的内置 ...
- java 麦克风_Android(Java)实时音频输入(麦克风和USB)和输出
我在这里看到两个问题: 1)通过USB输入音频 . 音频输入可以使用android 3.2和libusb完成,但这并不容易(你需要从libusb获取USB描述符,自己解析它们并将正确的控制传输发送到设 ...
- 【Android FFMPEG 开发】OpenSLES 播放音频 ( 创建引擎 | 输出混音设置 | 配置输入输出 | 创建播放器 | 获取播放/队列接口 | 回调函数 | 开始播放 | 激活回调 )
文章目录 I . FFMPEG 播放视频流程 II . OpenSLES 播放音频流程 III . OpenSLES 播放参考 Google 官方示例 IV . OpenSL ES 播放代码 ( 详细 ...
- psychopy 音频时长代码_多媒体之音频输入1
点击上方"Qt学视觉",选择"星标"公众号重磅干货,第一时间送达 共同学习共同进步 音频输入可以使用QAudioRecorder或QAudioInput两个类实 ...
- 【海思篇】【Hi3516DV300】六、音频输入篇
目的:使海思板的麦克风和扬声器工作起来:让更多的爱好者了解海思.加入海思. 目录 1 准备工作 1)音频能力 2)检测板子 3)sample下audio编译 2 麦克风调试 1)配置acap音频参数 ...
- 【Android FFMPEG 开发】FFMPEG 音频重采样 ( 初始化音频重采样上下文 SwrContext | 计算音频延迟 | 计算输出样本个数 | 音频重采样 swr_convert )
文章目录 I . FFMPEG 播放视频流程 II . FFMPEG 音频重采样流程 III . FFMPEG 音频重采样 IV . FFMPEG 初始化音频重采样上下文 SwrContext V . ...
- LT8522EX 是 Lontium 的矩阵开关芯片基于两路输入,输出 (VGA 和 HDMI)
1. 一般说明 LT8522EX 是 Lontium 的矩阵开关芯片,它支持基于 ClearEdge 技术的两路输入 (VGA 和 HDMI) 和两路输出 (VGA 和 HDMI). HDMI 输入 ...
- Python3 菜鸟教程 笔记7 -- 模块、输入和输出
$ 模块(摘要) 传送门:https://www.runoob.com/python3/python3-module.html @ __name__属性 一个模块被另一个程序第一次引入时,其主程序将运 ...
最新文章
- TCMalloc(Thread-Caching malloc) 基本设计原理
- 【ACM】杭电OJ 2036(待更)
- Appendix之setup.py:附录文件内容记录setup.py
- Pytorch的tensor数据类型
- Long Number
- 天池 在线编程 矩阵还原(前缀和)
- FineBI For Excel插件:助力地产业务人员节省50%报表制作时间
- 用scikit-learn和pandas学习线性回归,XGboost算法实例,用MSE评估模型
- 进程调度算法-高响应比优先调度算法(HRRN)
- 【嗅探工具】Dns劫持Ettercap使用
- wxs 实现小程序拖拽功能
- kubesphere K8S Kubeedge 安装配置菜鸟级指导
- 开放数据资产估值白皮书,首创“数据势能”估值模型【附下载链接】
- Java程序员必会!java语言的编译命令是什么
- Log4cpp: log4cpp快速使用指南
- py-eureka-client学习笔记
- 背包问题C++(三种类型初涉)
- sublime使用简介
- Webstorm2016安装激活
- 魔幻离现实仅一步之遥:细说Python的循环调用、循环引用和循环导入