【全志T113-S3_100ask】9-音频输入与输出(amixer、aplay、arecord)

article/2025/10/11 5:59:32

【全志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

实测:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/7PlRWuGA.shtml

相关文章

如何使用Aplayer播放器

Aplayer 一、部署 1、Aplayer 官网体验网址&#xff1a;https://aplayer.js.org/ Aplayer的GitHub网址&#xff1a; https://github.com/MoePlayer/APlayer 中文文档手册网址&#xff1a;首页 – APlayer 使用方法很简单&#xff0c;加载Aplayer的js和css&#xff0c;在想…

aplay,arec,amix使用

标准的alsa命令为&#xff0c;aplay&#xff0c;amixer&#xff0c;arecord 如下是高通在mdm9x07芯片上做了客制化的命令 aplay aplay -D hw:0,17 -P &arec arec -D hw:0,17 -P -R 8000 -C 1 &-D card 声卡 -d device 设备 -c channels 通道 -r rate 采样率 -b bits…

Splay

Spaly 众所周知&#xff0c;Splay 是一种平衡二叉查找树&#xff08;不要告诉我你不知道二叉查找树是什么qwq 不知道什么是二叉查找树的看过来&#xff1a; 关于二叉查找树&#xff09;。在这篇东西的最后我们也解释了为什么我们需要用到平衡二叉查找树而不是直接查找&#xff…

aplay 源码分析

ffmpeg -formats ffmpeg -sample_fmts ffmpeg -i ../english14.mp3 -ar 44100 -ac 2 -sample_fmt s16 -f wav english14.wav ffmpeg -i ../english14.mp3 -ar 44100 -ac 2 -sample_fmt s16 -f s16le english14.pcm其中针对PCM个数的数据aplay正确的播放格式为&#xff1a; apl…

Qt,Linux: 播放声音(aplay)

Linux下&#xff0c;Qt开发&#xff0c;使用的电脑情况比较复杂&#xff0c;开发机是Intel cpu, 常用的验证机是飞腾&#xff08;arm&#xff09;cpu, 客户的目标机也是飞腾&#xff08;arm&#xff09;cpu, 但验证机和目标机上情况还不太一样。 需要用到播放声音的功能&#x…

ALSA音频架构 -- aplay播放流程分析

引言 上文ALSA音频架构 – snd_pcm_open函数分析已经获取了aplay中对应的播放API writei_func snd_pcm_writei;&#xff0c;本文将具体分析该API在哪里调用。 aplay处理数据流顺序图 代码详细分析 1、对参数进行解析&#xff0c;存储在全局变量hwparams&#xff0c;配置回调…

《Autosar_MCAL高阶配置》总目录_培训教程持续更新中...

欢迎大家订阅《Autosar_MCAL高阶配置》专栏&#xff08;可以理解为是Autosar培训教程&#xff09;&#xff0c;献上常用的案例和配置方法。下方整理了相关博文的链接&#xff08;单击蓝色字体即可跳转&#xff09;&#xff0c;方便大家获取。 本专栏旨在&#xff1a; 扫除Auto…

Autosar MCAL-ADC配置PWM硬件触发采样

文章目录 前言ADC配置AdcGroupRequestSourceAdcGroupTriggSrcAdcHwExtTrigSelectAdcHwGatePinAdcGeneral-AdcHwTriggerApiAdcHwGateSignalAdcHwTrigSignalAdcHwTrigType GtmGtmConnections PWM实际使用总结 前言 在实际项目开发过程中&#xff0c;关于ADC采样&#xff0c;大部…

【学一点英飞凌】AutoSar-MCAL-Gtm-TOM模块

系列文章目录 【英飞凌学习笔记】TC3XX系列GTM模块的基本组成 文章目录 系列文章目录前言一、TOM模块是什么&#xff1f;二、TGC Sub-unit-Global Channel Control&#xff08;全局控制寄存器&#xff09;1、触发源2、触发方法3、注意要点4、TGC具体结构 总结 前言 提示&…

【MCAL_CANDriver】-1.5-图解CANFD如何兼容经典Classical CAN 2.0及其解决方案

点击返回「《Autosar_MCAL高阶配置》总目录」 目录 1 图解CANFD网络兼容Classical CAN 1.1 Classical CAN节点接收CANFD帧检出错误原因 1.2 CAN FD升级解决方案选择 2 CANFD对硬件设计要求 END 1 图解CANFD网络兼容Classical CAN 关于CANFD帧和Classical CAN帧结构差异&…

