电子说
1. es8388声卡介绍
1.1 硬件接口
硬件接口位置如下所示。

1.2 声卡选择
es8388声卡在EASY-EAI-Orin-Nano中配置成Card0,因此用aplay命令指定es8388是-c 0。
EASY-EAI-Orin-Nano与【音频输出】相关的声卡资源介绍可参考《外设接口使用说明/音频输出/声卡输出资源》。关于alsa命令(aplay,arecord,amixer)的使用可参考《alsa使用简介》。
2. es8388声卡控制
2.1 音频播放
音频播放采用aplay命令进行。
aplay -D plughw:0,0 test.wav ##声音从Card0输出
2.2 输出切换
es8388在驱动层面已经做好了耳机检测,一旦耳机接口检测到有【音频线插入】,音频会【自动】从耳机孔输出播放;一旦拔出音频信号线,音频会【自动】切换到从扬声器播放。

手动控制输出情况命令如下:
开/关【扬声器】
amixer -c 0 cset name='Speaker Switch' 'ON' ##开 amixer -c 0 cset name='Speaker Switch' 'OFF' ##关
开/关【耳机接口】
amixer -c 0 cset name='Headphone Switch' 'ON' ##开 amixer -c 0 cset name='Headphone Switch' 'OFF' ##关
2.3 音量调节
Card0输出音量【值】的【范围】是从 0到192
amixer -c 0 cset name='PCM Volume' 0 ##设置Card0输出音量【值】为 0 amixer -c 0 cset name='PCM Volume' 170 ##设置Card0输出音量【值】为 170 amixer -c 0 cset name='PCM Volume' 192 ##设置Card0输出音量【值】为 192
注:此处的【值】是跟增益正相关的一个变量,但它既不是增益,也不是音量百分比。并且调整它,音量大小变化【不是线性】的。
3.声卡使用笔记
硬件层面使用的i2s/sai控制器,它们本身就是不支持单声道、混音等使用情况。但用户可以通过alsa-plug去做一些数据转换。具体操作方法就是修改~/.asoundrc文件。
3.1通道转换
由于i2s/sai控制器不支持单声道,如果用户要播放一些单声道的音频文件,会出现“2倍速播放”的现象。因此用户需要修改~/.asoundrc文件做通道转换,在文件的具体添加如下内容:
pcm.!default { type asym playback.pcm "playbackmono" capture.pcm "hw:0,0" } pcm.playbackmono { type route slave.pcm "hw:0,0" # 输出到声卡设备hw:0,0 slave.channels 2 ttable { #配置通道route, 0.0 0.5 0.1 0.5 1.0 0.5 1.1 0.5 } }
然后在播放音频文件时,把命令改成:
aplay -D default test_mono.wav
或者
aplay -D playbackmono test_mono.wav 审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !