【全志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)相关推荐

  1. ALSA音频工具amixer,aplay,arecord

    ALSA音频工具amixer,aplay,arecord http://www.cnblogs.com/cslunatic/p/3227655.html ALSA音频工具编译安装 ========== ...

  2. amixer 如何切通道_ALSA音频工具amixer,aplay,arecord

    ALSA音频工具编译安装 ========================================================================1.官网http://www. ...

  3. 智能电视只有数字音频输出,传统音响只有模拟音频输入,巧用数字音频转模拟音频转换器,完美解决!

    智能电视已经成为了现代家庭的必备家电设备,它不仅可以播放高清视频,还可以连接网络,享受各种在线资源.但是,智能电视的音质往往不能满足我们的要求,尤其是对于喜欢听音乐或者看大片的用户来说,智能电视的内置 ...

  4. java 麦克风_Android(Java)实时音频输入(麦克风和USB)和输出

    我在这里看到两个问题: 1)通过USB输入音频 . 音频输入可以使用android 3.2和libusb完成,但这并不容易(你需要从libusb获取USB描述符,自己解析它们并将正确的控制传输发送到设 ...

  5. 【Android FFMPEG 开发】OpenSLES 播放音频 ( 创建引擎 | 输出混音设置 | 配置输入输出 | 创建播放器 | 获取播放/队列接口 | 回调函数 | 开始播放 | 激活回调 )

    文章目录 I . FFMPEG 播放视频流程 II . OpenSLES 播放音频流程 III . OpenSLES 播放参考 Google 官方示例 IV . OpenSL ES 播放代码 ( 详细 ...

  6. psychopy 音频时长代码_多媒体之音频输入1

    点击上方"Qt学视觉",选择"星标"公众号重磅干货,第一时间送达 共同学习共同进步 音频输入可以使用QAudioRecorder或QAudioInput两个类实 ...

  7. 【海思篇】【Hi3516DV300】六、音频输入篇

    目的:使海思板的麦克风和扬声器工作起来:让更多的爱好者了解海思.加入海思. 目录 1 准备工作 1)音频能力 2)检测板子 3)sample下audio编译 2 麦克风调试 1)配置acap音频参数 ...

  8. 【Android FFMPEG 开发】FFMPEG 音频重采样 ( 初始化音频重采样上下文 SwrContext | 计算音频延迟 | 计算输出样本个数 | 音频重采样 swr_convert )

    文章目录 I . FFMPEG 播放视频流程 II . FFMPEG 音频重采样流程 III . FFMPEG 音频重采样 IV . FFMPEG 初始化音频重采样上下文 SwrContext V . ...

  9. LT8522EX 是 Lontium 的矩阵开关芯片基于两路输入,输出 (VGA 和 HDMI)

    1. 一般说明 LT8522EX 是 Lontium 的矩阵开关芯片,它支持基于 ClearEdge 技术的两路输入 (VGA 和 HDMI) 和两路输出 (VGA 和 HDMI). HDMI 输入 ...

  10. Python3 菜鸟教程 笔记7 -- 模块、输入和输出

    $ 模块(摘要) 传送门:https://www.runoob.com/python3/python3-module.html @ __name__属性 一个模块被另一个程序第一次引入时,其主程序将运 ...

最新文章

  1. TCMalloc(Thread-Caching malloc) 基本设计原理
  2. 【ACM】杭电OJ 2036(待更)
  3. Appendix之setup.py:附录文件内容记录setup.py
  4. Pytorch的tensor数据类型
  5. Long Number
  6. 天池 在线编程 矩阵还原(前缀和)
  7. FineBI For Excel插件:助力地产业务人员节省50%报表制作时间
  8. 用scikit-learn和pandas学习线性回归,XGboost算法实例,用MSE评估模型
  9. 进程调度算法-高响应比优先调度算法(HRRN)
  10. 【嗅探工具】Dns劫持Ettercap使用
  11. wxs 实现小程序拖拽功能
  12. kubesphere K8S Kubeedge 安装配置菜鸟级指导
  13. 开放数据资产估值白皮书,首创“数据势能”估值模型【附下载链接】
  14. Java程序员必会!java语言的编译命令是什么
  15. Log4cpp: log4cpp快速使用指南
  16. py-eureka-client学习笔记
  17. 背包问题C++(三种类型初涉)
  18. sublime使用简介
  19. Webstorm2016安装激活
  20. 魔幻离现实仅一步之遥:细说Python的循环调用、循环引用和循环导入

热门文章

  1. 文献管理工具EndNote X8 破解版,Windows版
  2. python怎么测试opencv安装是否成功_测试opencv安装成功
  3. MakeApie 将于 2月15号开始暂停服务
  4. 十大机器学习算法(一)
  5. 经典卷积网络--ResNet残差网络
  6. 测度论与概率论基础学习笔记1——1.1 集合及其运算
  7. css 左右居中和上下垂直居中
  8. 【STM32 基础实验矩阵按键】
  9. 网件使用计算机mac地址吗,网件路由器怎么设置mac地址过滤
  10. Spring Boot 接入支付宝,实战来了!