 音频输出)
1.声卡资源介绍EASY-EAI-PI2仅有一块由RV1126B主控输出的声卡。通过串口调试或ssh调试可以进入开发板终端。执行aplay命令查看声卡相关的详细信息如下所示。aplay -l1.1硬件接口硬件接口位置如下所示。2.声卡控制Linux系统在应用层调用声卡通常采用alsa(aplayarecordamixer)框架本文只会描述本开发板平台相关的部分。如果用户想要进一步地了解alsa用法可以通过开发者社区的《alsa使用简介》进行更进一步的了解。2.1音频播放音频播放采用aplay命令进行。aplay -D plughw:0,0 test.wav ##声音从Card0输出2.2音量调节Card0输出音量【值】的【范围】是从 0到510amixer -c 0 cset nameDAC Digital Volume 0,0 ##设置Card0输出音量【值】为 0 amixer -c 0 cset nameDAC Digital Volume 192,192 ##设置Card0输出音量【值】为 192 amixer -c 0 cset nameDAC Digital Volume 255,255 ##设置Card0输出音量【值】为 255注此处的【值】是跟增益正相关的一个变量但它既不是增益也不是音量百分比。并且调整它音量大小变化【不是线性】的。0~255为数字增益部分设置成255是不失真的最大音量。256~510为模拟增益部分只要超出255声音输出就会失真。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