基于EB工具的TC3xx_MCAL配置开发01_WDG模块配置介绍

目录 1.概述2. WDG 配置2.1 General部分配置2.2 WdgSettingsConfig配置2.2.1 配置概述2.2.2 CPU WDG具体配置2.3 WdgDemEventParameterRefs3. WDG配置注意事项1.概述 本篇开始我们基于EB Tresos工具对英飞凌TC3xx系列MCU的MCAL开发进行介绍,结合项目经验对各MCAL外设的开发及…

MCAL 部分配置详情

对CSDN上的MCAL相关文章配置的记录 &#xff0c;持续更新 英飞凌: Port 模块 DIO&#xff1a; DIO可以看做是Port的使用接口&#xff0c;应用程序是不可以直接操作Port或Pin的&#xff0c;只能通过DIO。DIO的配置也比较简单&#xff0c;其实就是给Pin重新定义了一个名称。 …

Autosar MCAL-ICU输入捕获

文章目录 前言ICUIcuChannelIcuChannelIdIcuDefaultStartEdgeIcuMeasurementModeIcuSignalTypeIcuWakeupCapability子配置项IcuSignalMeasurementIcuSignalMeasurementPropertyIcuDutycycleBufferMarker IcuOptionalApisIcuGetDutyCycleValuesApiIcuSetModeApiIcuSignalMeasure…

Autosar MCAL-SPI配置及使用

文章目录 前言SPI协议基础Autosar SPI专有名词SpiDriverSpiChannelSpiChannelIdSpiChannelTypeSpiDataWidthSpiDefaultDataSpiEbMaxLengthSpiIbNBuffersSpiTransferStart SpiExternalDeviceSpiBaudrateSpiAutoCalcBaudParamsSpiCsIdentifierSpiCsPolaritySpiCsSelectionSpiData…

【AUTOSAR】 MCAL配置说明(二)----MCAL CAN模块配置

CAN CAN 通讯模块配置 主要的配置内容如下&#xff1a; can 模块的时钟源 can busoff, rx&#xff0c; tx的处理方式 映射pin 脚选择 波特率&#xff0c;采样点设置 邮箱配置&#xff0c;接收、发送报文邮箱&#xff0c;标准帧/扩展帧 CanClockConfiguration 配置CAN 模…

Autosar MCAL-ADC详解(二)-基于Tc27x的cfg软件

文章目录 前言AdcHwUnitAdcGroupChannel Emux SelectGroup Access Mode配置结果指针初始化结果访问读取buffer中的结果 Group Buffer MarkerGroup Conversion ModeGroup IdGroup PriorityGroup ReplacementGroup Request SourceAdcGroupTriggSrcAdcHwTrigSignalHw Gate SignalA…

TC397 EB MCAL开发从0开始系列 之 [1.0]-MCAL结构及Demo介绍

MCAL结构介绍MCAL结构MCAL模块 MCAL安装包说明DemoWorkspaceMclsar EB 环境配置EB环境安装EB新建工程 ->返回总目录-< MCAL结构介绍 MCAL结构 MCAL是 Microcontroller Abstraction Layer&#xff08;微控制器抽象层)的简写&#xff0c;是AuoSar架构中的概念&#xff0…

MCAL中ADC的配置

根据硬件资源分配以及各信号的应用对ADC模块进行配置,使能正确采集信号,并提供转换结果。 1. ADC模块接口配置 使能AdcHwTriggerApi:硬件触发ADC转换,根据硬件需求,部分Channel的转换是通过硬件信号触发转换,因此需要使能该API。 使能AdcEnableStartStopGroupApi:软件…

AurixDevStudio集成MCAL

这是Tricore MCAL安装路径 打开ADS新建一个AURIX Project 我手上的是龙邱的TC377最小系统, 就这样选 理解下第一个选项 新建好的基础工程是这个样子 删除掉Library文件夹, 因为我们这里要使用的MCAL而不是iLLD库(虽然它们实现的功能大体相同) 在工程里新建一个文件夹为Mca…

AUTOSAR 学习笔记(一):NXP S32K14X AUTOSAR MCAL 软件下载及安装

AUTOSAR学习笔记(一)&#xff1a;NXP S32K14X AUTOSAR MCAL 软件下载及安装 目录 AUTOSAR学习笔记(一)&#xff1a;NXP S32K14X AUTOSAR MCAL 软件下载及安装1.下载MCAL 软件2、下载 AUTOSAR EB tresos 软件3、下载AUTOSAR 4.0 OS4、安装 EB tresos5、安装 MCAL6、安装 AUTOSAR…