ALSA底层的音频机制 3个命令
# 这个播放效果不错,能听到左右声道
speaker-test -t wav -c 2 -l 1
# 基础播放, 适用于.wav, .mp3就不行
aplay /usr/share/sounds/alsa/Front_Left.wav
# (简单了解)命令行 -v能显示更多详细信息, -D可以指定声卡(hw:0,0具体是哪个我也不知道)
aplay -v /usr/share/sounds/alsa/Front_Left.wav
aplay -D hw:0,0 /usr/share/sounds/alsa/Front_Left.wav
# 基础录音 -d表示during持续5秒, -f cd
arecord -d 5 -f cd test.wav
# (简单了解)命令行 -D指定硬件,hw:3,0表示hardware card 3: device 0:, c表示channel声道, d表示during持续时间, -f表示format采样格式, cd等同于S16_LE(signed有符号,16位,LE小端序).
arecord -D hw:3,0 -c 1 -f S16_LE -r 44100 -d 5 usb_correct.wav # USB的效果好
arecord -D hw:0,0 -c 2 -f S16_LE -r 44100 -d 5 board_correct.wav # 板载的不行
补充:
# 查看录音设备
cat@lubancat:~/Music$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: rockchipes8388 [rockchip-es8388], device 0: dailink-multicodecs ES8323 HiFi-0 [dailink-multicodecs ES8323 HiFi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: rockchiphdmi [rockchip-hdmi], device 0: rockchip-hdmi i2s-hifi-0 [rockchip-hdmi i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
根据鲁班猫官方文档,
card0是板载的(对应3.5mm接口), 还有一个细节, 我对着耳机和板卡通过这个hardware录制, 分别对应左右耳...
card1是hdmi的. HDMI音频只能输出,不能录音HDMI接口:hw:1,0 (rockchip-hdmi)功能:仅播放,无录音功能
所以card3是我拼多多上买的6元USB麦克风.
# 查看播放设备
cat@lubancat:~/Music$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: rockchipes8388 [rockchip-es8388], device 0: dailink-multicodecs ES8323 HiFi-0 [dailink-multicodecs ES8323 HiFi-0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: rockchiphdmi [rockchip-hdmi], device 0: rockchip-hdmi i2s-hifi-0 [rockchip-hdmi i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: rockchipdp0 [rockchip-dp0], device 0: rockchip-dp0 spdif-hifi-0 [rockchip-dp0 spdif-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
- 3.5mm音频接口:hw:0,0
名称:rockchip-es8388
支持:耳机 + 扬声器输出
当前状态:耳机可用,扬声器不可用(因为检测到耳机) - HDMI音频:hw:1,0
名称:rockchip-hdmi
功能:通过HDMI线输出到显示器/电视 - DisplayPort音频:hw:2,0
名称:rockchip-dp0
功能:通过DP接口输出音频
# 显然, 我连接的3.5mm只能这样收音, 另外两个hdmi和dp都没用到
aplay -D hw:0,0 usb_correct.wav # 这样才能听到声音, 1,0 和2,0都不行
aplay usb_correct.wav # 又发现不指定直接播放效果会更好,
# 好多坑啊, 烦死了. 又遇到什么变音的问题... 好繁琐, 点到为止
总之播放就直接aplay 或者paplay播放 .wav音频吧.
# 播放mp3格式文件
sudo apt install mpg123
mpg123 audio.mp3 # 不方便调整音量大小
sudo apt install mplayer
mplayer audio.mp3 # 按9/0键调整音量大小